Slide 1

Slide 1 text

๻Β͕ߟ͑Δ ࠷ڧͷΞʔΩςΫνϟʹ͍ͭͯ ෲΛׂͬͯ࿩ͦ͏ DroidKaigi.onCompletion { 2023@Online } @nyafunta9858

Slide 2

Slide 2 text

খྛ ܚ߂ Yoshihiro Kobayashi ● Mobile Engineer/Money Forward,Inc. ● @nyafunta9858

Slide 3

Slide 3 text

ΞʔΩςΫνϟͱ͸ʁ ● ιϑτ΢ΣΞશମͷઃܭΛந৅Խͨ͠΋ͷ ● ιϑτ΢ΣΞ։ൃશମͷઃܭํ਑΍ઃܭ֓೦ ໨తɾظ଴ ● อकੑ΍Մಡੑͷ޲্ ● ςελϏϦςΟ ● ։ൃͷεέʔϦϯά
 ͳͲ ΞʔΩςΫνϟɾઃܭ ● ఏڙ͢ΔՁ஋ͷ޲্ ● ܧଓతͳՁ஋ఏڙ

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

࠷ڧͷΞʔΩςΫνϟ... ● ఏڙ͢ΔՁ஋Λ࠷େԽ͠΍͍͢ ● ܧଓͯ͠Ձ஋Λఏڙ͠ଓ͚΍͍͢ ࠷ڧͷΞʔΩςΫνϟͱ͸

Slide 7

Slide 7 text

࠷ڧͷΞʔΩςΫνϟ... ● ఏڙ͢ΔՁ஋Λ࠷େԽ͠΍͍͢ ● ܧଓͯ͠Ձ஋Λఏڙ͠ଓ͚΍͍͢ ● ͲΜͳϓϩμΫτͰ΋ʁ ࠷ڧͷΞʔΩςΫνϟͱ͸

Slide 8

Slide 8 text

ΤϯδχΞɺιϑτ΢ΣΞΛऔΓר͘ม਺ ● ϓϩμΫτɾαʔϏεͷن໛ ● ॴଐࣄۀͷઓུɺࢪࡦͷܭը ● ॴଐ૊৫ͷઓུɺਓࡐҭ੒ ● ॴଐاۀͷํ਑ɺϛογϣϯ ͳͲͳͲ... Ͳ͜Ͱ΋௨༻͢Δͷ͕࠷ڧ͔ʁ

Slide 9

Slide 9 text

νʔϜΛऔΓר͘ମ੍΍؀ڥɺ૊৫ͷઓུɾํ਑ͳͲΛཧղ͠ ٕज़తࢹ఺͓ΑͼͦΕΒͷࢹ఺Λ΋ͬͯݕ౼͞Εͨ ܧଓతͳՁ஋ఏڙ͓ΑͼՁ஋ͷ࠷େԽʹߩݙ͢ΔΞʔΩςΫνϟ ͜͜Ͱͷ࠷ڧͷΞʔΩςΫνϟɾઃܭͱ͸

Slide 10

Slide 10 text

● ٕज़؍఺Ҏ֎ͷࢹ఺Λ࣋ͬͯΞʔΩςΫνϟɾઃܭΛߟ͑Δ੾ֻ͚ͬͱͳΔ ● ΑΓσΟʔϓʹΞʔΩςΫνϟɾઃܭͷٞ࿦Λͨ͘͠ͳΔ ຊ೔ͷ໨ඪ

Slide 11

Slide 11 text

Domain Layer

Slide 12

Slide 12 text

લͷηΫγϣϯͰઆ໌ͨ͠ΞʔΩςΫνϟʹؔ͢ΔҰൠత ͳݪଇΛߟྀ͢Δͱɺ֤ΞϓϦʹগͳ͘ͱ΋ 2 ͭͷϨΠϠ ͕ඞཁͰ͢ɻ ● ը໘ʹΞϓϦσʔλΛදࣔ͢Δ UI ϨΠϠɻ ● ΞϓϦͷϏδωε ϩδοΫΛؚΈɺΞϓϦσʔλΛ ެ։͢ΔσʔλϨΠϠɻ υϝΠϯϨΠϠͱ͍͏ϨΠϠΛ௥Ճ͢Δ͜ͱͰɺUI ϨΠϠ ͱσʔλϨΠϠͷؒͷ΍ΓऔΓΛ؆ૉԽͰ͖ɺ࠶ར༻Ͱ͖ ·͢ɻ 2૚ + 1૚ͷϨΠϠʔυΞʔΩςΫνϟ Ҿ༻ɿhttps://developer.android.com/topic/architecture

Slide 13

Slide 13 text

2૚ + 1૚ͷϨΠϠʔυΞʔΩςΫνϟ Phone/Tablet TV Wear Auto Domain Layer Data Layer Application class Service class

Slide 14

Slide 14 text

લͷηΫγϣϯͰઆ໌ͨ͠ΞʔΩςΫνϟʹؔ͢ΔҰൠత ͳݪଇΛߟྀ͢Δͱɺ֤ΞϓϦʹগͳ͘ͱ΋ 2 ͭͷϨΠϠ ͕ඞཁͰ͢ɻ ● ը໘ʹΞϓϦσʔλΛදࣔ͢Δ UI ϨΠϠɻ ● ΞϓϦͷϏδωε ϩδοΫΛؚΈɺΞϓϦσʔλΛ ެ։͢ΔσʔλϨΠϠɻ υϝΠϯϨΠϠͱ͍͏ϨΠϠΛ௥Ճ͢Δ͜ͱͰɺUI ϨΠϠ ͱσʔλϨΠϠͷؒͷ΍ΓऔΓΛ؆ૉԽͰ͖ɺ࠶ར༻Ͱ͖ ·͢ɻ 2૚ + 1૚ͷϨΠϠʔυΞʔΩςΫνϟ Ҿ༻ɿhttps://developer.android.com/topic/architecture

