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
Navigation ComponentとFluxをnanaに導入した
Search
Young
March 25, 2019
Programming
0
95
Navigation ComponentとFluxをnanaに導入した
社内勉強会 #深いい勉強会 の資料です
Young
March 25, 2019
Tweet
Share
More Decks by Young
See All by Young
GitbookからOpenApiへのAPIドキュメント移行
akihitookada
0
93
Androidアプリにおけるモジュラライズの進め方
akihitookada
0
230
MotionLayoutを使ってクリスマスなアプリを作った
akihitookada
0
150
OrmaからRoomに移行する 2nd Season
akihitookada
1
750
ミャンマーのすゝめ
akihitookada
2
92
Android版 nanaとデータの永続化とDatabase
akihitookada
2
210
Android Team @ nana music, Inc.
akihitookada
0
93
ConstraintLayoutを理解する
akihitookada
0
110
OpenSTFとJenkinsで 社内のAndroid端末を有効活用する
akihitookada
0
280
Other Decks in Programming
See All in Programming
なんとなくわかった気になるブロックテーマ入門/contents.nagoya 2025 6.28
chiilog
1
190
Rubyでやりたい駆動開発 / Ruby driven development
chobishiba
1
370
GraphRAGの仕組みまるわかり
tosuri13
7
480
datadog dash 2025 LLM observability for reliability and stability
ivry_presentationmaterials
0
110
PHPでWebSocketサーバーを実装しよう2025
kubotak
0
110
ドメインモデリングにおける抽象の役割、tagless-finalによるDSL構築、そして型安全な最適化
knih
11
2k
AIコーディング道場勉強会#2 君(エンジニア)たちはどう生きるか
misakiotb
1
250
プロダクト志向ってなんなんだろうね
righttouch
PRO
0
160
Enterprise Web App. Development (2): Version Control Tool Training Ver. 5.1
knakagawa
1
120
ニーリーにおけるプロダクトエンジニア
nealle
0
300
CursorはMCPを使った方が良いぞ
taigakono
1
170
つよそうにふるまい、つよい成果を出すのなら、つよいのかもしれない
irof
1
300
Featured
See All Featured
Embracing the Ebb and Flow
colly
86
4.7k
Facilitating Awesome Meetings
lara
54
6.4k
Designing Experiences People Love
moore
142
24k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
670
The Cost Of JavaScript in 2023
addyosmani
51
8.4k
VelocityConf: Rendering Performance Case Studies
addyosmani
330
24k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
930
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
790
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.8k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Transcript
Navigation Componentͱ FluxΛnanaʹಋೖͨ͠
Young @ nana music Android Engineer
Navigation Component
Navigation Componentͱ • Google I/O 2018ͰՃ • ը໘ભҠͷॲཧΛ؆୯ʹ࣮Ͱ͖Δ • 2019/03/14
Stable Release
Pros • Navigaton Graphʹը໘ભҠ͕໌ࣔతʹදݱ͞ΕΔͨΊɺ༷ͷڞ༗͕؆୯ʹ • XML͚ͩͰભҠઌɾΓઌɾભҠ࣌ͷҾΛΑΓ҆શʹఆٛͰ͖Δ • ભҠ࣌ͷϝιουΛࣗಈੜͯ͘͠ΕΔͷͰɺόάΛੜΈʹ͍͘ • AndroidͳΒͰͷը໘ભҠͷۤ࿑Λղফͯ͘͠ΕΔ
• ը໘ભҠը໘ͷελοΫཧProgrammaticʹಠࣗʹॻ͘ඞཁ͕͋ͬͨ • Activity : Fragment 1:nͷߏɺཧෳࡶͰόάΛੜΈ͍͢ͷͰආ͚ΒΕΔʹ͋ͬͨ • Activity : Fragment 1:1ͷߏɺཧߏ͕γϯϓϧͰਓؾ͕ࠜڧ͍ҹ͕͋ͬͨ • NavigationͰActivity : Fragment 1:n͕جຊߏɻ͜Ε͔ΒActivity / FragmentͷΈ ํ͕มΘͬͯ͘ΔͱࢥΘΕΔ
Cons • ݟͨΒͳ͍ • ࢥΘ͵ͱ͜ΖͰ͍᪴ͨΓόάΛ౿Έͦ͏ʁ
Refs • Navigation Codelab • https://codelabs.developers.google.com/ codelabs/android-navigation/#0
ͬͨ͜ͱ • ϩάΠϯϑϩʔͷϦϓϨΠε
Navigation Graph
Demo
Flux
Fluxͱ • Facebook͕ఏএͨ͠ϑϩϯτͷWebΞϓϦ έʔγϣϯͷΞʔΩςΫνϟ • Droidkaigi2019ͷConference app 2019Ͱ࠾ ༻ •
Androidͷ։ൃʹ͓͍ͯಋೖࣄྫ͕૿͍͑ͯ Δ
Fluxͱ Refs : https://github.com/DroidKaigi/conference-app-2019
Pros • σʔλ͕ҰํʹྲྀΕɺෳࡶͳॲཧͰ͖ͬ͢Γͱॻ͘͜ͱ ͕Ͱ͖Δ • ϏδωεϩδοΫΛݺͿॲཧɺViewʹঢ়ଶΛө͢Δॲ ཧ͕͞ΕΔ • ഥखͷΑ͏ͳΞϓϦΞΫγϣϯͷෳը໘ͷViewͷ өॲཧͳͲΛɺڞ௨Խ͖ͭͭ͠Ε͍ʹॻ͘͜ͱ͕Ͱ͖Δ
• FluxͷϑϩʔͷதͰɺViewͷөॲཧΛఆٛͰ͖Δ
Cons • FluxΛߏ͢ΔΈʹର͢Δֶशίετ͕ ͔͔Δ • ߏཁૉͱͳΔLiveDataɺViewModelɺ Coroutines/RxJavaͳͲͷࣝඞཁ • MVPMVVM͔ΒͷҠߦগ͠େม
Refs • DroidKaigi / conference-app-2019 • https://github.com/DroidKaigi/conference- app-2019
ͬͨ͜ͱ • FluxͷࠎΈ෦ΛConference app 2019ͷιʔείʔυΛࢀߟʹ࣋ͬ ͯ͘Δ • MVVM͔ΒҠߦ • ViewModelΛActionCreatorʹஔ͖͑Δ
• ViewModelʹఆٛͨ͠LiveDataΛStoreʹҠ͢ • DatabindingViewͷInstanceੜͷΈʹݶఆ͢Δ • ViewͷΠϯλϥΫγϣϯFragmentͰཧ͢Δ
Demo
Conclusion • ϘΠϥʔϓϨʔτίʔυ͕ݮΓɺ։ൃ͕γϯϓϧʹͳ͍ͬͯ͘ • αϯϓϧ͕ެ։͞Ε͍ͯΔͷͰಋೖ͕؆୯ • Android։ൃʹ͓͍ͯConference appCodelabͳͲͷ໌ࣔతͳࢦΛϑΥϩʔ ͢Δ͜ͱવʹͳΓɺڞ௨ݴޠʹͳΓͭͭ͋Δ •
JavaͰॻ͔ΕͨϨΨγʔͳίʔυগͣͭ͠ϦϓϨΠεΛਐΊΒΕΔͱྑͦ͞͏ • KotlinԽ -> DatabindingԽ -> FluxԽ • nana ͷAndroid։ൃࠓޙɺNavigationͱFluxͰ