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
300
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
110
Development on Kotlin/Native and Swift
aydarin
1
130
AppCode under the hood
aydarin
1
360
Bridging the gap between Kotlin and Swift
aydarin
0
140
A look into AB testing
aydarin
0
95
Exploring MVVM-C
aydarin
0
180
Coordinate your app
aydarin
1
110
Localization.pdf
aydarin
0
67
image_optimization.pdf
aydarin
0
71
Other Decks in Programming
See All in Programming
AI時代の仕事技芸論〜ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ(スクフェス仙台 2026バージョン)
kuranuki
0
680
共通化で考えるべきは、実装より公開する型だった
codeegg
0
270
信頼性について考えてみる(SRE NEXT 2026 miniLT)
hayama17
0
200
『コードを書く以外の』エンジニアリング〜課金基盤移行プロジェクト推進のためのTips4選
yuriko1211
0
530
ローカルLLMでどこまでコードが書けるか -縮小版 / How much code can be written on a local LLM Shortened
kishida
2
200
Welcome to the "Parametricity" 🏙️ − Generic だけど Specific な世界 −
guvalif
PRO
1
180
使用 Meilisearch 建立新聞搜尋工具
johnroyer
0
160
FDEが実現するAI駆動経営の現在地
gonta
2
190
【やさしく解説 設計編・中級 #6】良いアーキテクチャとは ~ 一本の登り道の、行き先 ~
panda728
PRO
0
170
ビデオ通話が繋がる0.2秒で何が起きているのか
supurazako
2
150
yield再入門 #phpcon
o0h
PRO
0
700
SREは、MCPとSRE Agentをこう使え!
kazumax55
0
150
Featured
See All Featured
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
BBQ
matthewcrist
89
10k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
190
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
550
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
How to Think Like a Performance Engineer
csswizardry
28
2.7k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
Navigating Team Friction
lara
192
16k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
900
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.4k
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