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
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
380
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Using View Models for simpler UI
DAloG
September 07, 2016
Transcript
68 slides
@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]
More Decks by DAloG
See All by DAloG
State normalization (RU)
dalog
0
260
Redux + MQTT
dalog
1
840
От задач к проблемам
dalog
1
300
Unlimited power of Data-Driven UI
dalog
4
720
Data-Driven View Controllers. Tips and Tricks
dalog
5
2k
2 years of Redux in iOS. Lessons learned
dalog
0
440
Why unidirectional architecture matter for iOS.
dalog
1
350
Mobile backend without REST
dalog
2
160
Self managed teams 101
dalog
0
220
Other Decks in Programming
See All in Programming
クラウドエージェントは、 何がそんなに便利なのか / what makes cloud agents so useful
rkaga
5
850
Engineering Biometric UX Across Android Versions | DroidKnights 2026
ryunen344
1
200
AI時代のシニアエンジニアとは
yosuke_furukawa
PRO
15
11k
Crash Auto Pipelines
veronikapj
1
410
DroidKnights 2026 Android A2UI Jetpack Compose 기반의 안전한 AI UI 렌더링 - 박제창
itsmedreamwalker
1
230
そのデザイントークン、Flutterでも同じ見た目になりますか?
nakamizu
0
340
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
4
4.2k
Vue.jsで作る空間解析アプリとCapacitorプラグインのData Bridge
hal_spidernight
1
170
AI Augmentation Techniques with Liberty
ivargrimstad
1
460
graphql-ruby を Spinel で速くしようとした話
mtsmfm
0
140
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
4
1.5k
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
420
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
699
190k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
470
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
570
Paper Plane
katiecoart
PRO
6
55k
From π to Pie charts
rasagy
1
440
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
60k
Deep Space Network (abreviated)
tonyrice
0
410
Are puppies a ranking factor?
jonoalderson
2
4.2k
[RailsConf 2023] Rails as a piece of cake
palkan
59
7.1k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.9k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
2
400