Member-only story
Mobile System Design Building Blocks- Part 1
I started reading this book Mobile System Design by ByteByteGo. It emphasizes on understanding about key building blocks of a mobile system design before jumping into designing actual apps. Here’s the crux of building blocks!
The blocks can be mainly divided into:
Architecture- Common patterns, architecture layering, modularization and testing
Data Management- Data storage, networking, authentication, pagination and performance.
Feature Development- Release strategy, force upgrading, feature flags, remote config, A/B testing, observability and analysis, localization,privacy, accessibility, push notifications, app size and CI/CD
Supporting Different Devices- Different form factors, and OS and SDK versions.
In this part, I’ll cover details of Architecture.
Well designed architecture benefits us by making sure app is maintainable, robust and creates a shared language for developers.
Most widely adopted approaches are:
- Clean Architecture which emphasizes UDF and Repository pattern
- MVC, MVVM and MVI
How I put it in interview-
“I evaluate architecture based on maintainability, testability, and scalability. In mobile apps…