Slide 1

Slide 1 text

ҠΓΏ͘σϑΝΫτελϯμʔυ ʹνʔϜͱͯ͠Ͳ͏௥ै͢Δ͔ Taikai Masuda / tk-masuda Oisix ra daichi inc. Android Developer 1

Slide 2

Slide 2 text

ຊηογϣϯͷΰʔϧ σϑΝΫτελϯμʔυͱ൑அ͢Δج४ΛνʔϜͰ࣋ͯΔΑ͏ʹͳΔ ໨తʹର͢ΔҰͭͷखஈͱͯ͠σϑΝΫτελϯμʔυʹ௥ै͢Δબ୒Λߦ͑ ΔΑ͏ʹͳΔ Ͳ͜·Ͱ௥ै͢Δ͔ͷબ୒ ௥ै͠ͳ͍બ୒ 2

Slide 3

Slide 3 text

Agenda 3 01 σϑΝΫτελϯμʔυͱ͸ 02 ͲͷΑ͏ʹ൑அ͢Δ͔ 03 ௥ै͍ͯͨ͘͠Ίʹ 04 ࣮ମݧɺtips

Slide 4

Slide 4 text

Agenda 4 01 σϑΝΫτελϯμʔυͱ͸ 02 ͲͷΑ͏ʹ൑அ͢Δ͔ 03 ௥ै͍ͯͨ͘͠Ίʹ 04 ࣮ମݧɺtips

Slide 5

Slide 5 text

“ެతͳඪ४ظ͔ؒΒͷೝূͰ͸ͳ͘ɺࢢ৔ ʹ͓͚Δاۀؒͷڝ૪ʹΑͬͯɺۀքͷඪ४ ͱͯ͠ೝΊΒΕΔΑ͏ʹͳͬͨن֨ͷ͜ͱ” 5 σϑΝΫτελϯμʔυ ΢ΟΩϖσΟΞʢWikipediaʣ:ϑϦʔඦՊࣄయ

Slide 6

Slide 6 text

֤༻ޠͷΠϝʔδ 6 ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ

Slide 7

Slide 7 text

֤༻ޠͷΠϝʔδ Ϟμϯ 7 ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ

Slide 8

Slide 8 text

֤༻ޠͷΠϝʔδ Ϟμϯ ࠷৽ٕज़͕ͩ࢖༻࣮੷͕গͳ͍ 8 ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ

Slide 9

Slide 9 text

֤༻ޠͷΠϝʔδ Ϟμϯ ࠷৽ٕज़͕ͩ࢖༻࣮੷͕গͳ͍ Experimentalͳ΋ͷͰ͸ͳ͍ 9 ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ

Slide 10

Slide 10 text

֤༻ޠͷΠϝʔδ Ϟμϯ ࠷৽ٕज़͕ͩ࢖༻࣮੷͕গͳ͍ Experimentalͳ΋ͷͰ͸ͳ͍ Ver 1.xҎ্ͰϦϦʔε͞Ε͍ͯΔΑ͏ͳ΋ͷ 10 ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ

Slide 11

Slide 11 text

֤༻ޠͷΠϝʔδ Ϟμϯ ࠷৽ٕज़͕ͩ࢖༻࣮੷͕গͳ͍ Experimentalͳ΋ͷͰ͸ͳ͍ Ver 1.xҎ্ͰϦϦʔε͞Ε͍ͯΔΑ͏ͳ΋ͷ →ϓϩμΫτ࠾༻͕ݟૹΒΕΔ܏޲ 11 ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ

Slide 12

Slide 12 text

֤༻ޠͷΠϝʔδ ϨΨγʔ 12 ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ

Slide 13

Slide 13 text

֤༻ޠͷΠϝʔδ ϨΨγʔ ୅ସٕज़͕͋Δ 13 ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ

Slide 14

Slide 14 text

֤༻ޠͷΠϝʔδ ϨΨγʔ ୅ସٕज़͕͋Δ ࢖ΘΕͳ͘ͳٕͬͨज़ 14 ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ

Slide 15

Slide 15 text

֤༻ޠͷΠϝʔδ ϨΨγʔ ୅ସٕज़͕͋Δ ࢖ΘΕͳ͘ͳٕͬͨज़ ߋ৽͞Εͳ͘ͳٕͬͨज़ 15 ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ

Slide 16

Slide 16 text

֤༻ޠͷΠϝʔδ ϨΨγʔ ୅ସٕज़͕͋Δ ࢖ΘΕͳ͘ͳٕͬͨज़ ߋ৽͞Εͳ͘ͳٕͬͨज़ →ϓϩμΫτ࠾༻͕ݟૹΒΕΔ܏޲ 16 ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ

Slide 17

Slide 17 text

֤༻ޠͷΠϝʔδ σϑΝΫτελϯμʔυ 17 ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ

Slide 18

