PickMe Mar 30, 2025

Revamping PickMe Passenger Android App: Moving from Java/XML to Kotlin/Compose

Article Summary

Numesh Dilusha from PickMe reveals how a team of just 5 developers completely rewrote their ride-hailing app in record time. The secret? Strategic modularization and keeping the UI design unchanged.

PickMe, a mobility platform serving millions of users, migrated their entire Android passenger app from Java/XML to Kotlin/Jetpack Compose. Rather than redesigning the UI, they focused on rewriting all features in a new project base while maintaining the existing user experience. The migration was completed by a lean team under tight deadlines.

Key Takeaways

Critical Insight

PickMe successfully modernized their Android app by prioritizing modular architecture and code reusability over UI redesign, enabling faster development and consistent experiences across multiple apps.

The team is now planning multi-tenant support and AI-powered ride suggestions that will leverage their new modular foundation.

About This Article

Problem

PickMe's Passenger App had serious maintainability and performance problems due to its aging Java and XML codebase. The team needed to modernize it completely, but they only had five developers and a tight deadline to work with.

Solution

The team switched to Jetpack Compose for building the user interface, moving away from ConstraintLayout and LinearLayout to use Column, Row, and Box components instead. They also replaced AsyncTask with Kotlin coroutines to handle asynchronous work more effectively.

Impact

By breaking the code into modules, the team could share components across the Passenger app, Driver app, and other services. The Location Manager, Chat Module, Network Module, and Cache Module all became reusable, which cut down on duplicate work and helped different teams move faster.