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
The Niche of CDK Grant オブジェクトって何者?/the-niche-of-cdk-what-isgrant-object
hassaku63
1
630
Claude Code + Container Use と Cursor で作る ローカル並列開発環境のススメ / ccc local dev
kaelaela
12
7.2k
20250704_教育事業におけるアジャイルなデータ基盤構築
hanon52_
5
1.1k
ふつうの技術スタックでアート作品を作ってみる
akira888
1
1.3k
猫と暮らす Google Nest Cam生活🐈 / WebRTC with Google Nest Cam
yutailang0119
0
170
ペアプロ × 生成AI 現場での実践と課題について / generative-ai-in-pair-programming
codmoninc
2
22k
AI時代のソフトウェア開発を考える(2025/07版) / Agentic Software Engineering Findy 2025-07 Edition
twada
PRO
99
37k
「App Intent」よくわからんけどすごい!
rinngo0302
1
110
レベル1の開発生産性向上に取り組む − 日々の作業の効率化・自動化を通じた改善活動
kesoji
1
310
PHPUnitの限界をPlaywrightで補完するテストアプローチ
yuzneri
0
190
#QiitaBash MCPのセキュリティ
ryosukedtomita
1
1.5k
型で語るカタ
irof
0
730
Featured
See All Featured
Measuring & Analyzing Core Web Vitals
bluesmoon
7
520
Rails Girls Zürich Keynote
gr2m
95
14k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Music & Morning Musume
bryan
46
6.7k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.6k
Facilitating Awesome Meetings
lara
54
6.5k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Building an army of robots
kneath
306
45k
Practical Orchestrator
shlominoach
189
11k
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.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*ͱϩδοΫ͕͞ΕΔͷͰɺςετ͘͢͠ͳΔ ɾσʔλόΠϯσΟϯάΛར༻ͯ͠ɺૄ݁߹ͳ࣮Λ࣮ݱͰ͖Δ