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
99
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
GoLab2025 Recap
kuro_kurorrr
0
3.5k
Denoのセキュリティに関する仕組みの紹介 (toranoana.deno #23)
uki00a
0
220
LLMで複雑な検索条件アセットから脱却する!! 生成的検索インタフェースの設計論
po3rin
4
1.1k
CSC307 Lecture 03
javiergs
PRO
1
470
Claude Codeの「Compacting Conversation」を体感50%減! CLAUDE.md + 8 Skills で挑むコンテキスト管理術
kmurahama
1
720
AtCoder Conference 2025「LLM時代のAHC」
imjk
2
650
re:Invent 2025 トレンドからみる製品開発への AI Agent 活用
yoskoh
0
610
CSC307 Lecture 02
javiergs
PRO
1
760
GISエンジニアから見たLINKSデータ
nokonoko1203
0
190
QAフローを最適化し、品質水準を満たしながらリリースまでの期間を最短化する #RSGT2026
shibayu36
0
1.7k
PostgreSQLで手軽にDuckDBを使う!DuckDB&pg_duckdb入門/osc25hi-duckdb
takahashiikki
0
240
メルカリのリーダビリティチームが取り組む、AI時代のスケーラブルな品質文化
cloverrose
2
460
Featured
See All Featured
Crafting Experiences
bethany
0
27
Why Our Code Smells
bkeepers
PRO
340
58k
Statistics for Hackers
jakevdp
799
230k
Paper Plane
katiecoart
PRO
0
45k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Designing Powerful Visuals for Engaging Learning
tmiket
0
200
Leo the Paperboy
mayatellez
3
1.3k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
2
3.9k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
RailsConf 2023
tenderlove
30
1.3k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
The Limits of Empathy - UXLibs8
cassininazir
1
200
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Ͱ