Demystifying Native Mobile Apps Architecture
summary
Shows how to turn a messy login screen into a testable app by implementing a networking wrapper (Alamofire on iOS), an authentication service that parses errors, and view models that keep UI controllers “dumb.” Uses Swift examples (parallels to Kotlin/Android and Dagger noted), demonstrates hand‑made protocol mocks to unit test services, explains why UI is hard to unit test and how incremental refactors (even rewrites) pay off, and links to sample GitHub projects that compile.
AI-written summary · about
chapters (24)
- 0:00Intro
- 1:50We've all been there
- 4:40Architecture Simplified
- 5:52Let's start with a small example
- 8:16Layered Architecture
- 9:31Library Wrappers
- 10:01Services
- 10:30User Interface
- 10:51Clean communication
- 11:58Abstract from the dependencies
- 12:51Extract the service layer
- 14:10Changes to the ViewController
- 15:07Where do we stand after the first step?
- 15:43Loose Coupling
- 16:43Connecting through the interface
- 17:35Now we can test
- 20:17How do we make the Ul testable?
- 21:08Extract logic into View Models
- 22:14Login ViewModel
- 24:18Wanna get extra points?
- 24:46Why is it such a big deal?
- 26:00Advanced options for more complex projects
- 27:41Where can you start?
- 31:09Sample Github projects
related talks
58mMobile App Architecture: How to Conquer the Giant!
53mRefactor Your Way Forward
01h 04mMobile App Architecture: How to Conquer the Giant!
57mSuccessful Code Sharing Principles for Mobile Development
31mPatterns for Safe Refactoring of Android Apps
31mFrom Zero To A Maintainable, Scalable Architecture On Android
40mMobiconf 2018: John Sundell, Swift by Sundell
31mA novel architecture for Multiplatform applications
