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
6.6k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
移りゆくデファクトスタンダードにチームとしてどう追従するか
DroidKaigi 2022
移りゆくデファクトスタンダードにチームとしてどう追従するか tk-masuda
tk-masuda
October 06, 2022
Other Decks in Programming
See All in Programming
Language Server 使ってる? 〜VSCode と Zed の場合〜 / Are you using a Language Server? ~For VS Code and Zed~
handlename
0
810
Observability in Practice:Grafana 與 Edge Device SRE 的那些事
blueswen
0
180
OS アップデート対応の取り組み方がもっと共有されてほしい
andpad
0
100
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
280
生成AI時代にこそ効くGo | Why Go Works in the Age of Generative AI
mom0tomo
8
3.4k
Even G2とAWSで推しのエージェントを召喚しよう!
har1101
1
140
その問い、本当に正しいですか?AI時代のエンジニアに必要な哲学と認知科学 / ai-philosophy-cognitive-science
minodriven
14
6.5k
ローカルLLMでどこまでコードが書けるか -縮小版 / How much code can be written on a local LLM Shortened
kishida
2
120
dRuby over BLE
makicamel
2
400
The NotImplementedError Problem in Ruby
koic
1
990
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
370
jQueryをバージョンアップする前に使いたいjQuery Migrate
matsuo_atsushi
0
620
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
55
10k
Skip the Path - Find Your Career Trail
mkilby
1
160
GitHub's CSS Performance
jonrohan
1033
470k
Test your architecture with Archunit
thirion
1
2.3k
Believing is Seeing
oripsolob
1
160
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
260
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
350
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.3k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
160
AI: The stuff that nobody shows you
jnunemaker
PRO
8
750
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
170
Making Projects Easy
brettharned
120
6.7k
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 ΧδϡΞϧ໘ஊੋඇʹʂ