Mobile Architecture
From MVP to millions of users: how does mobile architecture actually change?
Architecture as a response to real problems: how mobile apps evolve from MVP to millions of users, and which layers earn their place.
What Architecture Layers Does a Mobile App Need to Survive Years of Development?
Messenger deleted 84% of its code to get fast. Telegram serves hundreds of millions from one module. Module graphs I extracted from three chat apps show which layers actually pay rent.
What Should a Mobile App Use for Local Storage? How Telegram, Messenger and Signal Store Millions of Messages
Key-value, SQLite, Realm, files, secure storage — the choice looks like a benchmark question. The apps that store millions of messages say it's an architecture question.
How Does a Flutter Module Get a Token From the Native Host When the App Has Many Modules?
A Flutter package needs the host app's auth token. Every obvious answer — a MethodChannel, importing AppCore — points the dependency the wrong way. The fix is to stop passing the token.
Half Flutter, Half Native: Who Owns Navigation Mid-Migration?
Migrating Flutter to native screen by screen leaves two back stacks. A destination contract, a host router, one stack owner — and why back is the hard part.
One Flutter Engine or Two? What Really Happens When Native Sits Between Two Flutter Screens
A FlutterEngine has one seat. Why one cached engine can't serve two Flutter segments split by native, what FlutterBoost really does, and what two engines cost.
Ten Teams, One Hybrid App: Where Do You Draw the Module Boundaries?
Grab runs 1,000+ modules in one app, Reddit's Android app ~800. The rules that make that survivable — contracts over imports, CI-enforced graphs — and why a Flutter module must hide behind a native boundary.
Realm Runs My Whole Chat App — So Why Does It Die in a 24 MB Notification Extension?
Realm crashes at init inside the iOS Notification Service Extension's 24 MB budget. The real causes — schema discovery, an encrypted page cache, cross-process sharing Realm only added in 2023 — and what Signal does instead.
MethodChannel Feels Too Slow. Should Flutter Call Kotlin Directly?
MethodChannel has a real cost model, a fake mythology, and a serious rival. What the ecosystem actually ships today, which calls deserve a Dart→FFI→JNI fast path — and the memory, threading, and lifetime rules you sign up for when you take it.
Coming in this series
- Dissecting My Own Chat Engine: Which Layers Paid Rent, Which Were Furniture
- Change-Cost A/B: The Same Change in a Layered and a Non-Layered Codebase