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
Implementing MVVM in 2019
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Yuki Yamamoto
July 30, 2019
Technology
1.3k
2
Share
Implementing MVVM in 2019
Slides I used at my talk at Otemachi.swift #04
https://nikkei.connpass.com/event/135908/
Yuki Yamamoto
July 30, 2019
More Decks by Yuki Yamamoto
See All by Yuki Yamamoto
Finding alternatives for GraphQL client for iOS
redryerye
0
3.1k
tvOSにちょっと注目してみる
redryerye
0
1k
Implement P2P connection and stream your content
redryerye
0
730
Other Decks in Technology
See All in Technology
「速く作る」から「正しく作る」へ ─ 生成AI時代の開発フロー改革の ロードマップと実行 ─
starfish719
0
7.6k
新アーキテクチャ「TiDB X」解説とDedicated比較 TiDB Cloud Premiumのゲーム運用活用を検証
staffrecruiter
0
110
PHP と TypeScript の型システム比較:AI 時代の「型」は誰のためにあるのか? #frontend_phpcon_do / frontend_phpcon_do_2026
shogogg
1
250
LLMと共に進化するプロセスを目指して
ymatsuwitter
11
3k
noUncheckedIndexedAccess、3時間、1万円。 / noUncheckedIndexedAccess, 3 Hours, 10,000 JPY.
kaonavi
1
300
正解のないAIプロダクトをどう導くか?dodaが挑む、ユーザーの『本音』を構造化する評価設計と検証のリアル
techtekt
PRO
0
180
OCI Oracle AI Database Services新機能アップデート(2026/03-2026/05)
oracle4engineer
PRO
0
220
Platform Engineering as a Product: Criteria for Improvement and Multi-Tenant Design
kumorn5s
0
500
【Gen-AX】20260530開催_JJUG CCC 2026 Spring
genax
0
420
JEP 522 Deep Dive - G1 GC同期コスト削減によるスループット向上を徹底検証&解説
tabatad
1
850
SIer20年! 培ったスキルがスタートアップで輝く時
shucho0103
0
340
「気づいたら仕事が終わっている」バクラクAIエージェント本番運用の裏側 / layerx-bakuraku-aie2026
yuya4
18
10k
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
840
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.2k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
210
Optimising Largest Contentful Paint
csswizardry
37
3.7k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
71
40k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Transcript
*NQMFNFOUJOH.77.JO 0UFNBDIJTXJGU !SFESZFSZF
8IPBN* :VLJ:BNBNPUP • J04&OHJOFFSBU"."503*6. *OD !SFESZFSZF !SFESZFSZF
8IBUEPFT"."503*6.EP "SUJTUT $PMMFDUPST (BMMFSJFT .VTFVNT 4DBO #MPDLDIBJO .BOBHFNFOUBOE $FSUJGJDBUJPOWJB TNBSUDPOUSBDU
4VCTDSJQUJPOCBTFE BSUXPSLTIBSJOH J04 UW04
"HFOEB • 8IZ.77. • 8IBUJT.77. • )PXXPVMEJUMPPL • .77.JO
8IZ.77.
8IZ.77. #FGPSFJNQMFNFOUJOH
8IZ.77. "GUFS #FGPSFJNQMFNFOUJOH
• "WPJE.BTTJWF7JFX$POUSPMMFS • ,FFQJUTJNQMF 8IZ.77.
8IBUJT.77.
• 'JSTUJOUSPEVDFEGPS8JOEPXT1SFTFOUBUJPO'PVOEBUJPO 81' BSDIJUFDUVSF • %FSJWBUJWFPG.7$BOETFQBSBUFTUIF.PEFMBOEUIF7JFXCZJOUSPEVDJOHBOBCTUSBDU MBZFSCFUXFFOUIFN • 8PSLTXFMMXJUI'VODUJPOBM3FBDUJWF1SPHSBNNJOH 8IBUJT.77.
4063$& .JDSPTPGU %FWFMPQFS#MPH
8IBUJT.77. 7JFX 7JFX.PEFM .PEFM %BUB#JOEJOH 6TFS*OQVU 7JFX0VUQVU 4063$& J04ઃܭύλʔϯೖ
7JFX 7JFX.PEFM .PEFM %BUB#JOEJOH 6TFS*OQVU 7JFX0VUQVU 4063$& J04ઃܭύλʔϯೖ 3Y4XJGU
3FBDUJWF4XJGU 8IBUJT.77.
• 5BLFTUJNFTUPNBTUFS • 6TJOHPQFOTPVSDFTPGUXBSFDPNQPOFOUTDPNFTXJUISJTLT #VU
• 5BLFTUJNFTUPNBTUFS • 6TJOHPQFOTPVSDFTPGUXBSFDPNQPOFOUTDPNFTXJUISJTLT #VU 4063$& ͳͥ͏ͪͷνʔϜ։ൃதͷΞϓϦΛ.77.͔Β.7$ʹͨ͠ͷ͔ !MPWFF ʠʢ.77.͔Β.7$ʹ͢Δ͜ͱͰʣѹతʹগͳ͍3Y4XJGUͷ֤छ0QFSBUPSͳͲʹର͢Δशಘίετʡ
• .77.XJUIPVUSFMZJOHPOUIJSEQBSUJFT 5IVT
4PIPXXPVMEJUMPPL
7JFX 7JFX.PEFM .PEFM %BUB#JOEJOH 6TFS*OQVU 7JFX0VUQVU 4063$& J04ઃܭύλʔϯೖ 4PIPXXPVMEJUMPPL
7JFX 7JFX.PEFM 6TFS*OQVU 7JFX0VUQVU 4PIPXXPVMEJUMPPL
7JFX 7JFX.PEFM 6TFS*OQVU 7JFX0VUQVU 4PIPXXPVMEJUMPPL %PO’UGPSHFUUPDSFBUFBT $MBTT0OMZ1SPUPDPM
7JFX 7JFX.PEFM 6TFS*OQVU 7JFX0VUQVU 4PIPXXPVMEJUMPPL
7JFX 7JFX.PEFM 6TFS*OQVU 7JFX0VUQVU 4PIPXXPVMEJUMPPL
7JFX 4PIPXXPVMEJUMPPL
7JFX 4PIPXXPVMEJUMPPL
• ,JDLTUBSUFS 5IF0(GPSVTJOH.77.JOJ04 • .FSQBZ .77.XJUIPVUPQFOTPVSDFGSBNFXPSLT ':*
*NQMFNFOUJOH.77.JO 0UFNBDIJTXJGU !SFESZFSZF
*NQMFNFOUJOH.77.JO
*NQMFNFOUJOH.77.JO
• 9$PEFXJMMOPUDSFBUFBOZDPOUSPMMFST .77.JO
.77.JO 4063$& HJUIVCDPNLJUBTVLF
5BLF"XBZ • .BLFZPVSMJGFTJNQMFCZLFFQJOHFWFSZUIJOHTJNQMF • %PO’UGPSHFUUPDSFBUFBT$MBTT0OMZ1SPUPDPMGPSPVUQVUTQSPUPDPM • .BTUFSJOH'31DBODPTUZPVUJNF • ,FFQBOBZFPOUIFCFTUBSDIJUFDUVSFTGPS4XJGU6*
*OUFSFTUFEJO"SU 8FBSFMPPLJOHGPSJOUFSOTBOEJ04EFWFMPQFST
5IBOLT :VLJ:BNBNPUP ZVLJ!BNBUPSJVNDPN !SFESZFSZF !SFESZFSZF
4PVSDFT • https://peaks.cc/books/iOS_architecture • https://developer.apple.com/videos/play/techtalks-apple-tv/11/ • https://blogs.msdn.microsoft.com/ivo_manolov/2012/03/17/model-view-viewmodel-mvvm- applications-general-introduction/ • https://tech.mercari.com/entry/2019/06/12/120000
• https://speakerdeck.com/lovee/nazeutifalsetimuhakai-fa-zhong-falseapuriwo-mvvm-kara-mvc-nili- sitafalseka?slide=10 • https://school.geekwall.in/p/rk39b100V/mvvm-in-swiftui
"QQFOEJY