Lyft completed a 7-year migration of their Android codebase from Java to Kotlin, covering Rider, Driver, and Urban Solutions apps. The migration was driven by Kotlin's conciseness, compile speed benefits with K2 compiler, Compose UI framework requirements, and Coroutines adoption. Using an internal Migration Tracker tool and automated migration scripts, they converted approximately 1,000 files across 20+ teams. Key challenges included imperfect automatic conversion creating overly nullable types, verbose code, and legacy interface compatibility issues. The migration concluded with CI lint checks preventing future Java code additions.
Sort: