Save 37% off PRO during our Black Friday Sale! »

Implementing MVVM in 2019

Implementing MVVM in 2019

Slides I used at my talk at Otemachi.swift #04
https://nikkei.connpass.com/event/135908/

65f8e7fd7925a49241339277444d3fda?s=128

Yuki Yamamoto

July 30, 2019
Tweet

Transcript

  1. *NQMFNFOUJOH.77.JO 0UFNBDIJTXJGU  !SFESZFSZF

  2. 8IPBN* :VLJ:BNBNPUP • J04&OHJOFFSBU"."503*6. *OD !SFESZFSZF !SFESZFSZF

  3. 

  4. 8IBUEPFT"."503*6.EP "SUJTUT $PMMFDUPST (BMMFSJFT .VTFVNT 4DBO #MPDLDIBJO .BOBHFNFOUBOE $FSUJGJDBUJPOWJB TNBSUDPOUSBDU

    4VCTDSJQUJPOCBTFE BSUXPSLTIBSJOH J04 UW04
  5. "HFOEB • 8IZ.77. • 8IBUJT.77. • )PXXPVMEJUMPPL • .77.JO

  6. 8IZ.77.

  7. 8IZ.77. #FGPSFJNQMFNFOUJOH

  8. 8IZ.77. "GUFS #FGPSFJNQMFNFOUJOH

  9. • "WPJE.BTTJWF7JFX$POUSPMMFS • ,FFQJUTJNQMF 8IZ.77.

  10. 8IBUJT.77.

  11. • 'JSTUJOUSPEVDFEGPS8JOEPXT1SFTFOUBUJPO'PVOEBUJPO 81' BSDIJUFDUVSF • %FSJWBUJWFPG.7$BOETFQBSBUFTUIF.PEFMBOEUIF7JFXCZJOUSPEVDJOHBOBCTUSBDU MBZFSCFUXFFOUIFN • 8PSLTXFMMXJUI'VODUJPOBM3FBDUJWF1SPHSBNNJOH 8IBUJT.77.

    4063$& .JDSPTPGU %FWFMPQFS#MPH
  12. 8IBUJT.77. 7JFX 7JFX.PEFM .PEFM %BUB#JOEJOH 6TFS*OQVU 7JFX0VUQVU 4063$& J04ઃܭύλʔϯೖ໳

  13. 7JFX 7JFX.PEFM .PEFM %BUB#JOEJOH 6TFS*OQVU 7JFX0VUQVU 4063$& J04ઃܭύλʔϯೖ໳  3Y4XJGU

     3FBDUJWF4XJGU   8IBUJT.77.
  14. • 5BLFTUJNFTUPNBTUFS • 6TJOHPQFOTPVSDFTPGUXBSFDPNQPOFOUTDPNFTXJUISJTLT #VU

  15. • 5BLFTUJNFTUPNBTUFS • 6TJOHPQFOTPVSDFTPGUXBSFDPNQPOFOUTDPNFTXJUISJTLT #VU 4063$& ͳͥ͏ͪͷνʔϜ͸։ൃதͷΞϓϦΛ.77.͔Β.7$ʹ໭ͨ͠ͷ͔ !MPWFF ʠʢ.77.͔Β.7$ʹ͢Δ͜ͱͰʣѹ౗తʹগͳ͍3Y4XJGUͷ֤छ0QFSBUPSͳͲʹର͢Δशಘίετʡ

  16. • .77.XJUIPVUSFMZJOHPOUIJSEQBSUJFT 5IVT

  17. 4PIPXXPVMEJUMPPL

  18. 7JFX 7JFX.PEFM .PEFM %BUB#JOEJOH 6TFS*OQVU 7JFX0VUQVU 4063$& J04ઃܭύλʔϯೖ໳ 4PIPXXPVMEJUMPPL

  19. 7JFX 7JFX.PEFM 6TFS*OQVU 7JFX0VUQVU 4PIPXXPVMEJUMPPL

  20. 7JFX 7JFX.PEFM 6TFS*OQVU 7JFX0VUQVU 4PIPXXPVMEJUMPPL %PO’UGPSHFUUPDSFBUFBT $MBTT0OMZ1SPUPDPM

  21. 7JFX 7JFX.PEFM 6TFS*OQVU 7JFX0VUQVU 4PIPXXPVMEJUMPPL

  22. 7JFX 7JFX.PEFM 6TFS*OQVU 7JFX0VUQVU 4PIPXXPVMEJUMPPL

  23. 7JFX 4PIPXXPVMEJUMPPL

  24. 7JFX 4PIPXXPVMEJUMPPL

  25. • ,JDLTUBSUFS 5IF0(GPSVTJOH.77.JOJ04 • .FSQBZ .77.XJUIPVUPQFOTPVSDFGSBNFXPSLT ':*

  26. *NQMFNFOUJOH.77.JO 0UFNBDIJTXJGU  !SFESZFSZF

  27. *NQMFNFOUJOH.77.JO

  28. *NQMFNFOUJOH.77.JO

  29. • 9$PEFXJMMOPUDSFBUFBOZDPOUSPMMFST .77.JO

  30. .77.JO 4063$& HJUIVCDPNLJUBTVLF

  31. 5BLF"XBZ • .BLFZPVSMJGFTJNQMFCZLFFQJOHFWFSZUIJOHTJNQMF • %PO’UGPSHFUUPDSFBUFBT$MBTT0OMZ1SPUPDPMGPSPVUQVUTQSPUPDPM • .BTUFSJOH'31DBODPTUZPVUJNF • ,FFQBOBZFPOUIFCFTUBSDIJUFDUVSFTGPS4XJGU6*

  32. *OUFSFTUFEJO"SU 8FBSFMPPLJOHGPSJOUFSOTBOEJ04EFWFMPQFST

  33. 5IBOLT :VLJ:BNBNPUP ZVLJ!BNBUPSJVNDPN !SFESZFSZF !SFESZFSZF

  34. 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
  35. "QQFOEJY