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
- Small team of 5 developers migrated entire app under tight timeline constraints
- Modular architecture enables code sharing across Passenger, Driver, and service apps
- Kept existing UI design to accelerate migration without disrupting user experience
- Shared modules (Location, Chat, Network, Cache) eliminate duplicate development work
- Kotlin coroutines replaced AsyncTask for better async performance and responsiveness
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.
About This Article
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.
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.
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.