Slide 15

Slide 15 text

લͷηΫγϣϯͰઆ໌ͨ͠ΞʔΩςΫνϟʹؔ͢ΔҰൠత ͳݪଇΛߟྀ͢Δͱɺ֤ΞϓϦʹগͳ͘ͱ΋ 2 ͭͷϨΠϠ ͕ඞཁͰ͢ɻ ● ը໘ʹΞϓϦσʔλΛදࣔ͢Δ UI ϨΠϠɻ ● ΞϓϦͷϏδωε ϩδοΫΛؚΈɺΞϓϦσʔλΛ ެ։͢ΔσʔλϨΠϠɻ υϝΠϯϨΠϠͱ͍͏ϨΠϠΛ௥Ճ͢Δ͜ͱͰɺUI ϨΠϠ ͱσʔλϨΠϠͷؒͷ΍ΓऔΓΛ؆ૉԽͰ͖ɺ࠶ར༻Ͱ͖ ·͢ɻ 2૚ + 1૚ͷϨΠϠʔυΞʔΩςΫνϟ Ҿ༻ɿhttps://developer.android.com/topic/architecture RepositoryͷϝιουΛݺΜͰΔ͚ͩ

Slide 16

Slide 16 text

։ൃνʔϜͷঢ়گ ● ։ൃϝϯόʔͷεΩϧϨϕϧ෯ʢ։ൃܦݧͷ୹͍৽ਓʙϕςϥϯʣ ● ୹ظؒͷϔϧϓϝϯόʔࢀը ● ػೳ։ൃ͕ඇৗʹଟ͘ٻΊΒΕΔϑΣʔζ ૊৫ઓུ ● ͻͱͭͷνʔϜʹ௕͘ࡏ੶͢ΔΑΓ΋ผͷνʔϜ΁ҟಈ͠ɺεΩϧͷ෯Λ޿͛ͯ΄͍͠ ͦͷଞ ● ࣾ಺શମతʹAndroidΞϓϦͰΞʔΩςΫνϟ͕·ͩਁಁ͍ͯ͠ͳ͔ͬͨ ٕज़؍఺ͩͱ͍·͍͚ͪͩͬͨΕͲ...

Slide 17

Slide 17 text

ࢥ͍ͬͯͨҎ্ʹ޷ײ৮ ● ΞʔΩςΫνϟʹೃછΈ͕ͳ͍ϝϯόʔͷ໎͍͕ݮΒͤͨ ● εϜʔζͳΦϯϘʔσΟϯά ● εΩϧϨϕϧͷߴ͍ϝϯόʔͷϨϏϡʔίετ௿ݮ
 ͳͲ ٕज़؍఺ͩͱ͍·͍͚ͪͩͬͨΕͲ...

Slide 18

Slide 18 text

Ϋϩε ϓϥοτϑΥʔϜ

Slide 19

Slide 19 text

ϓϥοτϑΥʔϜͷબఆ or

Slide 20

Slide 20 text

● ίʔυڞ௨ԽʹΑΔػೳ௥Ճɾ࢓༷มߋͷίετ௿ݮ ● Ұ౓ʹiOS/Android྆ํͷΞϓϦ͕։ൃՄೳ ● ΤϯδχΞͷ֬อ
 ͳͲ ΫϩεϓϥοτϑΥʔϜʹظ଴͢Δ͜ͱ

Slide 21

Slide 21 text

● ֤ϓϥοτϑΥʔϜͰλϑͳ՝୊ ● ΫϩεϓϥοτϑΥʔϜ ~ ֤ϓϥοτϑΥʔϜؒͰςΫχΧϧͳεΩϧ ● ٽ͘ٽ֤͘ϓϥοτϑΥʔϜ͝ͱͷ։ൃʹ෼཭ ͳͲ ΫϩεϓϥοτϑΥʔϜͰΑ͘ݴΘΕΔ͜ͱ

Slide 22

Slide 22 text

● ֤ϓϥοτϑΥʔϜͰ೉୊Λ҆৺ͯ͠೚ͤΒΕΔΤϯδχΞ ● ΫϩεϓϥοτϑΥʔϜͰͷ։ൃεΩϧɾέʔύϏϦςΟઓུ ● ։ൃϝϯόʔ͚ͩͰͳ͘ɺ૊৫ɾࣄۀͰͷཧղਂߞɺڠಇ ͳͲ ΫϩεϓϥοτϑΥʔϜͰΑ͘ݴΘΕΔ͜ͱ

Slide 23

Slide 23 text

Ϋϩʔδϯά

Slide 24

Slide 24 text

● ΞʔΩςΫνϟɾઃܭ΁ٕज़໘Ҏ֎Ͱͷࢹ఺ɾ؍఺Λҙࣝͨ͠έʔεͷ঺հ ● ΤϯδχΞΛऔΓר͘؀ڥͦ͜ΞʔΩςΫνϟͷٞ࿦Λ໘ന͍ͯ͘͠Δ ● ΑΓσΟʔϓʹΞʔΩςΫνϟɾઃܭͷٞ࿦Λ͍ͨ͠ʢ͠·͠ΐ͏ʣ Ϋϩʔδϯά