Model View
Controller
View
Controller
Model
update state
actions
updates
commands
Slide 25
Slide 25 text
Massive
ViewController
Controller
Network Database
Business
rules
Slide 26
Slide 26 text
Many
ViewControllers
Controller
Network Database
Business
rules
Controller Controller
Slide 27
Slide 27 text
Change cost
Time cost
Number of relationships
Slide 28
Slide 28 text
Do not change root.
Change leafs.
Slide 29
Slide 29 text
Many
ViewControllers
Controller
Network Database
Business
rules
Controller Controller
Slide 30
Slide 30 text
Model Layer
Slide 31
Slide 31 text
Model of something
is description of
important parts.
Slide 32
Slide 32 text
Model can:
hide process details
abstract actions
hide unneeded data
Slide 33
Slide 33 text
Many
ViewControllers
Controller
Network Database
Business
rules
Controller Controller
Slide 34
Slide 34 text
Many Models
Model
Network Database
Business
rules
Model Model
Slide 35
Slide 35 text
Changes
Soft changes
Hard changes
Slide 36
Slide 36 text
Model is soft
change buffer
Slide 37
Slide 37 text
Model View
Controller
View
Controller
Model
update state
actions
updates
change
Slide 38
Slide 38 text
MVC - FIXED!
Slide 39
Slide 39 text
BDSM
Practices which helps
Slide 40
Slide 40 text
Bindings
Slide 41
Slide 41 text
Controller binds view to model
data.
Controller call model actions.
Model change it’s data.
View hook up changes.
Slide 42
Slide 42 text
Data-driven
model
Slide 43
Slide 43 text
All model actions is -(void)
Model data is always valid
Model data is formatted for view
Slide 44
Slide 44 text
Stateless Controller
Slide 45
Slide 45 text
Model data is enough to fill UI
Model store intermediate state
View can animate from state to
state
Slide 46
Slide 46 text
Mandatory
Slide 47
Slide 47 text
Code review B, D and S
Architecture has priority over
feature
Task can`t be closed without code
review.
Slide 48
Slide 48 text
BDSM
Use bindings for model
observations
Delegate all process handling to
Model
Delegate all state handling to Model
Keep all code in project consistent.
Slide 49
Slide 49 text
MVVM
Slide 50
Slide 50 text
Multiple Models
Model
Network Database
Business
rules
Model Model
Slide 51
Slide 51 text
Single model
Application
Model
Network Database
Business
rules
Slide 52
Slide 52 text
Application model
has wide interface
Slide 53
Slide 53 text
Controller problem
Slide 54
Slide 54 text
Application
Model
Controller Controller Controller
Slide 55
Slide 55 text
Each Controller
can do anything
Slide 56
Slide 56 text
View Model
to the rescue!
Slide 57
Slide 57 text
Application
Model
View
Model
View
Model
View
Model
Slide 58
Slide 58 text
View model has
thin interface
Slide 59
Slide 59 text
View model is
Application model
adapter for
specific controller
Slide 60
Slide 60 text
View
Controller
View
Model
update state
actions
updates
change
Slide 61
Slide 61 text
AM-VM-C-V ?
Slide 62
Slide 62 text
VC is a View
from Application model perspective
Slide 63
Slide 63 text
MVVM = MVC
Slide 64
Slide 64 text
Summary
Slide 65
Slide 65 text
Abstraction
level
Ownership chain
UIKIT
Controller
View Model
Application
Model
Service
Framework
Service
Interface