Slide 18 text

֤༻ޠͷΠϝʔδ σϑΝΫτελϯμʔυ ޿͘࢖ΘΕ͍ͯΔ΋ͷ 18 ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ

Slide 19

Slide 19 text

֤༻ޠͷΠϝʔδ σϑΝΫτελϯμʔυ ޿͘࢖ΘΕ͍ͯΔ΋ͷ ࢖͏ʹ͋ͨͬͯݱࡏ࣌఺Ͱ՝୊ײ͕࠷΋গͳ͍΋ͷ 19 ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ

Slide 20

Slide 20 text

֤༻ޠͷΠϝʔδ σϑΝΫτελϯμʔυ ޿͘࢖ΘΕ͍ͯΔ΋ͷ ࢖͏ʹ͋ͨͬͯݱࡏ࣌఺Ͱ՝୊ײ͕࠷΋গͳ͍΋ͷ ޷ح৺͔Β͘Δ࢖ͬͯΈ͍ͨɺͰ͸ͳ͍ 20 ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ

Slide 21

Slide 21 text

֤༻ޠͷΠϝʔδ σϑΝΫτελϯμʔυ ޿͘࢖ΘΕ͍ͯΔ΋ͷ ࢖͏ʹ͋ͨͬͯݱࡏ࣌఺Ͱ՝୊ײ͕࠷΋গͳ͍΋ͷ ޷ح৺͔Β͘Δ࢖ͬͯΈ͍ͨɺͰ͸ͳ͍ →ϓϩμΫτ࠾༻͞ΕΔ܏޲ 21 ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ

Slide 22

Slide 22 text

22 Ϟμϯ ϨΨγʔ ̓ ֤༻ޠͷΠϝʔδ ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ

Slide 23

Slide 23 text

23 Ϟμϯ ϨΨγʔ σϑΝΫτ ελϯμʔυ ̓ ֤༻ޠͷΠϝʔδ ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ

Slide 24

Slide 24 text

24 Ϟμϯ ϨΨγʔ σϑΝΫτ ελϯμʔυ ̓ ֤༻ޠͷΠϝʔδ ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ

Slide 25

Slide 25 text

25 Ϟμϯ ϨΨγʔ σϑΝΫτ ελϯμʔυ ̓ ֤༻ޠͷΠϝʔδ ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ

Slide 26

Slide 26 text

“ެతͳඪ४ظ͔ؒΒͷೝূͰ͸ͳ͘ɺࢢ৔ ʹ͓͚Δاۀؒͷڝ૪ʹΑͬͯɺۀքͷඪ४ ͱͯ͠ೝΊΒΕΔΑ͏ʹͳͬͨن֨ͷ͜ͱ” 26 σϑΝΫτελϯμʔυ ΢ΟΩϖσΟΞʢWikipediaʣ:ϑϦʔඦՊࣄయ

Slide 27

Slide 27 text

“ެతͳඪ४ظ͔ؒΒͷೝূͰ͸ͳ͘ɺࢢ৔ ʹ͓͚Δاۀؒͷڝ૪ʹΑͬͯɺۀքͷඪ४ ͱͯ͠ೝΊΒΕΔΑ͏ʹͳͬͨن֨ͷ͜ͱ” σϑΝΫτελϯμʔυ ΢ΟΩϖσΟΞʢWikipediaʣ:ϑϦʔඦՊࣄయ 27

Slide 28

Slide 28 text

Android։ൃͷඪ४ 28

Slide 29

Slide 29 text

29 ݴޠ Java Kotlin https://kotlinlang.org/

Slide 30

Slide 30 text

30 πʔϧ AndroidStudio Gradle

Slide 31

Slide 31 text

31 ઃܭ MVVMɺMVPɺFluxɺRedux Repositoryύλʔϯ https://developer.android.com/topic/ architecture/ui-layer https://developer.android.com/topic/ architecture/data-layer

Slide 32

Slide 32 text

32 ։ൃ؀ڥ CI/CD Linter Formatter

Slide 33

Slide 33 text

33 ςετ JUnit Truth Espresso Robolectric Mockito

Slide 34

Slide 34 text

34 ओཁϥΠϒϥϦ ௨৴ Retrofit UI JetpackComposeɺCoil DI daggerɺKoin https://developer.android.com/jetpack/compose? hl=ja

Slide 35

Slide 35 text

Android։ൃͷඪ४ ݴޠ πʔϧ ઃܭ ։ൃ؀ڥ ςετ ओཁϥΠϒϥϦ 35

Slide 36

Slide 36 text

Agenda 36 01 σϑΝΫτελϯμʔυͱ͸ 02 ͲͷΑ͏ʹ൑அ͢Δ͔ 03 ௥ै͍ͯͨ͘͠Ίʹ 04 ࣮ମݧɺtips

