Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Implementing MVVM in 2019
Search
Yuki Yamamoto
July 30, 2019
Technology
1.3k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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.2k
tvOSにちょっと注目してみる
redryerye
0
1k
Implement P2P connection and stream your content
redryerye
0
730
Other Decks in Technology
See All in Technology
その Valkey 使いこなしていますか?
onk
PRO
5
1.7k
スプシの手作業からの解脱 ~更新はClaude Codeに、見せ方と使い方はGASアプリに任せる~
kentarofujii
0
170
AIカンパニーへの転換を支えた、エンジニアの仕事の再定義
kworkdev
PRO
2
1.4k
大型犬好きによるPugの紹介
yamanoku
1
160
アウトプット初心者、半年間のふりかえり
4o1sobblue
0
460
野蛮なアジャイル [サイボウズ発!]組織の常識を覆した反骨のスクラム実践記 / Barbaric Agile - Enterprise Agile Study Group
ama_ch
0
120
LLM-as-a-Judgeは本当に信頼できるのか――評価器を評価する話
taka_aki
2
950
CTO Night|NotionのAIエージェントとFDE
kzkhykw1991
0
290
WasmをRustにする
sansantech
PRO
0
300
夫婦で子育てするための育児標準化
codmoninc
PRO
0
520
実践!Cloud Run ハンズオン!! / Cloud Run handson
y0hgi
2
300
Railsで挑む大量データ永続化 〜600億件を永続化するための設計とボトルネックとの戦い〜
occhi
1
1k
Featured
See All Featured
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
610
Automating Front-end Workflow
addyosmani
1369
210k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
The SEO Collaboration Effect
kristinabergwall1
1
600
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
290
Crafting Experiences
bethany
1
390
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.4k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.4k
How to Talk to Developers About Accessibility
jct
2
580
How to train your dragon (web standard)
notwaldorf
96
6.9k
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