[Android Advanced] Topic #2 - Architecture
Date and time
Location
SPACE
vulica Kastryčnickaja 16/4 Minsk BelarusDescription
A good software architecture allows the system to be easy to understand, to develop, to maintain and to implement.
The most important principle to follow is separation of concerns. It's a common mistake to write all your code in an Activity or a Fragment. These UI-based classes should only contain logic that handles UI and operating system interactions. By keeping these classes as lean as possible, you can avoid many lifecycle-related problems.
Together with you at a lecture, we will consider:
-
Introduction to Architecture as meaning
-
History
-
What problems we have in app development
-
Architecture matters
-
Solutions
-
Main principles
-
Create app (maybe our own app for fundamentals) which violates good architecture
-
Introduce SOLID (A brief overview)
-
Introduce KISS, DRY, YAGNI (Optional)
-
Fix app with those principles
-
Clean Architecture overview
-
Explain main points
-
History and author of approach
-
Basic principles
-
Mention original structure and linear structure
-
Layers and dependencies (how dependency go from one layer to another)
-
Layers and Dependency Rule
-
Transfer to linear structure
-
Description about layers and entities
-
Description of Domain layer (UseCase/Interactor, Entities)
-
Description of Data layer (Repository Impl, Gateaway)
-
Description of Presentation layer (Presenter/ViewModel, UI)
-
Start rework app to separate on layers and introduce it one by one by putting all logic in different classes and ui logic leave in ui
-
Introduce MVVM as a relationship between UI and logic
-
New business requirement
-
Develop new requirement
-
Show design code, how to include it into current architecture