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

各OS1人ずつ開発の辛みあるあるは アーキテクチャで解決出来そう

Ebe2290af44f0f8b47a80a6af9b807ad?s=47 ginyolith
January 22, 2019

各OS1人ずつ開発の辛みあるあるは アーキテクチャで解決出来そう

あるあるLT〜スマホアプリ開発エンジニア〜 Vol.2
2019/01/22 @ginyolith_tech

Ebe2290af44f0f8b47a80a6af9b807ad?s=128

ginyolith

January 22, 2019
Tweet

Transcript

  1. ֤OS1ਓͣͭ։ൃͷਏΈ͋Δ͋Δ͸ ΞʔΩςΫνϟͰղܾग़དྷͦ͏ ͋Δ͋ΔLTʙεϚϗΞϓϦ։ൃΤϯδχΞʙ Vol.2 2019/01/22 @ginyolith_tech

  2. ࣗݾ঺հ.kt data class Ginyolith( val realName : String = “Fumiya

    Akagi", val nickName : String = "ぎーにょ", var belongingTo : String = "株式会社アイリッジ", var position : String = "Androidアプリ開発", val loves : List<String> = mutableListOf( "写真", "アカペラ(音楽)", "インドカレー", "仮面ライダー"), val twitterId : String = "@ginyolith_tech" ) : Human()
  3. ࠓ೔͓࿩͢Δࣄ • ֤OS1ਓͣͭ։ൃͷਏΈ͋Δ͋Δ • Clean Architecture + MVVM • ઃܭϕʔεͰͷOSؒڞಉ։ൃ

    • ΍ͬͯΈͨࣄ • ײ૝ • ·ͱΊ
  4. ֤OS1ਓͣͭ։ൃͷ ਏΈ͋Δ͋Δ

  5. ֤OS1ਓͣͭ։ൃͷਏΈ͋Δ͋Δ • ϨϏϡʔ͕ग़དྷͳ͍ • ཁ݅ɾ࢓༷ͷશ༰͕̍ਓͰ͸೺Ѳ͖͠Εͳ͍ • ޻਺͕଍Γͳ͍ • ऐ͍͠

  6. ۮવɺ྆OS͕ Clean Architecture + MVVM Ͱ։ൃ͍ͯͨ͠

  7. Clean Architecture + MVVM .PEFM #VTJOFTT
 -PHJD 6TF$BTF
 *NQMFNFOU Domain

    Layer Data Layer 3FNPUF %BUB4PVSDF -PDBM %BUB4PVSDF 3FQPTJUPSZ*NQMFNFOU 7JFX %BUB
 #JOEJOH Presentation Layer 6TF$BTF
 *OUFSGBDF 3FQPTJUPSZ*OUFSGBDF 7JFX.PEFM ʹ Dependency Direction
  8. ѱຐతર͖ɾɾɾʂ

  9. Clean Architecture + MVVM .PEFM #VTJOFTT
 -PHJD 6TF$BTF
 *NQMFNFOU Domain

    Layer Data Layer 3FNPUF %BUB4PVSDF -PDBM %BUB4PVSDF 3FQPTJUPSZ*NQMFNFOU 7JFX %BUB
 #JOEJOH Presentation Layer 6TF$BTF
 *OUFSGBDF 3FQPTJUPSZ*OUFSGBDF 7JFX.PEFM ʹ Dependency Direction 7JFX$POUSPMMFS  "DUJWJUZ'SBHNFOU  -JWF%BUBFUDʜ ֤04ຖʹ࣮૷ํ๏͕όϥόϥ
  10. Clean Architecture + MVVM .PEFM #VTJOFTT
 -PHJD 6TF$BTF
 *NQMFNFOU Domain

    Layer Data Layer 3FNPUF %BUB4PVSDF -PDBM %BUB4PVSDF 3FQPTJUPSZ*NQMFNFOU 7JFX %BUB
 #JOEJOH Presentation Layer 6TF$BTF
 *OUFSGBDF 3FQPTJUPSZ*OUFSGBDF 7JFX.PEFM ʹ Dependency Direction υϝΠϯʢཁ݅ʣʹ ґଘ
  11. Clean Architecture + MVVM .PEFM #VTJOFTT
 -PHJD 6TF$BTF
 *NQMFNFOU Domain

    Layer Data Layer 3FNPUF %BUB4PVSDF -PDBM %BUB4PVSDF 3FQPTJUPSZ*NQMFNFOU 7JFX %BUB
 #JOEJOH Presentation Layer 6TF$BTF
 *OUFSGBDF 3FQPTJUPSZ*OUFSGBDF 7JFX.PEFM ʹ Dependency Direction ֎෦αʔϏεʢ"1*౳ʣ΍ Ωϟογϡཁ݅ʹґଘ
  12. ϓϨθϯςʔγϣϯ૚Ҏ֎͸ɺ ڠྗͯ͠։ൃग़དྷΔ…ʁ

  13. ͱΓ͋͑ͣࢼͯ͠Έͨ

  14. Clean Architecture + MVVM .PEFM #VTJOFTT
 -PHJD 6TF$BTF
 *NQMFNFOU Domain

    Layer Data Layer 3FNPUF %BUB4PVSDF -PDBM %BUB4PVSDF 3FQPTJUPSZ*NQMFNFOU 7JFX %BUB
 #JOEJOH Presentation Layer 6TF$BTF
 *OUFSGBDF 3FQPTJUPSZ*OUFSGBDF 7JFX.PEFM ʹ Dependency Direction ϨϏϡʔ֤04 ࣮૷ɿ֤04 ϨϏϡʔ૬ޓ ࣮૷ɿϖΞϓϩ ϨϏϡʔ૬ޓ ࣮૷ɿ֤04 ϨϏϡʔ૬ޓ ࣮૷ɿϖΞϓϩ ϨϏϡʔ૬ޓ ࣮૷ɿ֤04
  15. OSؒ૬ޓϨϏϡʔͷײ૝ • υϝΠϯ؍఺͔ΒͷιʔείʔυϨϏϡʔ • ಉ͡OSͰ΋ଞPJͷΤϯδχΞͩͱෆՄೳ • ϝιουɾม਺໊ ϩδοΫͷ໢ཏੑ • ςετίʔυͷ໢ཏੑ

    ߟྀύλʔϯࢦఠ • DataSourceͷϨϏϡʔ͕೉͍͠ • Httpૹ৴ͷॻ͖ํͳͲ͕OSຖͷϥΠϒϥϦʹґଘ
  16. OSؒϖΞϓϩͷײ૝ • ࢓༷ɾཁ݅ʹؔͯ͠ͷٞ࿦͕ߦ͑Δ • ߟྀ࿙Εͷૣظൃ֮ɹͳͲ • ઃܭʹؔ͢Δ஌ࣝ΍ݴޠʹґଘ͠ͳ͍ςΫχοΫΛֶश͠߹͏ • Rxͷ࢖͍ํɹͳͲ •

    ऐ͘͠ͳ͍ɹ • ࡉ͔͍ݴޠ࢓༷ɺ໋໊ɺ֤OSτϦϏΞͰ୤ઢ͕ͪ͠ • ϖΞϓϩͷ໨తɾείʔϓͷೝࣝڞ༗ɻيಓमਖ਼ؤுΔ
  17. ؾΛ͚ͭͨࣄ • ϨϏϡʔͷείʔϓΛݶఆ͢Δ • ۀ຿ϩδοΫ͸ͷਖ਼͠͞ • ࢓༷࿙Ε͸ͳ͍͔ɻ • ߟྀ͢΂͖ύλʔϯ͸ଞʹଘࡏ͠ͳ͍͔ •

    ͦͷϩδοΫ͸ͦͷ෦෼͕੹຿ͱͯ͠ਖ਼͍͔͠ɻ • ม਺ɺΫϥε໊ͷωʔϛϯάɻɹ։ൃऀؒͰڞ௨ݴޠΛ૿΍͢ࣄΛҙࣝ • ٞ࿦͔Β͸֎ͨ͠ࣄ • Kotlin/Swiftͷݴޠ࢓༷తʹਖ਼͍͔͠ɻ • OSݻ༗ͷ࿩ʢҐஔ৘ใͷड͚औΓํͳͲʣ
  18. Ұ൪ྑ͔ͬͨࣄ

  19. data class Shop( // 店舗コード val code: String, // 店舗名

    val name: String)
  20. ΫϥεઃܭΛྲྀ༻Մೳ

  21. ΫϥεઃܭΛྲྀ༻Մೳ • υϝΠϯ૚ͷઃܭͷ޻਺͕൒෼ͰࡁΉ • ೝ஌ෛՙͷߴ͍ઃܭɾ໋໊ͳͲͷλεΫ͕ݮ Δʂ • ෆ҆ʹͳͬͨΒยํͷઃܭΛৗʹ֬ೝՄೳ

  22. ·ͱΊ

  23. ·ͱΊ • ྆OSͰࣅͨઃܭʹͯ͠OSؒͰڠྗͨ͠Βɺ ։ൃޮ཰͕UPͨ͠ • ߟྀ/࢓༷࿙ΕΛະવʹ๷͙͜ͱͷग़དྷΔ֬཰ ΋UP • ͳʹΑΓऐ͘͠ͳ͍ɾָ͍͠

  24. ࢀߟ • Android Architecture Blueprints • https://github.com/googlesamples/ android-architecture