Migrating Lyft’s Android Codebase to Kotlin
Lyft completed a multi-year migration of its Android apps from Java to Kotlin. The post covers motivations (conciseness, K2 compiler, Jetpack Compose, coroutines), pre-migration tracking with an internal Migration Tracker, automated migration tooling (Migration Script using Android Studio IDE scripting), challenges with converters and nullability/legacy interfaces, and a post-migration CI lint check that prohibits new Java files.