Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
MVVM vs MVP
Search
Aydar
October 10, 2017
Programming
290
1
Share
MVVM vs MVP
Presentation for the lightning talk on spikeweek at Freeletics
Aydar
October 10, 2017
More Decks by Aydar
See All by Aydar
The Realities of A/B Testing
aydarin
0
94
Development on Kotlin/Native and Swift
aydarin
1
130
AppCode under the hood
aydarin
1
340
Bridging the gap between Kotlin and Swift
aydarin
0
140
A look into AB testing
aydarin
0
91
Exploring MVVM-C
aydarin
0
180
Coordinate your app
aydarin
1
100
Localization.pdf
aydarin
0
67
image_optimization.pdf
aydarin
0
70
Other Decks in Programming
See All in Programming
第3木曜LT会 #28
tinykitten
PRO
0
120
mruby on C#: From VM Implementation to Game Scripting (RubyKaigi 2026)
hadashia
2
1.5k
Lightning-Fast Method Calls with Ruby 4.1 ZJIT / RubyKaigi 2026
k0kubun
3
2.2k
「話せることがない」を乗り越える 〜日常業務から登壇テーマをつくる思考法〜
shoheimitani
4
960
「Linuxサーバー構築標準教科書」を読んでみた #ツナギメオフライン.7
akase244
0
1.4k
ふりがな Deep Dive try! Swift Tokyo 2026
watura
0
270
My daily life on Ruby
a_matsuda
2
160
(Re)make Regexp in Ruby: Democratizing internals for the JIT
makenowjust
3
970
UIの境界線をデザインする | React Tokyo #15 メイントーク
sasagar
2
420
t *testing.T は どこからやってくるの?
otakakot
1
890
[RubyKaigi 2026] Require Hooks
palkan
1
280
Terraform言語の静的解析 / static analysis of Terraform language
wata727
1
130
Featured
See All Featured
Marketing to machines
jonoalderson
1
5.2k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1k
Everyday Curiosity
cassininazir
0
200
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
220
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
210
HDC tutorial
michielstock
2
650
The Spectacular Lies of Maps
axbom
PRO
1
730
How to build a perfect <img>
jonoalderson
1
5.5k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
140
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.7k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
Transcript
MVVM-C vs MVP Aydar Mukhametzyanov Dmytro Khmelenko
None
None
View Controller Model Model-View-Controller
Layout Activity View Controller Model Model-View-Controller
View Controller Model Model-View-Controller
UIViewController Model View Controller Model-View-Controller
Problems with MVC Activity/UIViewController is a “God” class Business logic
is mixed with UI Hard to reuse Hard to implement tests
Solution Model-View-Presenter Model-View-ViewModel (+Coordinator)
View Model (Interactor) Activity Layout Presenter MVP
Solution Model-View-Presenter Model-View-ViewModel (+Coordinator)
MVVM UIViewController Model View Controller
Model ViewModel View UIViewController MVVM
Model ViewModel View UIViewController UIView MVVM Navigation?
MVVM stack Model ViewModel View Coordinator MVVM-C
MVVM stack Coordinator MVVM stack MVVM stack MVVM-C
MVVM stack MVVM stack MVVM stack MVVM stack Coordinator Coordinator
MVVM-C
View Model (Interactor) Activity Layout Presenter MVVM vs MVP Model
ViewModel View UIViewController UIView
• Provides data to Presenter/ViewModel • Processes data (networking, persistence)
Model (Interactor) Responsibilities
Responsibilities • Draws UI with provided data • Notifies Presenter/ViewModel
about user actions View
• Handles user actions from View • Gets data from
Model • Updates data in Model • Business logic • Provides updated/processed data to View Presenter/ViewModel Responsibilities ——————————————————— • Communicates with Coordinator
• Handle navigation • Build the MVVM stacks Coordinator Responsibilities
Same thing, different names?
Bindings View ViewModel Owns Observes by Reactive approach
Simulate bindings View ViewModel Owns Notifies To be continued… …with
Reactive approach?
Business logic is decoupled from UI Easy to maintain Easy
to test Easy to reuse components MVP/MVVM-C advantages
Thank you! Questions