Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Navigation ComponentとFluxをnanaに導入した
Search
Young
March 25, 2019
Programming
110
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Navigation ComponentとFluxをnanaに導入した
社内勉強会 #深いい勉強会 の資料です
Young
March 25, 2019
More Decks by Young
See All by Young
GitbookからOpenApiへのAPIドキュメント移行
akihitookada
0
100
Androidアプリにおけるモジュラライズの進め方
akihitookada
0
250
MotionLayoutを使ってクリスマスなアプリを作った
akihitookada
0
190
OrmaからRoomに移行する 2nd Season
akihitookada
1
800
ミャンマーのすゝめ
akihitookada
2
110
Android版 nanaとデータの永続化とDatabase
akihitookada
2
230
Android Team @ nana music, Inc.
akihitookada
0
120
ConstraintLayoutを理解する
akihitookada
0
120
OpenSTFとJenkinsで 社内のAndroid端末を有効活用する
akihitookada
0
300
Other Decks in Programming
See All in Programming
JIS keyboard support in Omarchy
lef237
0
150
RAG の “R” を Swift で覗いてみる 〜「意味から探す」検索の仕組み〜
nao_randd
0
170
Event is what happens
moro
2
1.3k
SalesForceを内製化!? ~ HR事業を支える顧客管理基盤のインフラを大公開 ~
oku053
0
190
Jetpack Compose Mechanisms
skydoves
3
860
npm との違いを手がかりにGo の依存管理を理解したい
optim
0
1k
Vue Fes Japan の “作る側”に関わってみて
naokihaba
1
180
個人開発者よ、Honoを使え(おじさんver)
tanahiro2010
2
270
作って学ぶSpring BootのAuto Configuration / JJUG Night Seminar 2026-10-19
rshindo
0
200
Atomic Design, Enforced: Scaling Mobile Design Systems (next.app devCon / droidCon Berlin 2026)
steliosf
PRO
0
180
Kotlinの15年とServer-Side Kotlin
n_takehata
1
160
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
2
1.2k
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
77
5.6k
Side Projects
sachag
456
43k
The SEO identity crisis: Don't let AI make you average
varn
0
590
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
330
BBQ
matthewcrist
90
10k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
640
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
450
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
310
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
610
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
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Ͱ