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
AndroidX Navigationを導入した話 / Introducing Android...
Search
Masatoshi Kubode
February 28, 2019
Programming
1.7k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AndroidX Navigationを導入した話 / Introducing AndroidX Navigation
Masatoshi Kubode
February 28, 2019
More Decks by Masatoshi Kubode
See All by Masatoshi Kubode
AIチャットの改善から見えた、良いAI体験とは / What Constitutes a Good AI Experience: Insights from Improving AI Chat
kubode
0
170
3リポジトリーを2ヶ月でモノレポ化した話 / How I turned 3 repositories into a monorepo in 2 months
kubode
0
260
ウォンテッドリーの「ココロオドル」モバイル開発 / Wantedly's "kokoro odoru" mobile development
kubode
2
1.4k
Firebase Dynamic Linksの代替手段を自作する / Create your own Firebase Dynamic Links alternative
kubode
0
740
技術を根付かせる / How to make technology take root
kubode
1
510
WantedlyでのKotlin Multiplatformの導入と課題 / Kotlin Multiplatform Implementation and Challenges at Wantedly
kubode
0
660
Google Play Consoleデベロッパー アカウントの確認 / Verifying your Play Console developer account
kubode
1
1.4k
Make your Android app into Multiplatform app
kubode
0
250
ウォンテッドリーにおけるモバイルアプリ開発 / iOSDC Japan 2024 Sponsor Session
kubode
1
1.5k
Other Decks in Programming
See All in Programming
KotlinConf Extended South Korea 2026 Keynote
l2hyunwoo
0
120
freeeにおけるEvalsの実践例の紹介
freee
PRO
0
140
「人を評価する AI」の設計と実装
ryoyanara
0
230
tsc.rip を支える技術 / Kyoto.なんか #8
susisu
0
120
[PyCon KR 2026] More Variants, More Diversity for AI Accelerators
achimnol
0
100
異なる設計思想のフレームワークを経験して得た学び
amekuhideki
1
180
仕様駆動開発へのトライを機に チームに適合する手法を模索し続けている話
freee
PRO
0
590
改善しないと、タスクが回らない。 “てんこ盛りポジション” を引き継いだ情シスの、入社3ヶ月の業務改善録
krm963
0
280
わからない話を追いかけたら、プログラミング言語を作る側にいた
ydah
3
540
Loosening the Reins: Go Generics Get More Flexible
kuro_kurorrr
0
280
How I Won Prize Money at a Hackathon Using Codex and Symphony Alpha
yasei_no_otoko
0
120
複数の Claude Code が"放置"されてしまう問題をCLI ダッシュボードを自作して解決した話
sumihiro3
1
720
Featured
See All Featured
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
400
Designing Experiences People Love
moore
143
24k
So, you think you're a good person
axbom
PRO
2
2.1k
Everyday Curiosity
cassininazir
0
290
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
Design in an AI World
tapps
1
290
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
490
BBQ
matthewcrist
89
10k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
480
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
470
WCS-LA-2024
lcolladotor
0
800
We Have a Design System, Now What?
morganepeng
55
8.3k
Transcript
©2019 Wantedly, Inc. "OESPJE9/BWJHBUJPO Λಋೖͨ͠ QPUBUPUJQT ٱอग़խढ़ 2019/02/28
©2019 Wantedly, Inc. ٱอग़խढ़ 8BOUFEMZ ओʹ8BOUFEMZ7JTJUͷ"OESPJEΞϓϦΛ։ൃ͍ͯ͠·͢ɻ ઈࢍϦχϡʔΞϧதɻ QPUBUPUJQTճ࿈ଓग़தɻ ,PUMJO 1PLFNPO(P
ࣗݾհ 5XJUUFS !TXJ[@BSE (JU)VC !LVCPEF
©2019 Wantedly, Inc. "OESPJE9/BWJHBUJPOͱ ͳͥಋೖͨ͠ͷ͔ ࣮
ൃੜͨ͠ ·ͱΊ ͢͜ͱ
©2019 Wantedly, Inc. "OESPJE9/BWJHBUJPOͱ
©2019 Wantedly, Inc. w "OESPJE9ͷͻͱͭ w چ /BWJHBUJPO$PNQPOFOUT w ͦΖͦΖTUBCMF
ݱ࣌Ͱ3$ w TUBCMFʹͳΔͱਖ਼ࣜʹ"OESPJE9ʹͳͬͯഁյత มߋ͕͋Δ͔ AndroidX Navigationͱ
©2019 Wantedly, Inc. w (6*ͰͷભҠਤ w 9.-Ͱهड़Մ ػೳ
©2019 Wantedly, Inc. w ը໘Ҿ w 4BGF"SHTͰͷܕ҆શͳ 'SBHNFOU"SHTͷੜ w %FFQ-JOLରԠ
w 5SBOTJUJPO"OJNBUJPO w 4IBSFE&MFNFOU ػೳ
©2019 Wantedly, Inc. w BSHVNFOUͷΫϥεΛੜ͢Δ(SBEMF1MVHJO w ܕ҆શʹͳΔ w 'SBHNFOUOFX*OTUBODFͱ͔࡞Βͳͯ͘Α͍ w
/BWJHBUJPOΘͣ͜Ε͚ͩΛಋೖ͢Δέʔε SafeArgs apply plugin: "androidx.navigation.safeargs.kotlin"
©2019 Wantedly, Inc. ͳͥಋೖͨ͠ͷ͔
©2019 Wantedly, Inc. w ΦϯϘʔσΟϯάΛϦχϡʔΞϧ w "DUJWJUZͰϑϩʔΛཧ w ෳͷը໘'SBHNFOUͰ࡞Δ ͳͥಋೖͨ͠ͷ͔
©2019 Wantedly, Inc. OnboardingActivity ϑϩʔͷߏ InitialFragment WelcomeFragment SelectOccupationFragment MainActivity
©2019 Wantedly, Inc. w ݅ذ͕ ͋Δ w ύϥϝʔλʔ ͷड͚͠ w
جຊతʹ Ұํ௨ߦ ࣮ࡍͷϑϩʔ
©2019 Wantedly, Inc. w ΞϓϦશମͷϦχϡʔΞϧΛਐΊ͍ͯΔ w .VMUJNPEVMFԽ͍ͯ͠Δ w 'FBUVSFؒͷը໘ભҠΛͲ͏͢Δ͔ w
ˠ%SPJE,BJHJͷ࣮͕ࢀߟʹͳΓͦ͏ w ˠ/BWJHBUJPOΛࢼ͍ͨ͠ ଞͷಋೖཧ༝
ϖʔδλΠτϧ ϖʔδαϒλΠτϧ ©2019 Wantedly, Inc. /BWJHBUJPOΔͧ
©2019 Wantedly, Inc. ࣮
©2019 Wantedly, Inc. ۭͷ'SBHNFOUΫϥεΛͯ͢࡞Δ SFTOBWJHBUJPOOBWJHBUJPOYNMΛ࡞Δ (6*Ͱը໘Λஔ
"DUJWJUZʹ/BW)PTU'SBHNFOUΛஔ 'SBHNFOUͰ/BW$POUSPMMFSOBWJHBUFΛॻ͘ ࣮ͷྲྀΕ
©2019 Wantedly, Inc. ը໘ͷஔ
©2019 Wantedly, Inc. ભҠΛͭͳ͛Δ
©2019 Wantedly, Inc. NavHostFragmentͷஔ <androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"
> <fragment android:id="@+id/nav_host_fragment" android:name="androidx.navigation.fragment.NavHostFragment" android:layout_width="match_parent" android:layout_height="match_parent" app:defaultNavHost="true" app:navGraph="@navigation/onboarding_navigation" /> </androidx.coordinatorlayout.widget.CoordinatorLayout>
©2019 Wantedly, Inc. NavController.navigateͰભҠ // InitialFragment override fun onSignUpSuccessful(userName: String)
{ findNavController() // KTXͷ֦ு .navigate( // safeargsͰੜ͞Εͨίʔυ InitialFragmentDirections .actionInitialFragmentToEmailWelcomeFragment(userName) ) }
©2019 Wantedly, Inc. ൃੜͨ͠
©2019 Wantedly, Inc. w όοΫΩʔͰΕͯ͠·͏ w ը໘͝ͱʹঢ়ଶΛ͍࣋ͬͯΔͷͰΔͱόάΔ w 1PQ#FIBWJPSͰΓઌࢦఆͰ͖Δ͕ɾɾɾ w
Βͤͳ͘͢Δ͜ͱ/BWJHBUJPOͰͰ͖ͳ͍ 1
ϖʔδλΠτϧ ϖʔδαϒλΠτϧ ©2019 Wantedly, Inc. "OESPJE9"DUJWJUZ
©2019 Wantedly, Inc. w BEE0O#BDL1SFTTFE$BMMCBDL͕Ճ w όοΫΩʔ੍ޚΛ'SBHNFOUͰ࣮Ͱ͖Δ AndroidX Activity //
WelcomeFragment override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) // Disable back key requireActivity().addOnBackPressedCallback( viewLifecycleOwner, OnBackPressedCallback { true } ) }
©2019 Wantedly, Inc. ൃੜͨ͠
©2019 Wantedly, Inc. w pUT4ZTUFN8JOEPXT ͕ޮ͔ͳ͍ w /BW)PTU'SBHNFOU͕ 'SBNF-BZPVUΛ͍ͬͯΔ w
'SBNF-BZPVU pUT4ZTUFN8JOEPXT͕ޮ͔ͳ͍ 2
©2019 Wantedly, Inc. 2ͷղܾࡦ class FitsSystemWindowsNavHostFragment : NavHostFragment() { override
fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { // CoordinatorLayoutfitsSystemWindowsʹରԠ͍ͯ͠Δ return CoordinatorLayout(inflater.context).apply { fitsSystemWindows = true id = this.id // ͜ΕNavHostFragmentͷ࣮ͱಉ͡ } } }
©2019 Wantedly, Inc. ·ͱΊ
©2019 Wantedly, Inc. w ࢼݧతʹಋೖ͚ͨ͠Ͳ͍উख͕Α͔ͬͨ w 'SBHNFOU5SBOTBDUJPO w Γͳ͍ͱ͜Ζ͋Δ͕ଞͷ"OESPJE9Ͱิ͑ͨ w
কདྷతʹશମΛ/BWJHBUJPOʹஔ͖͍͑ͨ ·ͱΊ
ϖʔδλΠτϧ ϖʔδαϒλΠτϧ ©2019 Wantedly, Inc. 5IBOLZPV