Slide 37

Slide 37 text

σϑΝΫτελϯμʔυͷ൑அج४ 37 Ϟμϯ ϨΨγʔ σϑΝΫτ ελϯμʔυ ̓

Slide 38

Slide 38 text

σϑΝΫτελϯμʔυͷ൑அج४ 38 ϞμϯˠσϑΝΫτελϯμʔυ Ϟμϯ σϑΝΫτ ελϯμʔυ ̓

Slide 39

Slide 39 text

σϑΝΫτελϯμʔυͷ൑அج४ 39 σϑΝΫτελϯμʔυˠϨΨγʔ ϨΨγʔ σϑΝΫτ ελϯμʔυ ̓

Slide 40

Slide 40 text

൑அ͢Δࡐྉ 40

Slide 41

Slide 41 text

41 χϡʔειʔε Android Developers Blog Japan Android Developers Blog

Slide 42

Slide 42 text

42 χϡʔειʔε Android Developers Blog Japan Android Developers Blog Android Developers - Medium

Slide 43

Slide 43 text

43 χϡʔειʔε Android Developers Blog Japan Android Developers Blog Android Developers - Medium PRO ANDROID DEV

Slide 44

Slide 44 text

44 χϡʔειʔε Android Developers Blog Japan Android Developers Blog Android Developers - Medium PRO ANDROID DEV Android Dagashi

Slide 45

Slide 45 text

45 ͦͷଞ ษڧձ ΧϯϑΝϨϯε

Slide 46

Slide 46 text

46 ͦͷଞ ษڧձ ΧϯϑΝϨϯε ٕज़ॻ

Slide 47

Slide 47 text

47 ͦͷଞ ษڧձ ΧϯϑΝϨϯε ٕज़ॻ པΕΔਓΛݟ͚ͭΔ SNS ٕज़ސ໰

Slide 48

Slide 48 text

൑அج४ 48

Slide 49

Slide 49 text

൑அج४ ໌֬ͳఆྔͰ͸൑அͰ͖ͳ͍ 49

Slide 50

Slide 50 text

൑அج४ ໌֬ͳఆྔͰ͸൑அͰ͖ͳ͍ ʮ࢖ͬͯΈͨʯ͸·ͩϞμϯ 50

Slide 51

Slide 51 text

൑அج४ ໌֬ͳఆྔͰ͸൑அͰ͖ͳ͍ ʮ࢖ͬͯΈͨʯ͸·ͩϞμϯ Ή͠Ζهࣄ͕ग़ͳ͘ͳ͖ͬͯͨ͋ͨΓ ʮ͑ʁ౰ͨΓલͩΑͶʁʯ 51

Slide 52

Slide 52 text

൑அج४ ໌֬ͳఆྔͰ͸൑அͰ͖ͳ͍ ʮ࢖ͬͯΈͨʯ͸·ͩϞμϯ Ή͠Ζهࣄ͕ग़ͳ͘ͳ͖ͬͯͨ͋ͨΓ ʮ͑ʁ౰ͨΓલͩΑͶʁʯ Ԡื৚݅΍࠾༻໘઀Ͱʮxxx͸࢖͑·͔͢ʁʯͱฉ͔ΕΔΑ͏ͳ΋ͷ 52

Slide 53

Slide 53 text

ۃ࿦ɺओ؍ 53

Slide 54

Slide 54 text

൑அج४ 54 σϑΝΫτελϯμʔυͱࢥΘΕΔྫ

Slide 55

Slide 55 text

൑அج४ JetpackCompose 55 σϑΝΫτελϯμʔυͱࢥΘΕΔྫ https://developer.android.com/jetpack/compose?hl=ja

Slide 56

Slide 56 text

൑அج४ Modularization 56 σϑΝΫτελϯμʔυͱࢥΘΕΔྫ https://developer.android.com/topic/modularization

Slide 57

Slide 57 text

൑அج४ 57 ϞμϯͱࢥΘΕΔྫ

Slide 58

Slide 58 text

൑அج४ StableͰ͸ͳ͍ϥΠϒϥϦ Alpha Beta RC 58 ϞμϯͱࢥΘΕΔྫ

Slide 59

Slide 59 text

൑அج४ 59 ఆྔͰ൑அΛޡΔྫ

Slide 60

Slide 60 text

൑அج४ Agera 60 ఆྔͰ൑அΛޡΔྫ

Slide 61

Slide 61 text

൑அج४ Agera Star਺ଟΊ ౰࣌ϞμϯͰʮ࢖ͬͯΈͨʯهࣄ͕େྔ 61 ఆྔͰ൑அΛޡΔྫ

Slide 62

Slide 62 text

