Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
移りゆくデファクトスタンダードにチームとしてどう追従するか
Search
tk-masuda
October 06, 2022
Programming
0
6.5k
移りゆくデファクトスタンダードにチームとしてどう追従するか
DroidKaigi 2022
移りゆくデファクトスタンダードにチームとしてどう追従するか tk-masuda
tk-masuda
October 06, 2022
Tweet
Share
Other Decks in Programming
See All in Programming
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
370
PC-6001でPSG曲を鳴らすまでを全部NetBSD上の Makefile に押し込んでみた / osc2025hiroshima
tsutsui
0
210
TestingOsaka6_Ozono
o3
0
270
AgentCoreとHuman in the Loop
har1101
3
120
gunshi
kazupon
1
140
AtCoder Conference 2025
shindannin
0
930
2年のAppleウォレットパス開発の振り返り
muno92
PRO
0
180
AI Agent Dojo #4: watsonx Orchestrate ADK体験
oniak3ibm
PRO
0
130
perlをWebAssembly上で動かすと何が嬉しいの??? / Where does Perl-on-Wasm actually make sense?
mackee
0
320
Giselleで作るAI QAアシスタント 〜 Pull Requestレビューに継続的QAを
codenote
0
340
dchart: charts from deck markup
ajstarks
3
960
Context is King? 〜Verifiability時代とコンテキスト設計 / Beyond "Context is King"
rkaga
10
1.6k
Featured
See All Featured
How to make the Groovebox
asonas
2
1.9k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
110
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
140
It's Worth the Effort
3n
188
29k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
360
The Art of Programming - Codeland 2020
erikaheidi
57
14k
For a Future-Friendly Web
brad_frost
180
10k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
Darren the Foodie - Storyboard
khoart
PRO
2
2.1k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
1
220
Transcript
ҠΓΏ͘σϑΝΫτελϯμʔυ ʹνʔϜͱͯ͠Ͳ͏ै͢Δ͔ Taikai Masuda / tk-masuda Oisix ra daichi inc.
Android Developer 1
ຊηογϣϯͷΰʔϧ σϑΝΫτελϯμʔυͱஅ͢Δج४ΛνʔϜͰ࣋ͯΔΑ͏ʹͳΔ తʹର͢ΔҰͭͷखஈͱͯ͠σϑΝΫτελϯμʔυʹै͢ΔબΛߦ͑ ΔΑ͏ʹͳΔ Ͳ͜·Ͱै͢Δ͔ͷબ ै͠ͳ͍બ 2
Agenda 3 01 σϑΝΫτελϯμʔυͱ 02 ͲͷΑ͏ʹஅ͢Δ͔ 03 ै͍ͯͨ͘͠Ίʹ 04 ࣮ମݧɺtips
Agenda 4 01 σϑΝΫτελϯμʔυͱ 02 ͲͷΑ͏ʹஅ͢Δ͔ 03 ै͍ͯͨ͘͠Ίʹ 04 ࣮ମݧɺtips
“ެతͳඪ४ظ͔ؒΒͷೝূͰͳ͘ɺࢢ ʹ͓͚Δاۀؒͷڝ૪ʹΑͬͯɺۀքͷඪ४ ͱͯ͠ೝΊΒΕΔΑ͏ʹͳͬͨن֨ͷ͜ͱ” 5 σϑΝΫτελϯμʔυ ΟΩϖσΟΞʢWikipediaʣ:ϑϦʔඦՊࣄయ
֤༻ޠͷΠϝʔδ 6 ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ
֤༻ޠͷΠϝʔδ Ϟμϯ 7 ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ
֤༻ޠͷΠϝʔδ Ϟμϯ ࠷৽ٕज़͕ͩ༻࣮͕গͳ͍ 8 ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ
֤༻ޠͷΠϝʔδ Ϟμϯ ࠷৽ٕज़͕ͩ༻࣮͕গͳ͍ ExperimentalͳͷͰͳ͍ 9 ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ
֤༻ޠͷΠϝʔδ Ϟμϯ ࠷৽ٕज़͕ͩ༻࣮͕গͳ͍ ExperimentalͳͷͰͳ͍ Ver 1.xҎ্ͰϦϦʔε͞Ε͍ͯΔΑ͏ͳͷ 10 ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ
֤༻ޠͷΠϝʔδ Ϟμϯ ࠷৽ٕज़͕ͩ༻࣮͕গͳ͍ ExperimentalͳͷͰͳ͍ Ver 1.xҎ্ͰϦϦʔε͞Ε͍ͯΔΑ͏ͳͷ →ϓϩμΫτ࠾༻͕ݟૹΒΕΔ 11 ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ
֤༻ޠͷΠϝʔδ ϨΨγʔ 12 ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ
֤༻ޠͷΠϝʔδ ϨΨγʔ ସٕज़͕͋Δ 13 ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ
֤༻ޠͷΠϝʔδ ϨΨγʔ ସٕज़͕͋Δ ΘΕͳ͘ͳٕͬͨज़ 14 ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ
֤༻ޠͷΠϝʔδ ϨΨγʔ ସٕज़͕͋Δ ΘΕͳ͘ͳٕͬͨज़ ߋ৽͞Εͳ͘ͳٕͬͨज़ 15 ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ
֤༻ޠͷΠϝʔδ ϨΨγʔ ସٕज़͕͋Δ ΘΕͳ͘ͳٕͬͨज़ ߋ৽͞Εͳ͘ͳٕͬͨज़ →ϓϩμΫτ࠾༻͕ݟૹΒΕΔ 16 ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ
֤༻ޠͷΠϝʔδ σϑΝΫτελϯμʔυ 17 ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ
֤༻ޠͷΠϝʔδ σϑΝΫτελϯμʔυ ͘ΘΕ͍ͯΔͷ 18 ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ
֤༻ޠͷΠϝʔδ σϑΝΫτελϯμʔυ ͘ΘΕ͍ͯΔͷ ͏ʹ͋ͨͬͯݱࡏ࣌Ͱ՝ײ͕࠷গͳ͍ͷ 19 ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ
֤༻ޠͷΠϝʔδ σϑΝΫτελϯμʔυ ͘ΘΕ͍ͯΔͷ ͏ʹ͋ͨͬͯݱࡏ࣌Ͱ՝ײ͕࠷গͳ͍ͷ ح৺͔Β͘ΔͬͯΈ͍ͨɺͰͳ͍ 20 ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ
֤༻ޠͷΠϝʔδ σϑΝΫτελϯμʔυ ͘ΘΕ͍ͯΔͷ ͏ʹ͋ͨͬͯݱࡏ࣌Ͱ՝ײ͕࠷গͳ͍ͷ ح৺͔Β͘ΔͬͯΈ͍ͨɺͰͳ͍ →ϓϩμΫτ࠾༻͞ΕΔ 21 ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ
22 Ϟμϯ ϨΨγʔ ̓ ֤༻ޠͷΠϝʔδ ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ
23 Ϟμϯ ϨΨγʔ σϑΝΫτ ελϯμʔυ ̓ ֤༻ޠͷΠϝʔδ ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ
24 Ϟμϯ ϨΨγʔ σϑΝΫτ ελϯμʔυ ̓ ֤༻ޠͷΠϝʔδ ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ
25 Ϟμϯ ϨΨγʔ σϑΝΫτ ελϯμʔυ ̓ ֤༻ޠͷΠϝʔδ ϞμϯɺϨΨγʔɺσϑΝΫτελϯμʔυ
“ެతͳඪ४ظ͔ؒΒͷೝূͰͳ͘ɺࢢ ʹ͓͚Δاۀؒͷڝ૪ʹΑͬͯɺۀքͷඪ४ ͱͯ͠ೝΊΒΕΔΑ͏ʹͳͬͨن֨ͷ͜ͱ” 26 σϑΝΫτελϯμʔυ ΟΩϖσΟΞʢWikipediaʣ:ϑϦʔඦՊࣄయ
“ެతͳඪ४ظ͔ؒΒͷೝূͰͳ͘ɺࢢ ʹ͓͚Δاۀؒͷڝ૪ʹΑͬͯɺۀքͷඪ४ ͱͯ͠ೝΊΒΕΔΑ͏ʹͳͬͨن֨ͷ͜ͱ” σϑΝΫτελϯμʔυ ΟΩϖσΟΞʢWikipediaʣ:ϑϦʔඦՊࣄయ 27
Android։ൃͷඪ४ 28
29 ݴޠ Java Kotlin https://kotlinlang.org/
30 πʔϧ AndroidStudio Gradle
31 ઃܭ MVVMɺMVPɺFluxɺRedux Repositoryύλʔϯ https://developer.android.com/topic/ architecture/ui-layer https://developer.android.com/topic/ architecture/data-layer
32 ։ൃڥ CI/CD Linter Formatter
33 ςετ JUnit Truth Espresso Robolectric Mockito
34 ओཁϥΠϒϥϦ ௨৴ Retrofit UI JetpackComposeɺCoil DI daggerɺKoin https://developer.android.com/jetpack/compose? hl=ja
Android։ൃͷඪ४ ݴޠ πʔϧ ઃܭ ։ൃڥ ςετ ओཁϥΠϒϥϦ 35
Agenda 36 01 σϑΝΫτελϯμʔυͱ 02 ͲͷΑ͏ʹஅ͢Δ͔ 03 ै͍ͯͨ͘͠Ίʹ 04 ࣮ମݧɺtips
σϑΝΫτελϯμʔυͷஅج४ 37 Ϟμϯ ϨΨγʔ σϑΝΫτ ελϯμʔυ ̓
σϑΝΫτελϯμʔυͷஅج४ 38 ϞμϯˠσϑΝΫτελϯμʔυ Ϟμϯ σϑΝΫτ ελϯμʔυ ̓
σϑΝΫτελϯμʔυͷஅج४ 39 σϑΝΫτελϯμʔυˠϨΨγʔ ϨΨγʔ σϑΝΫτ ελϯμʔυ ̓
அ͢Δࡐྉ 40
41 χϡʔειʔε Android Developers Blog Japan Android Developers Blog
42 χϡʔειʔε Android Developers Blog Japan Android Developers Blog Android
Developers - Medium
43 χϡʔειʔε Android Developers Blog Japan Android Developers Blog Android
Developers - Medium PRO ANDROID DEV
44 χϡʔειʔε Android Developers Blog Japan Android Developers Blog Android
Developers - Medium PRO ANDROID DEV Android Dagashi
45 ͦͷଞ ษڧձ ΧϯϑΝϨϯε
46 ͦͷଞ ษڧձ ΧϯϑΝϨϯε ٕज़ॻ
47 ͦͷଞ ษڧձ ΧϯϑΝϨϯε ٕज़ॻ པΕΔਓΛݟ͚ͭΔ SNS ٕज़ސ
அج४ 48
அج४ ໌֬ͳఆྔͰஅͰ͖ͳ͍ 49
அج४ ໌֬ͳఆྔͰஅͰ͖ͳ͍ ʮͬͯΈͨʯ·ͩϞμϯ 50
அج४ ໌֬ͳఆྔͰஅͰ͖ͳ͍ ʮͬͯΈͨʯ·ͩϞμϯ Ή͠Ζهࣄ͕ग़ͳ͘ͳ͖ͬͯͨ͋ͨΓ ʮ͑ʁͨΓલͩΑͶʁʯ 51
அج४ ໌֬ͳఆྔͰஅͰ͖ͳ͍ ʮͬͯΈͨʯ·ͩϞμϯ Ή͠Ζهࣄ͕ग़ͳ͘ͳ͖ͬͯͨ͋ͨΓ ʮ͑ʁͨΓલͩΑͶʁʯ Ԡื݅࠾༻໘Ͱʮxxx͑·͔͢ʁʯͱฉ͔ΕΔΑ͏ͳͷ 52
ۃɺओ؍ 53
அج४ 54 σϑΝΫτελϯμʔυͱࢥΘΕΔྫ
அج४ JetpackCompose 55 σϑΝΫτελϯμʔυͱࢥΘΕΔྫ https://developer.android.com/jetpack/compose?hl=ja
அج४ Modularization 56 σϑΝΫτελϯμʔυͱࢥΘΕΔྫ https://developer.android.com/topic/modularization
அج४ 57 ϞμϯͱࢥΘΕΔྫ
அج४ StableͰͳ͍ϥΠϒϥϦ Alpha Beta RC 58 ϞμϯͱࢥΘΕΔྫ
அج४ 59 ఆྔͰஅΛޡΔྫ
அج४ Agera 60 ఆྔͰஅΛޡΔྫ
அج४ Agera StarଟΊ ࣌ϞμϯͰʮͬͯΈͨʯهࣄ͕େྔ 61 ఆྔͰஅΛޡΔྫ
அج४ Agera StarଟΊ ࣌ϞμϯͰʮͬͯΈͨʯهࣄ͕େྔ ϞμϯˠϨΨγʔ ϞμϯˠσϑΝΫτελϯμʔυʹͳΒͳ͔ͬͨྫ 62 ఆྔͰஅΛޡΔྫ
Agenda 63 01 σϑΝΫτελϯμʔυͱ 02 ͲͷΑ͏ʹஅ͢Δ͔ 03 ै͍ͯͨ͘͠Ίʹ 04 ࣮ମݧɺtips
ඞཁੑΛߟ͑Δ 64 ै͠ͳ͍͜ͱʹΑΔෆརӹ
ඞཁੑΛߟ͑Δ deprecatedʢඇਪʣ 65 ै͠ͳ͍͜ͱʹΑΔෆརӹ
ඞཁੑΛߟ͑Δ deprecatedʢඇਪʣ ະདྷతʹ͑ͳ͘ͳΔ 66 ै͠ͳ͍͜ͱʹΑΔෆརӹ
ඞཁੑΛߟ͑Δ deprecatedʢඇਪʣ ະདྷతʹ͑ͳ͘ͳΔ ΞοϓσʔτͰ͖ͳ͘ͳΔ 67 ै͠ͳ͍͜ͱʹΑΔෆརӹ
ඞཁੑΛߟ͑Δ ՝ͷ์ஔ 68 ै͠ͳ͍͜ͱʹΑΔෆརӹ
ඞཁੑΛߟ͑Δ ՝ͷ์ஔ ৽͍ٕ͠ज़ࠓ·Ͱೝ͞Ε͍ͯͳ͔ͬͨ՝Λղܾ͢ΔͷͰ͋Δ͜ͱ͕ ଟ͍ 69 ै͠ͳ͍͜ͱʹΑΔෆརӹ
ඞཁੑΛߟ͑Δ ՝ͷ์ஔ ৽͍ٕ͠ज़ࠓ·Ͱೝ͞Ε͍ͯͳ͔ͬͨ՝Λղܾ͢ΔͷͰ͋Δ͜ͱ͕ ଟ͍ ʮै͠ͳ͍ʯͱ͍͏͜ͱɺੈؒҰൠͰ՝ͱ͞Ε͍ͯΔͷΛ์ஔ͢Δ ͜ͱʹ΄͔ͳΒͳ͍ 70 ै͠ͳ͍͜ͱʹΑΔෆརӹ
ඞཁੑΛߟ͑Δ ະདྷɺطଘνʔϜϝϯόʔͷϞνϕʔγϣϯ 71 ै͠ͳ͍͜ͱʹΑΔෆརӹ
ඞཁੑΛߟ͑Δ ະདྷɺطଘνʔϜϝϯόʔͷϞνϕʔγϣϯ ࠾༻Ͱ͖ͳ͍ 72 ै͠ͳ͍͜ͱʹΑΔෆརӹ
ඞཁੑΛߟ͑Δ ະདྷɺطଘνʔϜϝϯόʔͷϞνϕʔγϣϯ ࠾༻Ͱ͖ͳ͍ طଘϝϯόʔͷͷՄೳੑ 73 ै͠ͳ͍͜ͱʹΑΔෆརӹ
ඞཁੑΛߟ͑Δ ະདྷɺطଘνʔϜϝϯόʔͷϞνϕʔγϣϯ ࠾༻Ͱ͖ͳ͍ طଘϝϯόʔͷͷՄೳੑ ϝϯόʔˍ࠾༻Ͱ͖ͳ͍ͱɺɺɺ ࣄۀܧଓੑʹѱӨڹ 74 ै͠ͳ͍͜ͱʹΑΔෆརӹ
ඞཁੑΛߟ͑Δ 75 ै͢Δ͜ͱʹΑΔརӹ
ඞཁੑΛߟ͑Δ ਪ͞Ε͍ͯΔ࣮Λ࠾༻Ͱ͖Δ 76 ै͢Δ͜ͱʹΑΔརӹ
ඞཁੑΛߟ͑Δ ਪ͞Ε͍ͯΔ࣮Λ࠾༻Ͱ͖Δ ೝͰ͖Δ՝ղܾ͞Ε͍ͯ͘ 77 ै͢Δ͜ͱʹΑΔརӹ
ඞཁੑΛߟ͑Δ ਪ͞Ε͍ͯΔ࣮Λ࠾༻Ͱ͖Δ ೝͰ͖Δ՝ղܾ͞Ε͍ͯ͘ ݱࡏ·ͨະདྷͷϝϯόʔͷϞνϕʔγϣϯอͨΕΔ 78 ै͢Δ͜ͱʹΑΔརӹ
ै͠Α͏ 79
ै͠Α͏ 80
શͯै͖͢ͳͷ͔ʁ 81
શͯै͖͢ͳͷ͔ʁ શͯΛै͢Δඞཁͳ͍ 82
શͯै͖͢ͳͷ͔ʁ શͯΛै͢Δඞཁͳ͍ ϓϩμΫτʹΑΔ 83
શͯै͖͢ͳͷ͔ʁ શͯΛै͢Δඞཁͳ͍ ϓϩμΫτʹΑΔ ՝͕֘͠ͳ͍ͱ͖ 84
શͯै͖͢ͳͷ͔ʁ શͯΛै͢Δඞཁͳ͍ ϓϩμΫτʹΑΔ ՝͕֘͠ͳ͍ͱ͖ ՝͕ແࢹͰ͖Δ΄Ͳখ͍࣌͞ 85
શͯै͖͢ͳͷ͔ʁ શͯΛै͢Δඞཁͳ͍ ϓϩμΫτʹΑΔ ՝͕֘͠ͳ͍ͱ͖ ՝͕ແࢹͰ͖Δ΄Ͳখ͍࣌͞ ༏ઌॱҐ͕͍ͱ͖ 86
શͯै͖͢ͳͷ͔ʁ 87 ै͠ͳ͍ྫ
શͯै͖͢ͳͷ͔ʁ Modularization 88 ै͠ͳ͍ྫ
શͯै͖͢ͳͷ͔ʁ Modularization ػೳ͕ͻͱ͔ͭ͠ͳ͍Α͏ͳͱͯγϯϓϧͳΞϓϦ Layered ArchitectureͷͰͳ͘ɺίϯςΩετׂͷ 89 ै͠ͳ͍ྫ
શͯै͖͢ͳͷ͔ʁ Room 90 ै͠ͳ͍ྫ
શͯै͖͢ͳͷ͔ʁ Room ͦͦϩʔΧϧDB͕ඞཁ͔ 91 ै͠ͳ͍ྫ
શͯै͖͢ͳͷ͔ʁ Room ͦͦϩʔΧϧDB͕ඞཁ͔ ϑΝΠϧอଘ SharedPreferences 92 ै͠ͳ͍ྫ
શͯै͖͢ͳͷ͔ʁ Room ͦͦϩʔΧϧDB͕ඞཁ͔ ϑΝΠϧอଘ SharedPreferences ैͨ݁͠Ռɺmigration࣌ʹ࡞ۀྔ૿େͷݒ೦ 93 ै͠ͳ͍ྫ
ͲΕʹै͢Δ͔ 94
ͲΕʹै͢Δ͔ ՝ղܾͷखஈͱͯ͠࠾༻͢Δ 95
ͲΕʹै͢Δ͔ ՝ղܾͷखஈͱͯ͠࠾༻͢Δ ՝ೝࣝͷҰக͕ෆՄܽ 96
ͲΕʹै͢Δ͔ ՝ղܾͷखஈͱͯ͠࠾༻͢Δ ՝ೝࣝͷҰக͕ෆՄܽ νʔϜͰͷ߹ҙ 97
ͲΕʹै͢Δ͔ ՝ղܾͷखஈͱͯ͠࠾༻͢Δ ՝ೝࣝͷҰக͕ෆՄܽ νʔϜͰͷ߹ҙ ΧʔΰɾΧϧτɾϓϩάϥϛϯάΊΑ͏ 98
ͲΕʹै͢Δ͔ 99 ΧʔΰɾΧϧτɾϓϩάϥϛϯάʁ
ͲΕʹै͢Δ͔ ࣮ࡍʹඞཁͰͳ͍ͷΛϓϩάϥϛϯά͢Δ͜ͱ 100 ΧʔΰɾΧϧτɾϓϩάϥϛϯάʁ
ͲΕʹै͢Δ͔ ࣮ࡍʹඞཁͰͳ͍ͷΛϓϩάϥϛϯά͢Δ͜ͱ ࣄΛཧղ͍ͯ͠ͳ͍߹ʹى͜Γ͕ͪ త खஈ 101 ΧʔΰɾΧϧτɾϓϩάϥϛϯάʁ
ͲΕʹै͢Δ͔ ࣮ࡍʹඞཁͳͷͰͳ͍ͷΛϓϩάϥϛϯά͢Δ͜ͱ ࣄΛཧղ͍ͯ͠ͳ͍߹ʹى͜Γ͕ͪ త खஈ ΊΑ͏ 102 ΧʔΰɾΧϧτɾϓϩάϥϛϯάʁ
ै͢Δྫ 103
ͲΕʹै͢Δ͔ 104 Architecture
ͲΕʹै͢Δ͔ ઃܭͱݴ͑ΔΑ͏ͳͷ͕ͳ͘ɺUIૢ࡞ϩδοΫ͕ͻͱ·ͱ·Γʹࠞࡏ 105 Architecture
ͲΕʹै͢Δ͔ ઃܭͱݴ͑ΔΑ͏ͳͷ͕ͳ͘ɺUIૢ࡞ϩδοΫ͕ͻͱ·ͱ·Γʹࠞࡏ SRPݪଇɺDRYݪଇͷҧ มߋ࣌ͷӨڹൣғ͕͍ 106 Architecture
ͲΕʹै͢Δ͔ ઃܭͱݴ͑ΔΑ͏ͳͷ͕ͳ͘ɺUIૢ࡞ϩδοΫ͕ͻͱ·ͱ·Γʹࠞࡏ SRPݪଇɺDRYݪଇͷҧ มߋ࣌ͷӨڹൣғ͕͍ ࠓޙ֘ϑΝΠϧͷมߋՄೳੑ͕ߴ͍ 107 Architecture
ͲΕʹै͢Δ͔ 108 Modularization
ͲΕʹै͢Δ͔ ಉҰϞδϡʔϧͰෳίϯςΩετ͕ࠞࡏ͢Δ 109 Modularization
ͲΕʹै͢Δ͔ ಉҰϞδϡʔϧͰෳίϯςΩετ͕ࠞࡏ͢Δ SRPݪଇҧ 110 Modularization
ͲΕʹै͢Δ͔ ಉҰϞδϡʔϧͰෳίϯςΩετ͕ࠞࡏ͢Δ SRPݪଇҧ υϝΠϯׂ 111 Modularization
ͲΕʹै͢Δ͔ ಉҰϞδϡʔϧͰෳίϯςΩετ͕ࠞࡏ͢Δ SRPݪଇҧ υϝΠϯׂ ϨΠϠʔׂ 112 Modularization
ͲΕʹै͢Δ͔ ಉҰϞδϡʔϧͰෳίϯςΩετ͕ࠞࡏ͢Δ SRPݪଇҧ υϝΠϯׂ ϨΠϠʔׂ ґଘํͷڧ੍ DIPݪଇ९क 113 Modularization
ͲΕʹै͢Δ͔ 114 JetpackCompose
ͲΕʹै͢Δ͔ ίϯϙʔωϯτ୯ҐͰUI͕ଘࡏͤͣ࠶ར༻ੑ͕͍ Atomic Design 115 JetpackCompose
ͲΕʹै͢Δ͔ ίϯϙʔωϯτ୯ҐͰUI͕ଘࡏͤͣ࠶ར༻ੑ͕͍ Atomic Design σʔλͱUIͷ݁ͼ͖͕͔ͭΓͮΒ͍ 116 JetpackCompose
ै͢ΔλΠϛϯά 117
ै͢ΔλΠϛϯά ै͖͕ͩ͢ɺࠓ͙࣮͢ߦʹҠͤͳ͍͜ͱ͋Δ 118
ै͢ΔλΠϛϯά ै͖͕ͩ͢ɺࠓ͙࣮͢ߦʹҠͤͳ͍͜ͱ͋Δ ίετɾϦεΫɾϦλʔϯͷόϥϯε ࡞ۀྔ Өڹൣғ ະདྷతͳίετͱϦεΫͷݮ 119
ै͢ΔλΠϛϯά 120 Coroutine
ै͢ΔλΠϛϯά RxJava͔Βͷஔ͖͑ 121 Coroutine
ै͢ΔλΠϛϯά RxJava͔Βͷஔ͖͑ ࣮ࢪͷࡍϞδϡʔϧ୯Ґఆ શମͷ૯ίετͱैͨ݁͠ՌͷϦλʔϯΛൺֱ 122 Coroutine
ͪͳΈʹ 123
Ϟμϯ࠾༻ͷੋඇ 124
Ϟμϯ࠾༻ͷੋඇ ʮϞμϯٕज़Λ࠾༻ͯ͠ବʯͱ͍͏Θ͚Ͱͳ͍ Өڹͷখ͍͞ϞδϡʔϧίʔυͰ࠾༻͢ΔͷΞϦ 125
Agenda 126 01 σϑΝΫτελϯμʔυͱ 02 ͲͷΑ͏ʹஅ͢Δ͔ 03 ै͍ͯͨ͘͠Ίʹ 04 ࣮ମݧɺtips
ฐࣾͷ๊͍͑ͯͨ՝ Կ͔Fat ίϯςΩετࠞࡏ ϨΠϠʔͰ͚Δ͖ϩδοΫࠞࡏ σʔλϑϩʔઓུ͕ᐆດ ςελϏϦςΟ͕͍ 127
ߟ͑ΒΕͨखஈ Layered Architecture MVVM Modularization 128
129 ๊͍͑ͯͨ՝ Կ͔Fat ίϯςΩετ ͚Δ͖ σʔλϑϩʔઓུ͕ᐆດ ςελϏϦςΟ͕͍ ߟ͑ΒΕͨखஈ ✓ Layered
Architecture ✓ MVVM ✓ Modularization
130 ๊͍͑ͯͨ՝ Կ͔Fat ίϯςΩετ ͚Δ͖ σʔλϑϩʔઓུ͕ᐆດ ςελϏϦςΟ͕͍ ߟ͑ΒΕͨखஈ ✓ Layered
Architecture ✓ MVVM ✓ Modularization
131 ๊͍͑ͯͨ՝ Կ͔Fat ίϯςΩετ ͚Δ͖ σʔλϑϩʔઓུ͕ᐆດ ςελϏϦςΟ͕͍ ߟ͑ΒΕͨखஈ ✓ Layered
Architecture ✓ MVVM ✓ Modularization
132 ๊͍͑ͯͨ՝ Կ͔Fat ίϯςΩετ ͚Δ͖ σʔλϑϩʔઓུ͕ᐆດ ςελϏϦςΟ͕͍ ߟ͑ΒΕͨखஈ ✓ Layered
Architecture ✓ MVVM ✓ Modularization
ؾΛ͚ͭΔ͖͜ͱ খ͍͞ͱ͜Ζ͔ΒΔ Өڹ ϦεΫ ՝ಛఆͷखஈͷΈͰղܾ͠ͳ͍ खஈA͚ͩͰղܾ͠ͳ͍ɺɺɺ खஈAͱखஈBͷ྆ํͰΑ͏͘ղܾ 133
134 खॱ1 υϝΠϯϞσϦϯά ͓ؾʹೖΓ จཤྺ Ϣʔβʔ
135 खॱ1 υϝΠϯϞσϦϯά ӨڹൣғΛߟྀͨ͠ରΛܾఆ ίετ ϦεΫ ͓ؾʹೖΓ จཤྺ Ϣʔβʔ
136 खॱ1 υϝΠϯϞσϦϯά ӨڹൣғΛߟྀͨ͠ରΛܾఆ ίετ ϦεΫ ʮྑ͍ίʔυʯͷݴޠԽ SOLIDݪଇͳͲ ͓ؾʹೖΓ
จཤྺ Ϣʔβʔ
137 खॱ2 υϝΠϯϩδοΫͷΓग़͠
138 खॱ2 υϝΠϯϩδοΫͷΓग़͠ Layered Architecture UIͦͷ··
139 खॱ2 υϝΠϯϩδοΫͷΓग़͠ Layered Architecture UIͦͷ·· ॱ൪ DomainɺInfraɺUseCaseɺ UI(Host Service)
140 खॱ2 υϝΠϯϩδοΫͷΓग़͠ Layered Architecture UIͦͷ·· ॱ൪ DomainɺInfraɺUseCaseɺ UI(Host Service)
141 खॱ3 UIͷϦϑΝΫλϦϯά
142 खॱ3 UIͷϦϑΝΫλϦϯά MVVM JetpackCompose
143 खॱ3 UIͷϦϑΝΫλϦϯά MVVM JetpackCompose
ͦͷଞtips Google Codelabs࠷ڧ େ·͔ͳ֓ཁͱΓํΛֶͿ طଘϓϩδΣΫτΛϛχϚϜʹͬͨαϯϓϧϓϩδΣΫτ͕͋Δͱศར UIൺֱత࠷ޙʹɺJetpackComposeཁૉٴͼϩδοΫ͕࠷খͳͷ͔Β σβΠϯΨΠυϥΠϯࡦఆ͢Δͱཱͭ 144
·ͱΊ σϑΝΫτελϯμʔυ՝Λղܾ͢ΔखஈͰ͋Δ νʔϜ๊͕͑Δ՝Λ໌֬ʹ͢Δ खஈΛΒͳ͍ͱ՝ʹؾ͚ͮͳ͍͜ͱ͕͋ΔͷͰΩϟονΞοϓେࣄ ΧʔΰɾΧϧτɾϓϩάϥϛϯάΊΑ͏ 145
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝ ·ͨ͠ʂ Taikai Masuda / tk-masuda Oisix ra daichi inc.
Android Developer 146 ΧδϡΞϧ໘ஊੋඇʹʂ