Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

ࣗݾ঺հ.kt data class Ginyolith( val realName : String = “Fumiya Akagi", val nickName : String = "ぎーにょ", var belongingTo : String = "株式会社アイリッジ", var position : String = "Androidアプリ開発", val loves : List = mutableListOf( "写真", "アカペラ(音楽)", "インドカレー", "仮面ライダー"), val twitterId : String = "@ginyolith_tech" ) : Human()

Slide 3

Slide 3 text

ࠓ೔͓࿩͢Δࣄ • ֤OS1ਓͣͭ։ൃͷਏΈ͋Δ͋Δ • Clean Architecture + MVVM • ઃܭϕʔεͰͷOSؒڞಉ։ൃ • ΍ͬͯΈͨࣄ • ײ૝ • ·ͱΊ

Slide 4

Slide 4 text

֤OS1ਓͣͭ։ൃͷ ਏΈ͋Δ͋Δ

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

ѱຐతર͖ɾɾɾʂ

Slide 9

Slide 9 text

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ຖʹ࣮૷ํ๏͕όϥόϥ

Slide 10

Slide 10 text

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 υϝΠϯʢཁ݅ʣʹ ґଘ

Slide 11

Slide 11 text

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*౳ʣ΍ Ωϟογϡཁ݅ʹґଘ

Slide 12

Slide 12 text

ϓϨθϯςʔγϣϯ૚Ҏ֎͸ɺ ڠྗͯ͠։ൃग़དྷΔ…ʁ

Slide 13

Slide 13 text

ͱΓ͋͑ͣࢼͯ͠Έͨ

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

OSؒ૬ޓϨϏϡʔͷײ૝ • υϝΠϯ؍఺͔ΒͷιʔείʔυϨϏϡʔ • ಉ͡OSͰ΋ଞPJͷΤϯδχΞͩͱෆՄೳ • ϝιουɾม਺໊ ϩδοΫͷ໢ཏੑ • ςετίʔυͷ໢ཏੑ ߟྀύλʔϯࢦఠ • DataSourceͷϨϏϡʔ͕೉͍͠ • Httpૹ৴ͷॻ͖ํͳͲ͕OSຖͷϥΠϒϥϦʹґଘ

Slide 16

Slide 16 text

OSؒϖΞϓϩͷײ૝ • ࢓༷ɾཁ݅ʹؔͯ͠ͷٞ࿦͕ߦ͑Δ • ߟྀ࿙Εͷૣظൃ֮ɹͳͲ • ઃܭʹؔ͢Δ஌ࣝ΍ݴޠʹґଘ͠ͳ͍ςΫχοΫΛֶश͠߹͏ • Rxͷ࢖͍ํɹͳͲ • ऐ͘͠ͳ͍ɹ • ࡉ͔͍ݴޠ࢓༷ɺ໋໊ɺ֤OSτϦϏΞͰ୤ઢ͕ͪ͠ • ϖΞϓϩͷ໨తɾείʔϓͷೝࣝڞ༗ɻيಓमਖ਼ؤுΔ

Slide 17

Slide 17 text

ؾΛ͚ͭͨࣄ • ϨϏϡʔͷείʔϓΛݶఆ͢Δ • ۀ຿ϩδοΫ͸ͷਖ਼͠͞ • ࢓༷࿙Ε͸ͳ͍͔ɻ • ߟྀ͢΂͖ύλʔϯ͸ଞʹଘࡏ͠ͳ͍͔ • ͦͷϩδοΫ͸ͦͷ෦෼͕੹຿ͱͯ͠ਖ਼͍͔͠ɻ • ม਺ɺΫϥε໊ͷωʔϛϯάɻɹ։ൃऀؒͰڞ௨ݴޠΛ૿΍͢ࣄΛҙࣝ • ٞ࿦͔Β͸֎ͨ͠ࣄ • Kotlin/Swiftͷݴޠ࢓༷తʹਖ਼͍͔͠ɻ • OSݻ༗ͷ࿩ʢҐஔ৘ใͷड͚औΓํͳͲʣ

Slide 18

Slide 18 text

Ұ൪ྑ͔ͬͨࣄ

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

ΫϥεઃܭΛྲྀ༻Մೳ

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

·ͱΊ

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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