Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
MVVM, MVP e outras letrinhas
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
David Tiago Conceição
July 18, 2017
Programming
290
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
MVVM, MVP e outras letrinhas
David Tiago Conceição
July 18, 2017
More Decks by David Tiago Conceição
See All by David Tiago Conceição
Trunk Based Development
davidtcdeveloper
0
82
Creating Great APIs With Kotlin
davidtcdeveloper
0
36
Android & Docker
davidtcdeveloper
0
63
What's new in AGP 3.0
davidtcdeveloper
0
91
Pleasantly Fast Gradle Builds
davidtcdeveloper
3
190
Reactive and Functional Programming
davidtcdeveloper
0
120
Uma nova forma de construir layouts
davidtcdeveloper
1
180
Deprecated: AutoValue & Extensions for Android
davidtcdeveloper
0
82
Other Decks in Programming
See All in Programming
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.7k
外から家のPCの電源入れたい!をPHPで解決する
kawashimo0
1
130
R8 の設定見直しでアプリサイズ削減
andpad
0
220
Domain-Driven Transformation
hschwentner
2
2.3k
Findy - エンジニア向け会社紹介/Findy Company Deck
findyinc
6
400k
ジョジョの世界をXRで再現する
mofurune
0
160
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
2
550
TechTown - Creating Composable Callables in Contemporary C++
rollbear
0
130
Agentic Software Factoryに、すごく賢いIF文を。 / super smart IF statement into the Agentic Software Factory.
rkaga
8
2.2k
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
610
npm との違いを手がかりにGo の依存管理を理解したい
optim
0
310
JIS keyboard support in Omarchy
lef237
0
110
Featured
See All Featured
What does AI have to do with Human Rights?
axbom
PRO
1
2.5k
Building the Perfect Custom Keyboard
takai
2
910
Marketing to machines
jonoalderson
1
5.9k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
520
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.7k
The SEO Collaboration Effect
kristinabergwall1
1
590
HDC tutorial
michielstock
2
960
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
A better future with KSS
kneath
240
18k
GitHub's CSS Performance
jonrohan
1033
470k
Transcript
MVVM, MVP e outras letrinhas
None
MVP e MVVM • Não são arquiteturas
None
MVP e MVVM • Camada de apresentação
Model • Camada em comum • “Regras de negócio” •
Use cases • Interactors
View • Interação com usuário • Interação com componentes externos
• Diferentes implementações ◦ Activities ◦ Fragments ◦ Views ◦ …
MVP • View passiva • Contratos entre Presenter e View
• Abstração da View no Presenter
MVP
MVP
MVP • No código
MVP • Pontos fortes ◦ Simplicidade ◦ Fácil entendimento ◦
Contratos ◦ Frameworks adicionais opcionais
MVP • Pontos de atenção ◦ Heavy Presenters ◦ Heavy
Views ◦ Heavy Contracts ◦ Light Contracts ◦ Android Architecture Components
MVVM • View reativa • Campos observáveis entre ViewModel e
View • ViewModel desconhece a View
MVVM
MVVM
MVVM • No código
MVVM • Pontos fortes ◦ Componentes reativos ◦ Altamente flexível
◦ Nenhum contrato ◦ Data binding ◦ Android Architecture Components
MVVM • Pontos de atenção ◦ Heavy ViewModels ◦ Frameworks
adicionais quase obrigatórios ◦ Data binding ▪ ObservableFields públicos ▪ Custom binding adapters ◦ Maior complexidade ◦ Memória
Pontos polêmicos • Android no Presenter/ViewModel ◦ Context ◦ View
◦ Testes • Life cycle • Salvando estado ◦ Presenter/ViewModel ◦ Model
Pontos polêmicos • Contratos • Navegação • Overengineering • Padrão
único
Para saber mais? • Android Architecture Blueprints • Android Testing
Codelab • Android Architecture Components • Zen Android MVVM • Presenters are not for persisting • Your presenters don’t need all those lifecycle events
slack.AndroidDevBR.org Android Dev BR
Obrigado!