൑அج४ Agera Star਺ଟΊ ౰࣌ϞμϯͰʮ࢖ͬͯΈͨʯهࣄ͕େྔ ϞμϯˠϨΨγʔ ϞμϯˠσϑΝΫτελϯμʔυʹͳΒͳ͔ͬͨྫ 62 ఆྔͰ൑அΛޡΔྫ

Slide 63

Slide 63 text

Agenda 63 01 σϑΝΫτελϯμʔυͱ͸ 02 ͲͷΑ͏ʹ൑அ͢Δ͔ 03 ௥ै͍ͯͨ͘͠Ίʹ 04 ࣮ମݧɺtips

Slide 64

Slide 64 text

ඞཁੑΛߟ͑Δ 64 ௥ै͠ͳ͍͜ͱʹΑΔෆརӹ

Slide 65

Slide 65 text

ඞཁੑΛߟ͑Δ deprecatedʢඇਪ঑ʣ 65 ௥ै͠ͳ͍͜ͱʹΑΔෆརӹ

Slide 66

Slide 66 text

ඞཁੑΛߟ͑Δ deprecatedʢඇਪ঑ʣ ະདྷతʹ࢖͑ͳ͘ͳΔ 66 ௥ै͠ͳ͍͜ͱʹΑΔෆརӹ

Slide 67

Slide 67 text

ඞཁੑΛߟ͑Δ deprecatedʢඇਪ঑ʣ ະདྷతʹ࢖͑ͳ͘ͳΔ ΞοϓσʔτͰ͖ͳ͘ͳΔ 67 ௥ै͠ͳ͍͜ͱʹΑΔෆརӹ

Slide 68

Slide 68 text

ඞཁੑΛߟ͑Δ ՝୊ͷ์ஔ 68 ௥ै͠ͳ͍͜ͱʹΑΔෆརӹ

Slide 69

Slide 69 text

ඞཁੑΛߟ͑Δ ՝୊ͷ์ஔ ৽͍ٕ͠ज़͸ࠓ·Ͱೝ஌͞Ε͍ͯͳ͔ͬͨ՝୊Λղܾ͢Δ΋ͷͰ͋Δ͜ͱ͕ ଟ͍ 69 ௥ै͠ͳ͍͜ͱʹΑΔෆརӹ

Slide 70

Slide 70 text

ඞཁੑΛߟ͑Δ ՝୊ͷ์ஔ ৽͍ٕ͠ज़͸ࠓ·Ͱೝ஌͞Ε͍ͯͳ͔ͬͨ՝୊Λղܾ͢Δ΋ͷͰ͋Δ͜ͱ͕ ଟ͍ ʮ௥ै͠ͳ͍ʯͱ͍͏͜ͱ͸ɺੈؒҰൠͰ՝୊ͱ͞Ε͍ͯΔ΋ͷΛ์ஔ͢Δ ͜ͱʹ΄͔ͳΒͳ͍ 70 ௥ै͠ͳ͍͜ͱʹΑΔෆརӹ

Slide 71

Slide 71 text

ඞཁੑΛߟ͑Δ ະདྷɺطଘνʔϜϝϯόʔͷϞνϕʔγϣϯ 71 ௥ै͠ͳ͍͜ͱʹΑΔෆརӹ

Slide 72

Slide 72 text

ඞཁੑΛߟ͑Δ ະདྷɺطଘνʔϜϝϯόʔͷϞνϕʔγϣϯ ࠾༻Ͱ͖ͳ͍ 72 ௥ै͠ͳ͍͜ͱʹΑΔෆརӹ

Slide 73

Slide 73 text

ඞཁੑΛߟ͑Δ ະདྷɺطଘνʔϜϝϯόʔͷϞνϕʔγϣϯ ࠾༻Ͱ͖ͳ͍ طଘϝϯόʔͷ཭୤ͷՄೳੑ 73 ௥ै͠ͳ͍͜ͱʹΑΔෆརӹ

Slide 74

Slide 74 text

ඞཁੑΛߟ͑Δ ະདྷɺطଘνʔϜϝϯόʔͷϞνϕʔγϣϯ ࠾༻Ͱ͖ͳ͍ طଘϝϯόʔͷ཭୤ͷՄೳੑ ϝϯόʔ཭୤ˍ࠾༻Ͱ͖ͳ͍ͱɺɺɺ ࣄۀܧଓੑʹѱӨڹ 74 ௥ै͠ͳ͍͜ͱʹΑΔෆརӹ

Slide 75

Slide 75 text

ඞཁੑΛߟ͑Δ 75 ௥ै͢Δ͜ͱʹΑΔརӹ

Slide 76

Slide 76 text

ඞཁੑΛߟ͑Δ ਪ঑͞Ε͍ͯΔ࣮૷Λ࠾༻Ͱ͖Δ 76 ௥ै͢Δ͜ͱʹΑΔརӹ

