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
Search
Kazuhiro Sakamoto
October 13, 2017
Programming
11
2.8k
やさしくわかるMVVM
iOSDC 2017 Reject Conference days1の発表資料です
Kazuhiro Sakamoto
October 13, 2017
Tweet
Share
More Decks by Kazuhiro Sakamoto
See All by Kazuhiro Sakamoto
今こそ理解しよう、輸出コンプライアンス
kazu0620
7
12k
Swiftにもasync/awaitがやって来る!
kazu0620
4
1.6k
RxExampleから学ぶ!RxSwift
kazu0620
8
3.3k
RxSwiftをプロダクトに導入してみた話
kazu0620
13
6.1k
Other Decks in Programming
See All in Programming
Conquering Massive Traffic Spikes in Ruby Applications with Pitchfork
riseshia
0
140
uniqueパッケージの内部実装を支えるweak pointerの話
magavel
0
880
Django Ninja による API 開発効率化とリプレースの実践
kashewnuts
0
870
Learn CPU architecture with Assembly
akkeylab
1
1.3k
ИИ-Агенты в каждый дом – Алексей Порядин, PythoNN
sobolevn
0
150
CSC509 Lecture 03
javiergs
PRO
0
320
メモリ不足との戦い〜大量データを扱うアプリでの実践例〜
kwzr
1
740
Build your own WebP codec in Swift
kishikawakatsumi
2
870
育てるアーキテクチャ:戦い抜くPythonマイクロサービスの設計と進化戦略
fujidomoe
1
150
ててべんす独演会〜Flowの全てを語ります〜
tbsten
1
220
WebエンジニアがSwiftをブラウザで動かすプレイグラウンドを作ってみた
ohmori_yusuke
0
170
プロダクト開発をAI 1stに変革する〜SaaS is dead時代で生き残るために〜 / AI 1st Product Development
kobakei
0
440
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
For a Future-Friendly Web
brad_frost
180
9.9k
Typedesign – Prime Four
hannesfritz
42
2.8k
Building Adaptive Systems
keathley
43
2.8k
It's Worth the Effort
3n
187
28k
RailsConf 2023
tenderlove
30
1.2k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Agile that works and the tools we love
rasmusluckow
331
21k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
Producing Creativity
orderedlist
PRO
347
40k
Facilitating Awesome Meetings
lara
56
6.6k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
Transcript
͘͞͠Θ͔Δ.77. @kazu0620
ࣗݾհ ɾࡔຊ େ( @kazu0620 ) ɾݩʑιʔγϟϧήʔϜͷ։ൃͳͲ ɾ2015 Sansanೖࣾ ɾEightࣄۀ෦ʹͯiOSΞϓϦͷ։ൃΛ୲
ࠓ͓͢Δ͜ͱ .77.ͷ.77.͕ͦΕͧΕͲ͏͍͏ׂ͔ʹ ίʔυྫʹ3Y4XJGUΛͬͯΔ͕ɺͦͪΒ৮Γ͚ͩ
Γ͍ͨ͜ͱ 6*ͱϩδοΫσʔλ Λ៉ྷʹ͚͍ͨ
ͦΕɺ.7$͡ΌμϝͳΜʁ
ผʹྑ͍
͚Ͳɺਏ͍͜ͱ͋Δ
7JFX$POUSPMMFSBT.FEJBUPS 7JFX$POUSPMMFS.PEFMͷॲཧΛݺͼग़͢ 7JFX$POUSPMMFS݁ՌΛ$BMMCBDL௨Ͱड͚औΔ 7JFX$POUSPMMFS݁ՌΛݩʹ7JFXͷঢ়ଶΛૢ࡞ 7JFX$POUSPMMFSͷதͰ6*ͱϩδοΫ͕ࠞ͟Γ͕ͪ
͏ͪΐͬͱྑ͍ײ͡ʹ 6*ͱϩδοΫσʔλ Λ៉ྷʹ͚͍ͨ
ViewModel Model Presentation Logic Domain Logic (And Data) View ViewController
UI UI .77.
ࡶͳΠϯΫϦϝϯλϧαʔνͰߟ͑Δ
7JFXͷΛͲ͏ͬͯ࡞Δ͔ʁ 7JFXࢹ͔Β7JFX.PEFMΛݟͯߟ͑Α͏
None
None
None
None
None
7JFX$POUSPMMFSͷ࣮
7JFX$POUSPMMFSͷ࣮
7JFX$POUSPMMFSͷ࣮ ೖྗ͞Εͨ5FYUΛ7JFX.PEFMʹ͑Δ
7JFX.PEFM͔ΒΘΔ Λը໘ʹө͢Δ͚ͩ %BUB#JOEJOH
7JFX͕Δ͜ͱ ɾϩδοΫ࣋ͨͣͨͩ6*Λఆٛ͢Δ ɾϢʔβʔ͔Βͷૢ࡞Λ7JFX.PEFMʹ͑Δ ɾ7JFX.PEFM͔Βड͚औͬͨΛ7JFXʹө͢Δ ɾ ը໘ભҠͷॲཧ 7JFX͕Βͳ͍͜ͱ ɾϞσϧσʔλΛ7JFX͕ૢ࡞͢Δ͜ͱͳ͍
None
7JFX.PEFMͷ֊ΛͲ͏ͬͯ࡞Δ͔ʁ 7JFX.PEFMࢹ͔Βݟͯߟ͑Α͏
None
None
None
None
None
None
7JFX.PEFMͷ࣮
7JFX.PEFMͷ࣮ 7JFXʹެ։͢ΔϓϩύςΟΛఆٛ
None
.PEFMʹॲཧΛґཔ
.PEFMʹॲཧΛґཔ ݁ՌΛ7JFXͷ߹ʹ߹Θͤͨܗʹมͯ͋͛͠Δ
7JFX.PEFM͕Δ͜ͱ ɾ.PEFMʹυϝΠϯϩδοΫʹؔ͢ΔॲཧΛґཔ ɾ.PEFMͷ࠷৽ͷΛɺදࣔͷ߹ʹ߹Θͤͨܗʹ͢Δ 7JFX.PEFM͕Βͳ͍͜ͱ ɾυϝΠϯϩδοΫɾσʔλͷૢ࡞ͳͲ.PEFMʹ ͤΔ
None
.PEFMͷ࣮
.PEFM͕Δ͜ͱ ɾΞϓϦݻ༗ͷσʔλϏδωεϩδοΫΛఆٛ ɾ.PEFMͷׂଞͷ.7YͱಛʹมΘΒͳ͍ͣ .PEFM͕Βͳ͍͜ͱ ɾ7JFX 6* ʹؔ͢Δૢ࡞વߦΘͳ͍
͓͞Β͍
None
None
.77.ͷྑ͞ ɾ.77.Ͱɺ6*ͱϩδοΫͯ͠ݟ௨͠Α͘ॻ͘͜ͱ͕Ͱ͖Δ ɾ6*ͱϩδοΫ͕͞ΕΔͷͰɺςετ͘͢͠ͳΔ ɾσʔλόΠϯσΟϯάΛར༻ͯ͠ɺૄ݁߹ͳ࣮Λ࣮ݱͰ͖Δ