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
今から始めるClaude Code入門〜AIコーディングエージェントの歴史と導入〜
nokomoro3
0
130
モバイルアプリからWebへの横展開を加速した話_Claude_Code_実践術.pdf
kazuyasakamoto
0
320
Amazon RDS 向けに提供されている MCP Server と仕組みを調べてみた/jawsug-okayama-2025-aurora-mcp
takahashiikki
1
110
Improving my own Ruby thereafter
sisshiki1969
1
160
FindyにおけるTakumi活用と脆弱性管理のこれから
rvirus0817
0
510
アセットのコンパイルについて
ojun9
0
120
rage against annotate_predecessor
junk0612
0
170
ぬるぬる動かせ! Riveでアニメーション実装🐾
kno3a87
1
210
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
360
さようなら Date。 ようこそTemporal! 3年間先行利用して得られた知見の共有
8beeeaaat
3
1.4k
CJK and Unicode From a PHP Committer
youkidearitai
PRO
0
110
AI Coding Agentのセキュリティリスク:PRの自己承認とメルカリの対策
s3h
0
200
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Side Projects
sachag
455
43k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
Music & Morning Musume
bryan
46
6.8k
Into the Great Unknown - MozCon
thekraken
40
2k
Visualization
eitanlees
148
16k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
31
2.2k
Building Applications with DynamoDB
mza
96
6.6k
The Art of Programming - Codeland 2020
erikaheidi
56
13k
Designing for Performance
lara
610
69k
Code Review Best Practice
trishagee
70
19k
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 ΧδϡΞϧ໘ஊੋඇʹʂ