BBC Rob Pridham

How BBC Modernises a Legacy Android App Architecture: Part Two - MVVM

Original post 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

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.

Continue reading

What This Article Covers

Problem

BBC Sport's Android codebase had accumulated multiple conflicting UI patterns across different development eras. MVC, MVVM, MVI, and MVP all coexisted, which left new developers confused about where presentation logic should actually live and made architectural standards unclear.

Solution

Rob Pridham's team implemented MVVM+C, an opinionated pattern that uses callback listeners and view controllers as explicit glue layers. They rejected RxJava's massive API surface area and avoided committing to LiveData early on, which helped them maintain hexagonal architecture principles.

Impact

The consistent pattern made it easier to onboard graduate developers. They could look at tangible examples across all feature implementations and understand the approach quickly. The simplified approach also reduced how much framework complexity new developers had to learn alongside Android, Kotlin, and domain knowledge.

The team's experience applying this pattern on BBC Sounds revealed unexpected benefits that only emerged over time—and some surprising challenges with event chains.

This page summarizes “Modernising a Legacy Android App Architecture: Part Two - MVVM” by BBC, published Dec 7, 2020. All credit for the original work goes to the authors.

Read the original on medium.com (opens in new tab)

AI tools for Android

Browse all AI tools →