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.9k
やさしくわかる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.2k
Other Decks in Programming
See All in Programming
AI によるインシデント初動調査の自動化を行う AI インシデントコマンダーを作った話
azukiazusa1
1
710
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
2
1.9k
AWS re:Invent 2025参加 直前 Seattle-Tacoma Airport(SEA)におけるハードウェア紛失インシデントLT
tetutetu214
2
110
AI & Enginnering
codelynx
0
110
SourceGeneratorのススメ
htkym
0
190
LLM Observabilityによる 対話型音声AIアプリケーションの安定運用
gekko0114
2
430
「ブロックテーマでは再現できない」は本当か?
inc2734
0
950
プロダクトオーナーから見たSOC2 _SOC2ゆるミートアップ#2
kekekenta
0
200
余白を設計しフロントエンド開発を 加速させる
tsukuha
7
2.1k
Oxlintはいいぞ
yug1224
5
1.3k
カスタマーサクセス業務を変革したヘルススコアの実現と学び
_hummer0724
0
680
Basic Architectures
denyspoltorak
0
670
Featured
See All Featured
Embracing the Ebb and Flow
colly
88
5k
Exploring anti-patterns in Rails
aemeredith
2
250
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.7k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Writing Fast Ruby
sferik
630
62k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
430
Building Adaptive Systems
keathley
44
2.9k
New Earth Scene 8
popppiees
1
1.5k
Discover your Explorer Soul
emna__ayadi
2
1.1k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
92
How to Think Like a Performance Engineer
csswizardry
28
2.4k
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*ͱϩδοΫ͕͞ΕΔͷͰɺςετ͘͢͠ͳΔ ɾσʔλόΠϯσΟϯάΛར༻ͯ͠ɺૄ݁߹ͳ࣮Λ࣮ݱͰ͖Δ