Previous    Next

Short summary of this really well written article:

Pattern overview

MVP, MVVM, and MVI are some of the common patterns in Android and they can broadly be thought of as different flavours of the same core concept — abstracting logic from the UI into classes without references to Android. The main way in which they differ is how those classes accept their inputs and how they then output updates to the UI.

Generally speaking the goal is to separate concerns and have a Unidirectional Data Flow.


MVP

The defining feature of MVP is that data is communicated back to the view imperatively.


MVVM

MVVM differs from MVP is in how data is communicated back to the view. Rather than imperatively calling the view, in MVVM changes are described by data which are then observable by the view. The UI can then reactively re-compose itself based on the new data.


MVI

This is a very similar pattern to MVVM, with some important differences. In many ways it’s a merging of MVVM & Redux. MVI pre-defines a selection of events the ViewModel handles and the view publishes a stream of these events as they happen. But the major difference is communication back to the view. Whereas in MVVM there is usually a separate publisher for each piece of data, in MVI a single object defining the entire state of the view is published. Often there’s a section of MVI which follows Redux style reducing.

Featured essays

DIY Geiger Counter

*update December 2025: I'm visualizing the data at https://storage. services. kibotu. net/geiger now. After watching HBO's Chernobyl Series and stumbling upon this awesome article about someone building a steampunk desktop background radiation monitor I… more

Future Proofing Android App Team at CHECK24

more

DroidCon Berlin 2021

Finally a live event again. 95 tech talks, 5 simultaneously for 3 days, 1200+ Android Developers, 87 Speaker by over 50 different companies participated. Topics ranged from `new` technologies, e.g. Jetpack Compose, KMM to how to improve productivity… more

Context, Resources & You

. responsive-iframe-container … more

Android Paging without Paging 2/3 Library

. responsive-iframe-container … more

CHECK24 Profis Android Git Commits of 2022 Visualised

more

Orchard, Service Locator and Khan

Responsive Iframes… more

Introduction into AI Q1 2025

. responsive-iframe-container … more

Finally, Animated Splash Screens That Don’t Suck: Building androidx-splashscreen-compose more

Stop Context Switching: Send Push Notifications Directly From Your AI Assistant more

Maestro: Empowering Teams to Ship Mobile Apps with Confidence more

The UIViewController Focus Problem (And How We Actually Solved It) more

Elevating iOS Logging: A Better Way Forward with Orchard more

Where do all the bytes in an iOS app actually go more

I Found a Great ADB Guide. Then I Built a Tool So I’d Never Have to Type Those Commands Again. more

I Hit Firebase’s Free Tier Limit After 11 Million Events. So I Built My Own Backend. more

A Pragmatic Git Workflow for App Development Teams more

Git Panorama: Mapping Your Team’s Codebase Journey more