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.2k
RxSwiftをプロダクトに導入してみた話
kazu0620
13
6.1k
Other Decks in Programming
See All in Programming
ISUCON研修おかわり会 講義スライド
arfes0e2b3c
1
450
#QiitaBash MCPのセキュリティ
ryosukedtomita
1
1.4k
Advanced Micro Frontends: Multi Version/ Framework Scenarios @WAD 2025, Berlin
manfredsteyer
PRO
0
180
明示と暗黙 ー PHPとGoの インターフェイスの違いを知る
shimabox
2
520
Blazing Fast UI Development with Compose Hot Reload (droidcon New York 2025)
zsmb
1
300
PHP 8.4の新機能「プロパティフック」から学ぶオブジェクト指向設計とリスコフの置換原則
kentaroutakeda
2
930
レベル1の開発生産性向上に取り組む − 日々の作業の効率化・自動化を通じた改善活動
kesoji
0
230
設計やレビューに悩んでいるPHPerに贈る、クリーンなオブジェクト設計の指針たち
panda_program
6
2.2k
“いい感じ“な定量評価を求めて - Four Keysとアウトカムの間の探求 -
nealle
2
10k
生成AI時代のコンポーネントライブラリの作り方
touyou
1
230
Porting a visionOS App to Android XR
akkeylab
0
480
Composerが「依存解決」のためにどんな工夫をしているか #phpcon
o0h
PRO
1
270
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
223
9.7k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Unsuck your backbone
ammeep
671
58k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.7k
The Invisible Side of Design
smashingmag
301
51k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
Agile that works and the tools we love
rasmusluckow
329
21k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.5k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
The Straight Up "How To Draw Better" Workshop
denniskardys
235
140k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
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*ͱϩδοΫ͕͞ΕΔͷͰɺςετ͘͢͠ͳΔ ɾσʔλόΠϯσΟϯάΛར༻ͯ͠ɺૄ݁߹ͳ࣮Λ࣮ݱͰ͖Δ