Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
98
Navigation ComponentとFluxをnanaに導入した
社内勉強会 #深いい勉強会 の資料です
Young
March 25, 2019
Tweet
Share
More Decks by Young
See All by Young
GitbookからOpenApiへのAPIドキュメント移行
akihitookada
0
95
Androidアプリにおけるモジュラライズの進め方
akihitookada
0
240
MotionLayoutを使ってクリスマスなアプリを作った
akihitookada
0
160
OrmaからRoomに移行する 2nd Season
akihitookada
1
770
ミャンマーのすゝめ
akihitookada
2
97
Android版 nanaとデータの永続化とDatabase
akihitookada
2
220
Android Team @ nana music, Inc.
akihitookada
0
96
ConstraintLayoutを理解する
akihitookada
0
110
OpenSTFとJenkinsで 社内のAndroid端末を有効活用する
akihitookada
0
290
Other Decks in Programming
See All in Programming
AIコーディングエージェント(Gemini)
kondai24
0
260
Giselleで作るAI QAアシスタント 〜 Pull Requestレビューに継続的QAを
codenote
0
270
Spinner 軸ズレ現象を調べたらレンダリング深淵に飲まれた #レバテックMeetup
bengo4com
0
140
Graviton と Nitro と私
maroon1st
0
130
re:Invent 2025 のイケてるサービスを紹介する
maroon1st
0
150
エディターってAIで操作できるんだぜ
kis9a
0
750
モデル駆動設計をやってみようワークショップ開催報告(Modeling Forum2025) / model driven design workshop report
haru860
0
280
公共交通オープンデータ × モバイルUX 複雑な運行情報を 『直感』に変換する技術
tinykitten
PRO
0
160
C-Shared Buildで突破するAI Agent バックテストの壁
po3rin
0
410
Context is King? 〜Verifiability時代とコンテキスト設計 / Beyond "Context is King"
rkaga
10
1.4k
組み合わせ爆発にのまれない - 責務分割 x テスト
halhorn
1
160
マスタデータ問題、マイクロサービスでどう解くか
kts
0
110
Featured
See All Featured
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
25
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
0
1k
Raft: Consensus for Rubyists
vanstee
141
7.2k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
The Curse of the Amulet
leimatthew05
0
4.6k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
130
Designing for Performance
lara
610
69k
Navigating Weather and Climate Data
rabernat
0
49
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
150
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
160
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Ͱ