Starting from origins of Architecture as discipline, we review strong reasons why and when to create architecture and when not. Analyzing spectrum of efforts, needed to implement certain level of architecture, we are able to make important early decisions about system architecture and it's evolution.
We come over basic principles of building effective, robust systems and clean code - KISS, YAGNI, DRY, SOLID. We overview Clean Architecture and it's implications for Mobile Apps Development.
Reviewing specifics of Android Apps Development, we come to reasoning about common Mobile Architecture Patterns, such as MVC, MVP, MVVM, VIPER, RIBs and relations between them.
Based on 4 levels of Mobile Architecture Complexity, we'll review main "levels" of technology complexity that might be introduced when implementing popular Mobile Architecture Patterns (such as Layers, Views, Dependency Injection, Coordinator Pattern and Reactive Programming).
We will talk about evolution of Mobile Applications Architecture and variations of architecture implementations and frameworks.
We will touch Google Architecture Guidelines, Architecture Components and MVVM pattern implementation in Architecture Components.
At the end of presentation we'll talk about Project Lifecycle and Agile Architecting. We'll see different stages of Project Lifecycle on example of common Startup evolution, see spectrum of efforts and needed Architecture for different stages of project evolution. We'll talk about Minimal Viable Architecture and advices for Startups architecture from Randy Shoup.