Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Eight iOSを支えるアーキテクチャ

Eight iOSを支えるアーキテクチャ

Masashi

June 15, 2019
Tweet

More Decks by Masashi

Other Decks in Programming

Transcript

  1. 2018/04 2018/07 2018/12 2019/02 2019/04 2019/06 Sansanגࣜձࣾ ৽ଔೖࣾ / Eightࣄۀ෦഑ଐ

    ϝϯγϣϯػೳͷ࣮૷ Eight iOS v9.0.0 ϦϦʔε Sansanࣄۀ෦ҟಈ Sansan iOS v5.0.0 ϦϦʔε / Eightࣄۀ෦ҟಈ ೋஈ֊ೝূػೳͷ࣮૷
  2. 2018/04 2018/07 2018/12 2019/02 2019/04 2019/06 Sansanגࣜձࣾ ৽ଔೖࣾ / Eightࣄۀ෦഑ଐ

    ϝϯγϣϯػೳͷ࣮૷ Eight iOS v9.0.0 ϦϦʔε Sansanࣄۀ෦ҟಈ Sansan iOS v5.0.0 ϦϦʔε / Eightࣄۀ෦ҟಈ ೋஈ֊ೝূػೳͷ࣮૷
  3. 2018/04 2018/07 2018/12 2019/02 2019/04 2019/06 Sansanגࣜձࣾ ৽ଔೖࣾ / Eightࣄۀ෦഑ଐ

    ϝϯγϣϯػೳͷ࣮૷ Eight iOS v9.0.0 ϦϦʔε Sansanࣄۀ෦ҟಈ Sansan iOS v5.0.0 ϦϦʔε / Eightࣄۀ෦ҟಈ ೋஈ֊ೝূػೳͷ࣮૷
  4. 2018/04 2018/07 2018/12 2019/02 2019/04 2019/06 Sansanגࣜձࣾ ৽ଔೖࣾ / Eightࣄۀ෦഑ଐ

    ϝϯγϣϯػೳͷ࣮૷ Eight iOS v9.0.0 ϦϦʔε Sansanࣄۀ෦ҟಈ Sansan iOS v5.0.0 ϦϦʔε / Eightࣄۀ෦ҟಈ ೋஈ֊ೝূػೳͷ࣮૷
  5. 2018/04 2018/07 2018/12 2019/02 2019/04 2019/06 Sansanגࣜձࣾ ৽ଔೖࣾ / Eightࣄۀ෦഑ଐ

    ϝϯγϣϯػೳͷ࣮૷ Eight iOS v9.0.0 ϦϦʔε Sansanࣄۀ෦ҟಈ Sansan iOS v5.0.0 ϦϦʔε / Eightࣄۀ෦ҟಈ ೋஈ֊ೝূػೳͷ࣮૷
  6. 2018/04 2018/07 2018/12 2019/02 2019/04 2019/06 Sansanגࣜձࣾ ৽ଔೖࣾ / Eightࣄۀ෦഑ଐ

    ϝϯγϣϯػೳͷ࣮૷ Eight iOS v9.0.0 ϦϦʔε Sansanࣄۀ෦ҟಈ Sansan iOS v5.0.0 ϦϦʔε / Eightࣄۀ෦ҟಈ ೋஈ֊ೝূػೳͷ࣮૷
  7. MVVM ύλʔϯ 7JFX 7JFX$POUSPMMFS 7JFX.PEFM .PEFM 6*&WFOUT 3FRVFTUT %BUB %BUB#JEJOH

    "QQMF͕ఏڙ͢Δ6*,JUʹ͸6*7JFX$POUSPMMFSͱ͍͏7JFXΛ؅ཧ͢ΔΫϥε͕͋Γɺ
 ը໘ͷϥΠϑαΠΫϧͱը໘ભҠΛ୲͏
  8. 7JFX - " ͢΂͖͜ͱ - UI Λఆٛ͢Δ - ViewModel ʹ

    UI Events Λ఻͑Δ - ViewModel ͔Βड͚औͬͨσʔλΛ൓ө͢Δ - # ͢΂͖Ͱͳ͍͜ͱ - ϓϨθϯςʔγϣϯϩδοΫΛఆٛ͢Δ - ௨৴΍σʔλૢ࡞Λߦ͏
  9. 7JFX.PEFM - " ͢΂͖͜ͱ - UI Events Λ؂ࢹ͠ɺModel ʹॲཧΛґཔ͢Δ -

    Model ͔Βड͚औͬͨσʔλΛ View Ͱར༻͢Δͷʹ
 ࠷దͳܗʹՃ޻͢Δ - # ͢΂͖Ͱͳ͍͜ͱ - UI Λఆٛ͢Δ - ௨৴΍σʔλૢ࡞Λߦ͏
  10. .PEFM - " ͢΂͖͜ͱ - σʔλߏ଄Λఆٛ͢Δ - σʔλΛӬଓԽ͢Δ - σʔλΛૢ࡞͢Δ

    - # ͢΂͖Ͱͳ͍͜ͱ - UI Λఆٛ͢Δ - σʔλΛ View Ͱར༻͢Δͷʹ࠷దͳܗʹՃ޻͢Δ
  11. - Entity - σʔλߏ଄Λఆٛ͢Δߏ଄ମ - Repository - Entity ͷ CRUD

    ૢ࡞Λఏڙ͢Δ - SQLite ΍ UserDefaults ౳ͷ DataSource ΛӅṭ - Request - HTTP Request Λ౤͛ΔॲཧΛఆٛ͢Δ - UseCase - ϏδωεϩδοΫΛهड़͢Δ
  12. 7JFX 7JFX$POUSPMMFS 3RVFTUT %BUB 6*&WFOUT %BUB#JEJOH 7JFX.PEFM 6TF$BTF 3FRVFTU 3FQPTJUPSZ

    &OUJUZ 3FRVFTU 3FTQPOTF $36% %BUB 3FTVMU ,OPXTBCPVU ,OPXTBCPVU
  13. 7JFX 7JFX$POUSPMMFS 3RVFTUT %BUB 6*&WFOUT %BUB#JEJOH 7JFX.PEFM 6TF$BTF 3FRVFTU 3FQPTJUPSZ

    &OUJUZ 3FRVFTU 3FTQPOTF $36% %BUB 3FTVMU ,OPXTBCPVU ,OPXTBCPVU
  14. 7JFX 7JFX$POUSPMMFS 3RVFTUT %BUB 6*&WFOUT %BUB#JEJOH 7JFX.PEFM 6TF$BTF 3FRVFTU 3FQPTJUPSZ

    &OUJUZ 3FRVFTU 3FTQPOTF $36% %BUB 3FTVMU ,OPXTBCPVU ,OPXTBCPVU
  15. 7JFX 7JFX$POUSPMMFS 3RVFTUT %BUB 6*&WFOUT %BUB#JEJOH 7JFX.PEFM 6TF$BTF 3FRVFTU 3FQPTJUPSZ

    &OUJUZ 3FRVFTU 3FTQPOTF $36% %BUB 3FTVMU ,OPXTBCPVU ,OPXTBCPVU
  16. 7JFX 7JFX$POUSPMMFS 3RVFTUT %BUB 6*&WFOUT %BUB#JEJOH 7JFX.PEFM 6TF$BTF 3FRVFTU 3FQPTJUPSZ

    &OUJUZ 3FRVFTU 3FTQPOTF $36% %BUB 3FTVMU ,OPXTBCPVU ,OPXTBCPVU
  17. UseCase - ґଘؔ܎ٯసͷݪଇΛద༻ - มԽ͠΍͍͢۩৅Ͱ͸ͳ͘ɺ҆ఆͨ͠ந৅ʹґଘ - Dependency Injection Λద༻ -

    Ϋϥεͷ֎͔Βґଘ͍ͯ͠Δ෺Λ஫ೖ - ந৅ʹґଘ͠ɺΫϥεͷ֎͔Βඞཁͳ΋ͷΛ஫ೖ͢Δ͜ͱͰςελϒϧʹ
  18. 7JFX 7JFX$POUSPMMFS 3RVFTUT %BUB 6*&WFOUT %BUB#JEJOH 7JFX.PEFM 6TF$BTF 3FRVFTU 3FQPTJUPSZ

    &OUJUZ 3FRVFTU 3FTQPOTF $36% %BUB 3FTVMU ,OPXTBCPVU ,OPXTBCPVU
  19. 7JFX 7JFX$POUSPMMFS 3RVFTUT %BUB 6*&WFOUT %BUB#JEJOH 7JFX.PEFM 6TF$BTF 3FRVFTU 3FQPTJUPSZ

    &OUJUZ 3FRVFTU 3FTQPOTF $36% %BUB 3FTVMU ,OPXTBCPVU ,OPXTBCPVU
  20. 7JFX 7JFX$POUSPMMFS 3RVFTUT %BUB 6*&WFOUT %BUB#JEJOH 7JFX.PEFM 6TF$BTF 3FRVFTU 3FQPTJUPSZ

    &OUJUZ 3FRVFTU 3FTQPOTF $36% %BUB 3FTVMU ,OPXTBCPVU ,OPXTBCPVU