Kotlin, Practically Speaking
summary
Yammer’s one-and-a-half-year migration reports concrete gotchas and fixes: Android Studio’s autoconverter inserts !! and nullables that cause runtime crashes unless cleaned up; lifecycle bundles often convert to non-nullable types and break fragments; companion-object statics need use lateinit and @JvmStatic for companion replacements to keep Java-style callers; custom lint must move to UAST/source scanners; convert tests first and make new code Kotlin-only; preserve git history with a git history loss unless rename-then-paste workflow (rename commit, then paste converted file) and ban casual use of !!.
AI-written summary · about
chapters (18)
- 0:00Introduction and speaker background
- 1:29Path to Kotlin adoption at Yammer
- 4:19Team buy-in and gradual Kotlin integration
- 8:13Higher-ups concerns and Kotlin impact
- 10:44Lessons learned from Kotlin conversion
- 13:12Fixing auto-converter issues in Kotlin
- 15:42Handling companion objects in Kotlin
- 17:31Nullability crashes after conversion
- 20:04Preserving Git history during conversion
- 22:10Maintaining Git history workaround
- 25:01Updating custom lint rules for Kotlin
- 27:53Avoiding bang bang operator misuse
- 29:16Mixing Java and Kotlin files
- 30:42Files unsuitable for Kotlin conversion
- 33:32Replacing utility classes with extensions
- 35:58Evolving Kotlin coding standards
- 37:44Kotlin’s impact on coding practices
- 38:06Kotlin vs tech debt elimination








