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.1k
移りゆくデファクトスタンダードにチームとしてどう追従するか
DroidKaigi 2022
移りゆくデファクトスタンダードにチームとしてどう追従するか tk-masuda
tk-masuda
October 06, 2022
Tweet
Share
Other Decks in Programming
See All in Programming
CSC307 Lecture 12
javiergs
PRO
0
220
Rustのweb開発を助ける 便利なツール紹介
yuki0418
1
190
Terraformテスト入門
msato
0
540
Composing an API the *right* way (Droidcon Berlin 2024)
zsmb
1
450
最古の関数型言語「Lisp」ことはじめ / lisp_in_kamiyama
uhooi
1
190
CSC307 Lecture 13
javiergs
PRO
0
150
DynamoDB コスト最適化っぽいことの基本 with Terraform
kuro_kurorrr
2
250
大規模マルチテナントを解決するYugabyteDBという選択肢
nnaka2992
1
250
AWS CDKにおける「再利用性」を考える / aws-cdk-reusability
gotok365
6
1.3k
From Spring Boot 2 to Spring Boot 3 with Java 22 and Jakarta EE
ivargrimstad
0
1.9k
OpenAI/Gemini APIを使って EPUBを翻訳するCLIツールをつくってみた
tomiyan
0
790
さきがけから振り返るアーキテクチャ刷新 / Reflecting on the Architectural Renewal from the Vanguard
nrslib
2
780
Featured
See All Featured
Designing with Data
zakiwarfel
96
5k
Product Roadmaps are Hard
iamctodd
PRO
48
10k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
Building a Scalable Design System with Sketch
lauravandoore
458
32k
Making Projects Easy
brettharned
111
5.7k
The Cult of Friendly URLs
andyhume
75
5.9k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
Become a Pro
speakerdeck
PRO
15
4.8k
In The Pink: A Labor of Love
frogandcode
139
22k
Designing Experiences People Love
moore
136
23k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
12
3.8k
How to train your dragon (web standard)
notwaldorf
79
5.5k
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 ΧδϡΞϧ໘ஊੋඇʹʂ