Refresh, renew, refactor: modernising a large Android app with many users
summary
Luno modernises a legacy Android app (first commit Jul 25 2014, ~1,150,000 active users) by converting Java to kotlin, swapping AsyncTask and EventBus for coroutines and clearer patterns, and moving payloads to protobuff — result: reduced NPEs almost to zero, average file size down 21%, a big model becomes ~50% faster and protobuf messages ~56% smaller (360→158 bytes). Migration uses a champion, tech design docs, small focused PRs (2–5 small classes or separate for >300 lines), backend‑controlled feature flags, two‑hour debug builds and a release train every two weeks.
AI-written summary · about
chapters (9)
- 0:00Introduction to modernisation
- 3:30Why refactor and migrate
- 5:40Kotlin migration tips
- 15:39Migration results and benefits
- 18:52New architecture and testing
- 23:26Team structure for migrations
- 27:17CI/CD and release process
- 31:06Future plans and next steps
- 32:14Q&A session
related talks
31mPatterns for Safe Refactoring of Android Apps
27mHalf Way to clean architecture
38mAchieving Maintainability: Best Practices for Keeping Your Android App Up-to-Date
34mLearn from developers: Duolingo and Headspace share their new Android architecture stories
37mScaling App development at Zalando
45mLinuxOnAndroid - Reviving a 10 year old Android project
31mArchitecture metamorphosis: a real case study
26mApp Architecture Then and Now: Lessons from the DroidKaigi Conference App History