Slide 77

Slide 77 text

ඞཁੑΛߟ͑Δ ਪ঑͞Ε͍ͯΔ࣮૷Λ࠾༻Ͱ͖Δ ೝ஌Ͱ͖Δ՝୊͸ղܾ͞Ε͍ͯ͘ 77 ௥ै͢Δ͜ͱʹΑΔརӹ

Slide 78

Slide 78 text

ඞཁੑΛߟ͑Δ ਪ঑͞Ε͍ͯΔ࣮૷Λ࠾༻Ͱ͖Δ ೝ஌Ͱ͖Δ՝୊͸ղܾ͞Ε͍ͯ͘ ݱࡏ·ͨ͸ະདྷͷϝϯόʔͷϞνϕʔγϣϯ͸อͨΕΔ 78 ௥ै͢Δ͜ͱʹΑΔརӹ

Slide 79

Slide 79 text

௥ै͠Α͏ 79

Slide 80

Slide 80 text

௥ै͠Α͏ 80

Slide 81

Slide 81 text

શͯ௥ै͢΂͖ͳͷ͔ʁ 81

Slide 82

Slide 82 text

શͯ௥ै͢΂͖ͳͷ͔ʁ શͯΛ௥ै͢Δඞཁ͸ͳ͍ 82

Slide 83

Slide 83 text

શͯ௥ै͢΂͖ͳͷ͔ʁ શͯΛ௥ै͢Δඞཁ͸ͳ͍ ϓϩμΫτʹΑΔ 83

Slide 84

Slide 84 text

શͯ௥ै͢΂͖ͳͷ͔ʁ શͯΛ௥ै͢Δඞཁ͸ͳ͍ ϓϩμΫτʹΑΔ ՝୊͕֘౰͠ͳ͍ͱ͖ 84

Slide 85

Slide 85 text

શͯ௥ै͢΂͖ͳͷ͔ʁ શͯΛ௥ै͢Δඞཁ͸ͳ͍ ϓϩμΫτʹΑΔ ՝୊͕֘౰͠ͳ͍ͱ͖ ՝୊͕ແࢹͰ͖Δ΄Ͳখ͍࣌͞ 85

Slide 86

Slide 86 text

શͯ௥ै͢΂͖ͳͷ͔ʁ શͯΛ௥ै͢Δඞཁ͸ͳ͍ ϓϩμΫτʹΑΔ ՝୊͕֘౰͠ͳ͍ͱ͖ ՝୊͕ແࢹͰ͖Δ΄Ͳখ͍࣌͞ ༏ઌॱҐ͕௿͍ͱ͖ 86

Slide 87

Slide 87 text

શͯ௥ै͢΂͖ͳͷ͔ʁ 87 ௥ै͠ͳ͍ྫ

Slide 88

Slide 88 text

શͯ௥ै͢΂͖ͳͷ͔ʁ Modularization 88 ௥ै͠ͳ͍ྫ

Slide 89

Slide 89 text

શͯ௥ै͢΂͖ͳͷ͔ʁ Modularization ػೳ͕ͻͱ͔ͭ͠ͳ͍Α͏ͳͱͯ΋γϯϓϧͳΞϓϦ Layered Architectureͷ࿩Ͱ͸ͳ͘ɺίϯςΩετ෼ׂͷ࿩ 89 ௥ै͠ͳ͍ྫ

Slide 90

Slide 90 text

શͯ௥ै͢΂͖ͳͷ͔ʁ Room 90 ௥ै͠ͳ͍ྫ

Slide 91

Slide 91 text

શͯ௥ै͢΂͖ͳͷ͔ʁ Room ͦ΋ͦ΋ϩʔΧϧDB͕ඞཁ͔ 91 ௥ै͠ͳ͍ྫ

Slide 92

Slide 92 text

શͯ௥ै͢΂͖ͳͷ͔ʁ Room ͦ΋ͦ΋ϩʔΧϧDB͕ඞཁ͔ ϑΝΠϧอଘ SharedPreferences 92 ௥ै͠ͳ͍ྫ

Slide 93

Slide 93 text

શͯ௥ै͢΂͖ͳͷ͔ʁ Room ͦ΋ͦ΋ϩʔΧϧDB͕ඞཁ͔ ϑΝΠϧอଘ SharedPreferences ௥ैͨ݁͠Ռɺmigration࣌ʹ࡞ۀྔ૿େͷݒ೦ 93 ௥ै͠ͳ͍ྫ

Slide 94

Slide 94 text

ͲΕʹ௥ै͢Δ͔ 94

Slide 95

Slide 95 text

ͲΕʹ௥ै͢Δ͔ ՝୊ղܾͷखஈͱͯ͠࠾༻͢Δ 95

Slide 96

Slide 96 text

