App architecture - singular vs plural
summary
Trainline adopts MVVM and MVI, using MVI for predictable, logic‑heavy screens (user state drives immutable view states) and MVVM for the rest, with Compose-friendly MVVM where applicable. Implementation happens via big PRs and platform-wide review, aiming for open team agreement. Tradeoffs: added complexity, longer onboarding and higher maintenance, but MVI reduces race conditions on heavy flows and is being rolled out successfully where predictability matters. Follow clear intent and avoid over‑engineering.
AI-written summary · about
chapters (8)
- 0:00Introduction and speaker intro
- 1:29What is app architecture
- 3:59Popular architectures overview
- 8:10Benefits of multiple architectures
- 9:56Challenges of multiple architectures
- 11:20Trainline’s MVVM and MVI approach
- 13:46How to introduce new architecture
- 16:13Final thoughts and Q&A
related talks
36mMVWTF: Demystifying Architecture Patterns
41mMVI: a Robust and Modern Architecture
43mMVC vs MVP vs MVVM vs MVI
41mStateMachine Architecture Based on MVI: Combining KMM, Jetpack Compose and SwiftUI
41mFinita la State Machine — MVI in an iOS App
30mArchitecting an app with MVP and ViewModels
22mMVVM at Scale: Not so Simple
34mArchitectures in the Compose World
