Java Is Dead Long Live Kotlin Part 2
Article Summary
Emily Fujimoto from Thumbtack just closed the book on a 6-year migration journey. The final push to eliminate Java from their Android codebase revealed lessons every mobile team needs to hear.
Thumbtack's Android team started their Kotlin migration in 2018 at 60% completion. The last 40% took years, with the final ~100 files becoming a H1 2024 priority. They gamified the process, added HeyTaco bounties, and leveraged quarterly Fixit weeks to cross the finish line.
Key Takeaways
- Nullability assumptions in old Java code were the hardest migration challenge
- Writing unit tests before conversion prevented bugs and boosted code coverage
- Burndown docs and gamification (HeyTaco bounties) accelerated the final sprint
- Android Studio's conversion tool works well but requires careful review
- Always use both @Nullable and @NonNull annotations, never assume one
Critical Insight
Thumbtack eliminated all Java from their Android codebase by requiring Kotlinization before any file modifications, writing tests first, and gamifying the final 100 files.