ͲΕʹ௥ै͢Δ͔ ՝୊ղܾͷखஈͱͯ͠࠾༻͢Δ ՝୊ೝࣝͷҰக͕ෆՄܽ 96

Slide 97

Slide 97 text

ͲΕʹ௥ै͢Δ͔ ՝୊ղܾͷखஈͱͯ͠࠾༻͢Δ ՝୊ೝࣝͷҰக͕ෆՄܽ νʔϜ಺Ͱͷ߹ҙ 97

Slide 98

Slide 98 text

ͲΕʹ௥ै͢Δ͔ ՝୊ղܾͷखஈͱͯ͠࠾༻͢Δ ՝୊ೝࣝͷҰக͕ෆՄܽ νʔϜ಺Ͱͷ߹ҙ ΧʔΰɾΧϧτɾϓϩάϥϛϯά͸΍ΊΑ͏ 98

Slide 99

Slide 99 text

ͲΕʹ௥ै͢Δ͔ 99 ΧʔΰɾΧϧτɾϓϩάϥϛϯάʁ

Slide 100

Slide 100 text

ͲΕʹ௥ै͢Δ͔ ࣮ࡍʹඞཁͰ͸ͳ͍΋ͷΛϓϩάϥϛϯά͢Δ͜ͱ 100 ΧʔΰɾΧϧτɾϓϩάϥϛϯάʁ

Slide 101

Slide 101 text

ͲΕʹ௥ै͢Δ͔ ࣮ࡍʹඞཁͰ͸ͳ͍΋ͷΛϓϩάϥϛϯά͢Δ͜ͱ ෺ࣄΛཧղ͍ͯ͠ͳ͍৔߹ʹى͜Γ͕ͪ ໨త खஈ 101 ΧʔΰɾΧϧτɾϓϩάϥϛϯάʁ

Slide 102

Slide 102 text

ͲΕʹ௥ै͢Δ͔ ࣮ࡍʹ͸ඞཁͳ΋ͷͰ͸ͳ͍΋ͷΛϓϩάϥϛϯά͢Δ͜ͱ ෺ࣄΛཧղ͍ͯ͠ͳ͍৔߹ʹى͜Γ͕ͪ ໨త खஈ ΍ΊΑ͏ 102 ΧʔΰɾΧϧτɾϓϩάϥϛϯάʁ

Slide 103

Slide 103 text

௥ै͢Δྫ 103

Slide 104

Slide 104 text

ͲΕʹ௥ै͢Δ͔ 104 Architecture

Slide 105

Slide 105 text

ͲΕʹ௥ै͢Δ͔ ઃܭͱݴ͑ΔΑ͏ͳ΋ͷ͕ͳ͘ɺUIૢ࡞΍ϩδοΫ͕ͻͱ·ͱ·Γʹࠞࡏ 105 Architecture

Slide 106

Slide 106 text

ͲΕʹ௥ै͢Δ͔ ઃܭͱݴ͑ΔΑ͏ͳ΋ͷ͕ͳ͘ɺUIૢ࡞΍ϩδοΫ͕ͻͱ·ͱ·Γʹࠞࡏ SRPݪଇɺDRYݪଇͷҧ൓ มߋ࣌ͷӨڹൣғ͕޿͍ 106 Architecture

Slide 107

Slide 107 text

ͲΕʹ௥ै͢Δ͔ ઃܭͱݴ͑ΔΑ͏ͳ΋ͷ͕ͳ͘ɺUIૢ࡞΍ϩδοΫ͕ͻͱ·ͱ·Γʹࠞࡏ SRPݪଇɺDRYݪଇͷҧ൓ มߋ࣌ͷӨڹൣғ͕޿͍ ࠓޙ΋֘౰ϑΝΠϧͷมߋՄೳੑ͕ߴ͍ 107 Architecture

Slide 108

Slide 108 text

ͲΕʹ௥ै͢Δ͔ 108 Modularization

Slide 109

Slide 109 text

ͲΕʹ௥ै͢Δ͔ ಉҰϞδϡʔϧ಺Ͱෳ਺ίϯςΩετ͕ࠞࡏ͢Δ 109 Modularization

Slide 110

Slide 110 text

ͲΕʹ௥ै͢Δ͔ ಉҰϞδϡʔϧ಺Ͱෳ਺ίϯςΩετ͕ࠞࡏ͢Δ SRPݪଇҧ൓ 110 Modularization

Slide 111

Slide 111 text

ͲΕʹ௥ै͢Δ͔ ಉҰϞδϡʔϧ಺Ͱෳ਺ίϯςΩετ͕ࠞࡏ͢Δ SRPݪଇҧ൓ υϝΠϯ෼ׂ 111 Modularization

Slide 112

Slide 112 text

