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: An iOS Journey
Search
Kim Arnett
June 09, 2017
Technology
0
100
MVVM: An iOS Journey
Slides from my talk @ Beer City Code in Grand Rapids, MI June 2017
Kim Arnett
June 09, 2017
Tweet
Share
More Decks by Kim Arnett
See All by Kim Arnett
iOSIntroSlides.pdf
kimberlyarnett
0
160
Other Decks in Technology
See All in Technology
AWS 怖い話 WAF編 @fillz_noh #AWSStartup #AWSStartup_Kansai
fillznoh
0
140
地図と生成AI
nakasho
0
180
「Chatwork」のEKS環境を支えるhelmfileを使用したマニフェスト管理術
hanayo04
1
410
サイバーエージェントグループのSRE10年の歩みとAI時代の生存戦略
shotatsuge
4
1.1k
SREのためのeBPF活用ステップアップガイド
egmc
2
1.3k
「現場で活躍するAIエージェント」を実現するチームと開発プロセス
tkikuchi1002
5
640
Four Keysから始める信頼性の改善 - SRE NEXT 2025
ozakikota
0
430
ソフトウェアQAがハードウェアの人になったの
mineo_matsuya
3
230
SRE with AI:実践から学ぶ、運用課題解決と未来への展望
yoshiiryo1
1
450
毎晩の 負荷試験自動実行による効果
recruitengineers
PRO
5
190
第64回コンピュータビジョン勉強会「The PanAf-FGBG Dataset: Understanding the Impact of Backgrounds in Wildlife Behaviour Recognition」
x_ttyszk
0
250
Data Engineering Study#30 LT資料
tetsuroito
1
360
Featured
See All Featured
The Cult of Friendly URLs
andyhume
79
6.5k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.7k
Site-Speed That Sticks
csswizardry
10
710
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.2k
Code Review Best Practice
trishagee
69
19k
Agile that works and the tools we love
rasmusluckow
329
21k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.4k
The Invisible Side of Design
smashingmag
301
51k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
The Straight Up "How To Draw Better" Workshop
denniskardys
235
140k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Transcript
MVVM: An iOS Journey Kim Arnett @kimberlypilbeam
MVVM: An iOS Journey Problem: Testing is a bear. Files
continue to be massive. Hacks for testing feel terrible. Dependency injection?
MVVM: An iOS Journey Swift gave Obj-C programmers an appreciation
for cleaner solutions.
MVVM: An iOS Journey Swift gave Obj-C programmers an appreciation
for cleaner solutions. [[[[[you know] what] im] talking] about]
ARCHITECTURE
MVC: Model View Controller (recommended by Apple) Model Controller View
User Action Updates Notifies Updates
MVVM: Model View ViewModel Model ViewModel View User Action Updates
Notifies Updates
MVC: Model View Controller (recommended by Apple) Model Controller View
UIView UIViewController • Logic • Network Calls Data Models
MVVM: Model View ViewModel Model ViewModel View UIViewController UIView Logic
Network Calls Data Models
TESTING
Unit Testing VS UI Testing Unit Testing is for Logic
& Business Requirements UI Testing* is to make sure views exist & can be navigated *Important to set Accessibility labels
MVVM: Model View ViewModel Model ViewModel View UIViewController UIView Logic
Network Calls Data Models Unit Testing with Mock Data
MVVM: Model View ViewModel Model ViewModel View UIViewController UIView Logic
Network Calls Data Models UI Testing with Mock Data
Implementation
MVVM: An iOS Journey Cleaner Code Better Performance & Less
Hack-y Easier Maintainability Open for Testing
MVVM: An iOS Journey Kim Arnett @kimberlypilbeam github.com/karnett/MVVM