Slides from my talk about Mobile Applications Architecture, that include Architecture reasoning and analysis of spectrum of efforts, most popular Mobile Architecture Patterns (MVC, MVP, MVVM, VIPER, RIBs), levels of architecture complexity (Layers, Coordinator, Dependency Injection, Reactive Programming), Agile Architecting and Project Lifecycle.
Special thanks to Randy Shoup and his awesome presentation about Minimal Viable Architecture in Startups https://www.slideshare.net/RandyShoup/minimum-viable-architecture-good-enough-is-good-enough-in-a-startup - you can find some slides at the end of my presentation totally influenced by idea of MVA :)
25. #mobarchclub
Android Has “Good Bones”
image from https://8thlight.com
Components:
-Activities
-Fragments
-Services
-Content Providers
-Broadcast Receivers
26. #mobarchclub
Mobile has it’s Specifics
image from https://8thlight.com
App-hopping
OS may kill app at random time
App components lifecycle is not under
control
Components should not depend on each
other
Can’t rely on data, stored in components
28. #mobarchclub
Common Principles for Mobile
-Separation of concerns
-Provide solid user experience
-Keep UI lean and simple
-Keep UI free of app logic
-Drive UI from model
-Use persistent model
-Assign clear responsibilities model classes
46. #mobarchclub
Minimum Viable Architecture
1. YAGNI = You aren’t going to need it!
2. RT-RJ-RT Use the Right Tool for the Right
Job at the Right Time
3. XP - Change incrementally
49. #mobarchclub
Search Phase
1. “No architecture at all”
2. Find business model and market fit
3. Acquire first customers
4. Prototype - familiar technology, cobble it together
5. Throw it away later - but not now
50. #mobarchclub
Execution Phase
1. “Just enough” architecture
2. Meet near-term customer needs, delight customers
3. Rapid learning and imporovement
4. Team productivity
5. Monolithic architecture
6. Minimal infrastructure
7. NOT about scaling
51. #mobarchclub
Change drives the world
“The best code you can write now is the code you’ll discard in a
couple of years”
Martin Fowler
54. #mobarchclub
Scaling is the result of the change
“If you don’t end up regretting your early technology decisions, you
probably over-engineered”
Randy Shoup
55. #mobarchclub
Scaling. “Next-Gen” Architecture
● Scaling the Technology. Migrations, Concurrency, Other
languages
● Scalable persistence. Break-up monolithic DB, split to
functional modules
● Identify and eliminate bottlenecks. Increase performance
● Re-Design interfaces
57. #mobarchclub
Read About Software Architecture
Clean Architecture
https://8thlight.com/blog/uncle-bob/2012/08/13/the-clean-architecture.html
Architecture, the Lost Years by Uncle Bob
https://youtu.be/WpkDN78P884
Fernando Cejas - Architecturing Android, Evolution
https://fernandocejas.com/2015/07/18/architecting-android-the-evolution/
Minimum Viable Architecture
https://www.slideshare.net/RandyShoup/minimum-viable-architecture-good-e
nough-is-good-enough-in-a-startup
Mobile
Architecture
Club