ͲΕʹ௥ै͢Δ͔ ಉҰϞδϡʔϧ಺Ͱෳ਺ίϯςΩετ͕ࠞࡏ͢Δ SRPݪଇҧ൓ υϝΠϯ෼ׂ ϨΠϠʔ෼ׂ 112 Modularization

Slide 113

Slide 113 text

ͲΕʹ௥ै͢Δ͔ ಉҰϞδϡʔϧ಺Ͱෳ਺ίϯςΩετ͕ࠞࡏ͢Δ SRPݪଇҧ൓ υϝΠϯ෼ׂ ϨΠϠʔ෼ׂ ґଘํ޲ͷڧ੍ DIPݪଇ९क 113 Modularization

Slide 114

Slide 114 text

ͲΕʹ௥ै͢Δ͔ 114 JetpackCompose

Slide 115

Slide 115 text

ͲΕʹ௥ै͢Δ͔ ίϯϙʔωϯτ୯ҐͰUI͕ଘࡏͤͣ࠶ར༻ੑ͕௿͍ Atomic Design 115 JetpackCompose

Slide 116

Slide 116 text

ͲΕʹ௥ै͢Δ͔ ίϯϙʔωϯτ୯ҐͰUI͕ଘࡏͤͣ࠶ར༻ੑ͕௿͍ Atomic Design σʔλͱUIͷ݁ͼ͖͕ͭ෼͔ΓͮΒ͍ 116 JetpackCompose

Slide 117

Slide 117 text

௥ै͢ΔλΠϛϯά 117

Slide 118

Slide 118 text

௥ै͢ΔλΠϛϯά ௥ै͢΂͖͕ͩɺࠓ͙࣮͢ߦʹҠͤͳ͍͜ͱ΋͋Δ 118

Slide 119

Slide 119 text

௥ै͢ΔλΠϛϯά ௥ै͢΂͖͕ͩɺࠓ͙࣮͢ߦʹҠͤͳ͍͜ͱ΋͋Δ ίετɾϦεΫɾϦλʔϯͷόϥϯε ࡞ۀྔ Өڹൣғ ະདྷతͳίετͱϦεΫͷ௿ݮ 119

Slide 120

Slide 120 text

௥ै͢ΔλΠϛϯά 120 Coroutine

Slide 121

Slide 121 text

௥ै͢ΔλΠϛϯά RxJava͔Βͷஔ͖׵͑ 121 Coroutine

Slide 122

Slide 122 text

௥ै͢ΔλΠϛϯά RxJava͔Βͷஔ͖׵͑ ࣮ࢪͷࡍ͸Ϟδϡʔϧ୯Ґ૝ఆ શମͷ૯ίετͱ௥ैͨ݁͠ՌͷϦλʔϯΛൺֱ 122 Coroutine

Slide 123

Slide 123 text

ͪͳΈʹ 123

Slide 124

Slide 124 text

Ϟμϯ࠾༻ͷੋඇ 124

Slide 125

Slide 125 text

Ϟμϯ࠾༻ͷੋඇ ʮϞμϯٕज़Λ࠾༻ͯ͠͸ବ໨ʯͱ͍͏Θ͚Ͱ͸ͳ͍ Өڹ౓ͷখ͍͞Ϟδϡʔϧ΍ίʔυͰ࠾༻͢Δͷ͸ΞϦ 125

Slide 126

Slide 126 text

Agenda 126 01 σϑΝΫτελϯμʔυͱ͸ 02 ͲͷΑ͏ʹ൑அ͢Δ͔ 03 ௥ै͍ͯͨ͘͠Ίʹ 04 ࣮ମݧɺtips

Slide 127

Slide 127 text

ฐࣾͷ๊͍͑ͯͨ՝୊ Կ΋͔΋Fat ίϯςΩετࠞࡏ ϨΠϠʔͰ෼͚Δ΂͖ϩδοΫࠞࡏ σʔλϑϩʔઓུ͕ᐆດ ςελϏϦςΟ͕௿͍ 127

Slide 128

Slide 128 text

ߟ͑ΒΕͨखஈ Layered Architecture MVVM Modularization 128

Slide 129

Slide 129 text

129 ๊͍͑ͯͨ՝୊ Կ΋͔΋Fat ίϯςΩετ ෼͚Δ΂͖੹຿ σʔλϑϩʔઓུ͕ᐆດ ςελϏϦςΟ͕௿͍ ߟ͑ΒΕͨखஈ ✓ Layered Architecture ✓ MVVM ✓ Modularization

Slide 130

Slide 130 text

130 ๊͍͑ͯͨ՝୊ Կ΋͔΋Fat ίϯςΩετ ෼͚Δ΂͖੹຿ σʔλϑϩʔઓུ͕ᐆດ ςελϏϦςΟ͕௿͍ ߟ͑ΒΕͨखஈ ✓ Layered Architecture ✓ MVVM ✓ Modularization

