Modernising a Legacy Android App Architecture: Part Two - MVVM
Article Summary
Rob Pridham from BBC Sport ditched the trendy frameworks and went old school—callback listeners and view controllers—to modernize their Android app. Controversial? Maybe. Effective? Absolutely.
In part two of BBC Sport's Android modernization series, Pridham explains why his team rejected popular solutions like RxJava, LiveData, and Data Binding in favor of a simpler MVVM+C pattern. The approach prioritizes comprehension over cleverness, using humble callbacks and view controllers to connect fragments, viewmodels, and views.
Key Takeaways
- BBC Sport chose callback listeners over RxJava and LiveData for view-viewmodel communication
- MVVM+C pattern adds view controllers as explicit glue layer between components
- Simplicity enables faster onboarding: graduates grasp cookie-cutter patterns immediately
- Pattern proved successful on BBC Sounds before applying to Sport app
- View wrappers provide platform separation and easier unit testing with mocks
Critical Insight
BBC Sport's deliberately simple MVVM+C architecture with callbacks outperformed complex reactive frameworks by making the codebase more maintainable and new developers productive faster.