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
Using View Models for simpler UI
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
DAloG
September 07, 2016
Programming
1
340
Using View Models for simpler UI
DAloG
September 07, 2016
Tweet
Share
More Decks by DAloG
See All by DAloG
State normalization (RU)
dalog
0
220
Redux + MQTT
dalog
1
800
От задач к проблемам
dalog
1
280
Unlimited power of Data-Driven UI
dalog
4
680
Data-Driven View Controllers. Tips and Tricks
dalog
5
2k
2 years of Redux in iOS. Lessons learned
dalog
0
400
Why unidirectional architecture matter for iOS.
dalog
1
320
Mobile backend without REST
dalog
2
130
Self managed teams 101
dalog
0
180
Other Decks in Programming
See All in Programming
Ruby x Terminal
a_matsuda
7
590
AI Assistants for Your Angular Solutions
manfredsteyer
PRO
0
130
Windows on Ryzen and I
seosoft
0
250
守る「だけ」の優しいEMを抜けて、 事業とチームを両方見る視点を身につけた話
maroon8021
3
720
PJのドキュメントを全部Git管理にしたら、一番喜んだのはAIだった
nanaism
0
250
CSC307 Lecture 15
javiergs
PRO
0
240
AWS Infrastructure as Code の新機能 2025 総まとめ 〜SA 4人による怒涛のデモ祭り〜
konokenj
10
3.3k
maplibre-gl-layers - 地図に移動体たくさん表示したい
kekyo
PRO
0
240
米国のサイバーセキュリティタイムラインと見る Goの暗号パッケージの進化
tomtwinkle
2
550
AI活用のコスパを最大化する方法
ochtum
0
130
Codex の「自走力」を高める
yorifuji
0
1.2k
Geminiの機能を調べ尽くしてみた
naruyoshimi
0
200
Featured
See All Featured
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
630
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
140
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
630
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
480
AI: The stuff that nobody shows you
jnunemaker
PRO
3
370
A Tale of Four Properties
chriscoyier
163
24k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
260
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
68
Technical Leadership for Architectural Decision Making
baasie
3
280
Automating Front-end Workflow
addyosmani
1370
200k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Transcript
@daloog #iosdevuk Component Driven …and modular UI code with ViewModel
Alexey Demedetskyi
@daloog #iosdevuk https://www.youtube.com/watch?v=dJUEkjxylBw
@daloog #iosdevuk Alexey Demedetskyi
[email protected]
Github Speakerdeck iOS Team lead
@ Sigma Software
@daloog #iosdevuk MVVM: 2012 - 2015 MVC: 2009 - 2011
Redux: 2015 - …
@daloog #iosdevuk MVVM
@daloog #iosdevuk How to MVVM 1. Extract ViewModel from ViewController
2. ??? 3. Good design https://sharpfivesoftware.com/2016/07/20/mvvm-is-lipstick-on-a-pig/
@daloog #iosdevuk
@daloog #iosdevuk View Models
@daloog #iosdevuk “Design is never done.”
@daloog #iosdevuk
@daloog #iosdevuk Art
@daloog #iosdevuk Art Engineering
@daloog #iosdevuk
@daloog #iosdevuk Feedback loop
@daloog #iosdevuk Definition of done
@daloog #iosdevuk Better tools
@daloog #iosdevuk Better result
@daloog #iosdevuk Art Engineering UI - ?
@daloog #iosdevuk Art Engineering UI
@daloog #iosdevuk UI is the hardest CS problem
@daloog #iosdevuk
@daloog #iosdevuk
@daloog #iosdevuk
@daloog #iosdevuk
@daloog #iosdevuk
@daloog #iosdevuk
@daloog #iosdevuk Zero* dependency** rule*** * - not actually zero
** - internal is ok *** - not a rule at all
@daloog #iosdevuk TDD?
@daloog #iosdevuk
@daloog #iosdevuk Singletons
@daloog #iosdevuk Dependency net ViewController Network Database DataModel Application
@daloog #iosdevuk Dependency tree ViewController Network Database DataModel Application View
@daloog #iosdevuk Parent is always responsible for child dependencies
@daloog #iosdevuk Module External dependency
@daloog #iosdevuk Module Internal dependency
@daloog #iosdevuk Module context always should be external
@daloog #iosdevuk Zero dependency UI?
@daloog #iosdevuk Component UI
@daloog #iosdevuk
@daloog #iosdevuk
@daloog #iosdevuk
@daloog #iosdevuk Action
@daloog #iosdevuk https://medium.com/swift-fox/react-native-native-28e37f7de1ae#.x3l8sip38 Native React Native
@daloog #iosdevuk VM == Props
@daloog #iosdevuk MVVM
@daloog #iosdevuk React
@daloog #iosdevuk VM + Dynamic Animations, partial updates, etc.
@daloog #iosdevuk Deposit Time
@daloog #iosdevuk Deposit Time
@daloog #iosdevuk Deposit Time + + - - -
@daloog #iosdevuk State = f(t)
@daloog #iosdevuk Event = ΔState
@daloog #iosdevuk State = ∫Event
@daloog #iosdevuk
@daloog #iosdevuk CQRS Event sourcing
@daloog #iosdevuk
@daloog #iosdevuk Data driven
@daloog #iosdevuk Data driven
@daloog #iosdevuk VM + Complexity Containers, transition
@daloog #iosdevuk https://medium.com/@dan_abramov/smart-and- dumb-components-7ca2f9a7c7d0#.62d4jggzw
@daloog #iosdevuk FriendsList VC Friend VC FriendsList VM Friend VM
@daloog #iosdevuk
@daloog #iosdevuk
@daloog #iosdevuk Shared state
@daloog #iosdevuk http://redux.js.org
@daloog #iosdevuk ReSwift https://github.com/ReSwift/ReSwift
@daloog #iosdevuk P == NP ?
[email protected]
@daloog #iosdevuk Questions?
[email protected]