Slide 131

Slide 131 text

131 ๊͍͑ͯͨ՝୊ Կ΋͔΋Fat ίϯςΩετ ෼͚Δ΂͖੹຿ σʔλϑϩʔઓུ͕ᐆດ ςελϏϦςΟ͕௿͍ ߟ͑ΒΕͨखஈ ✓ Layered Architecture ✓ MVVM ✓ Modularization

Slide 132

Slide 132 text

132 ๊͍͑ͯͨ՝୊ Կ΋͔΋Fat ίϯςΩετ ෼͚Δ΂͖੹຿ σʔλϑϩʔઓུ͕ᐆດ ςελϏϦςΟ͕௿͍ ߟ͑ΒΕͨखஈ ✓ Layered Architecture ✓ MVVM ✓ Modularization

Slide 133

Slide 133 text

ؾΛ͚ͭΔ΂͖͜ͱ খ͍͞ͱ͜Ζ͔Β΍Δ Өڹ౓ ϦεΫ ՝୊͸ಛఆͷखஈͷΈͰ͸ղܾ͠ͳ͍ खஈA͚ͩͰղܾ͠ͳ͍ɺɺɺ खஈAͱखஈBͷ྆ํͰΑ͏΍͘ղܾ 133

Slide 134

Slide 134 text

134 खॱ1 υϝΠϯϞσϦϯά ঎඼ ͓ؾʹೖΓ ஫จཤྺ Ϣʔβʔ

Slide 135

Slide 135 text

135 खॱ1 υϝΠϯϞσϦϯά ӨڹൣғΛߟྀͨ͠ର৅Λܾఆ ίετ ϦεΫ ঎඼ ͓ؾʹೖΓ ஫จཤྺ Ϣʔβʔ

Slide 136

Slide 136 text

136 खॱ1 υϝΠϯϞσϦϯά ӨڹൣғΛߟྀͨ͠ର৅Λܾఆ ίετ ϦεΫ ʮྑ͍ίʔυʯͷݴޠԽ SOLIDݪଇͳͲ ঎඼ ͓ؾʹೖΓ ஫จཤྺ Ϣʔβʔ

Slide 137

Slide 137 text

137 खॱ2 υϝΠϯϩδοΫͷ੾Γग़͠

Slide 138

Slide 138 text

138 खॱ2 υϝΠϯϩδοΫͷ੾Γग़͠ Layered Architecture UI͸ͦͷ··

Slide 139

Slide 139 text

139 खॱ2 υϝΠϯϩδοΫͷ੾Γग़͠ Layered Architecture UI͸ͦͷ·· ॱ൪ DomainɺInfraɺUseCaseɺ UI(Host Service)

Slide 140

Slide 140 text

140 खॱ2 υϝΠϯϩδοΫͷ੾Γग़͠ Layered Architecture UI͸ͦͷ·· ॱ൪ DomainɺInfraɺUseCaseɺ UI(Host Service)

Slide 141

Slide 141 text

141 खॱ3 UI૚ͷϦϑΝΫλϦϯά

Slide 142

Slide 142 text

142 खॱ3 UI૚ͷϦϑΝΫλϦϯά MVVM JetpackCompose

Slide 143

Slide 143 text

143 खॱ3 UI૚ͷϦϑΝΫλϦϯά MVVM JetpackCompose

Slide 144

Slide 144 text

ͦͷଞtips Google Codelabs࠷ڧ େ·͔ͳ֓ཁͱ΍ΓํΛֶͿ طଘϓϩδΣΫτΛϛχϚϜʹ࡟ͬͨαϯϓϧϓϩδΣΫτ͕͋Δͱศར UI͸ൺֱత࠷ޙʹɺJetpackCompose͸ཁૉٴͼϩδοΫ͕࠷খͳ΋ͷ͔Β σβΠϯΨΠυϥΠϯࡦఆ͢Δͱ໾ཱͭ 144

Slide 145

Slide 145 text

·ͱΊ σϑΝΫτελϯμʔυ͸՝୊Λղܾ͢ΔखஈͰ͋Δ νʔϜ๊͕͑Δ՝୊Λ໌֬ʹ͢Δ खஈΛ஌Βͳ͍ͱ՝୊ʹؾ͚ͮͳ͍͜ͱ͕͋ΔͷͰΩϟονΞοϓ͸େࣄ ΧʔΰɾΧϧτɾϓϩάϥϛϯά͸΍ΊΑ͏ 145

Slide 146

Slide 146 text

͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝ ·ͨ͠ʂ Taikai Masuda / tk-masuda Oisix ra daichi inc. Android Developer 146 ΧδϡΞϧ໘ஊੋඇʹʂ