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
DAloG
September 07, 2016
Programming
1
320
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
160
Redux + MQTT
dalog
1
760
От задач к проблемам
dalog
1
220
Unlimited power of Data-Driven UI
dalog
4
610
Data-Driven View Controllers. Tips and Tricks
dalog
5
1.8k
2 years of Redux in iOS. Lessons learned
dalog
0
340
Why unidirectional architecture matter for iOS.
dalog
1
270
Mobile backend without REST
dalog
2
86
Self managed teams 101
dalog
0
130
Other Decks in Programming
See All in Programming
React 19でお手軽にCSS-in-JSを自作する
yukukotani
5
570
선언형 UI에서의 상태관리
l2hyunwoo
0
270
[JAWS-UG横浜 #80] うわっ…今年のServerless アップデート、少なすぎ…?
maroon1st
0
110
『改訂新版 良いコード/悪いコードで学ぶ設計入門』活用方法−爆速でスキルアップする!効果的な学習アプローチ / effective-learning-of-good-code
minodriven
28
4.2k
Azure AI Foundryのご紹介
qt_luigi
1
210
shadcn/uiを使ってReactでの開発を加速させよう!
lef237
0
300
Оптимизируем производительность блока Казначейство
lamodatech
0
960
PHPUnitしか使ってこなかった 一般PHPerがPestに乗り換えた実録
mashirou1234
0
420
Итераторы в Go 1.23: зачем они нужны, как использовать, и насколько они быстрые?
lamodatech
0
1.4k
HTML/CSS超絶浅い説明
yuki0329
0
190
rails newと同時に型を書く
aki19035vc
5
710
自分ひとりから始められる生産性向上の取り組み #でぃーぷらすオオサカ
irof
3
360
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
182
22k
The Cult of Friendly URLs
andyhume
78
6.1k
The Cost Of JavaScript in 2023
addyosmani
46
7.2k
Making Projects Easy
brettharned
116
6k
Navigating Team Friction
lara
183
15k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
870
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Done Done
chrislema
182
16k
YesSQL, Process and Tooling at Scale
rocio
170
14k
Building Better People: How to give real-time feedback that sticks.
wjessup
366
19k
Java REST API Framework Comparison - PWX 2021
mraible
28
8.3k
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]