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
5分で完全理解するNav3との向き合い方
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Tomoki Yamashita
June 25, 2025
Technology
280
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
5分で完全理解するNav3との向き合い方
Tomoki Yamashita
June 25, 2025
More Decks by Tomoki Yamashita
See All by Tomoki Yamashita
ハードウェア連携が必要なプロダクトにおける自動テストの書き方
tomorrowkey
0
140
STORES_決済端末2ってAndroidなんでしょ__ほんとうかな__.pdf
tomorrowkey
0
69
モバイルとRubyとわたし
tomorrowkey
0
72
BiDiってなんだ?
tomorrowkey
2
770
文字列操作の達人になる ~ Kotlinの文字列の便利な世界 ~ - Kotlin fest 2025
tomorrowkey
2
1.8k
Ebisu mobile #11 - Predictive Backに対応する
tomorrowkey
1
170
AI協同時代にモバイルエンジニアが備えるべき開発環境の話
tomorrowkey
2
460
テストを楽に書きたい
tomorrowkey
2
440
Gradle Build Scanを使ってビルドのことを知ろう potatotips #87
tomorrowkey
2
1.5k
Other Decks in Technology
See All in Technology
[RSJ26] Building a VLA Model Based on Self-Distilled Classification
keio_smilab
PRO
0
170
APIセキュリティを組織で実現するには~注力する点と設計・実装に入れたい対策~
riiimparm
3
890
現場の暗黙知を継承するAIエージェント — 対話から生まれる長期記憶と Skills
atsukish
0
220
IDperturb: Enhancing Variation in Synthetic Face Generation via Angular Perturbation
sansantech
PRO
0
110
本番に近いテストをもっと手軽に - Postmanで広がるAPIテストの世界 / Expanding the World of API Testing with Postman
yokawasa
1
220
みてねにおけるAI-DLC導入活動とAIドリブン開発の現在地/JAWS-UG AI-DLC #2
isaoshimizu
2
330
PM領域でのAI Agentの活用
lycorptech_jp
PRO
0
230
最新技術に積極チャレンジ!EKS共通基盤のこれまでとこれから
daitak
0
290
AI駆動開発を組織で促すために
lycorptech_jp
PRO
7
9.2k
AIエージェントを雇う前に決める5つのこと
knishioka
1
140
プロダクト思考 × 基盤思考を AIで実現する Compound Engineering
tkc66buzz
1
160
[RSJ26] AnoleVLA: Lightweight Vision-Language-Action Model with Deep State Space Models for Mobile Manipulation
keio_smilab
PRO
0
120
Featured
See All Featured
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.2k
A Tale of Four Properties
chriscoyier
163
24k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
290
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
250
The untapped power of vector embeddings
frankvandijk
2
1.9k
How to Talk to Developers About Accessibility
jct
2
530
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Exploring anti-patterns in Rails
aemeredith
3
490
Embracing the Ebb and Flow
colly
88
5.2k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
550
Transcript
STORES 株式会社 5分で完全理解するNav3との向き合い方 Ebisu mobile #10 〜WWDC & Google I/O
スペシャル!〜 2025.06.26 @tomorrowkey
自己紹介
自己紹介 • 山下智樹 / @tomorrowkey • STORES株式会社 - STORES ブランドアプリ
• Android エンジニア 3
Nav3の話をしたい
Jetpack Navigationってなに • 画面遷移を実現するためのAndroidのライブラリ • NavigationはFragmentベースの時代に作られたライブラリであり、XMLに 画面の遷移先や引数を定義して、画面遷移を宣言的に書けるライブラリだっ た。 • Navigation
Composeの登場によりCompose時代でも画面遷移を定義できる ようになった。 5
Nav2のデメリット • Fragment時代に作られたライブラリなので、Jetpack Composeとの親和性 が完全ではなかった。 • バックスタックの管理がライブラリ任せであり、テクニカルな画面遷移を実装 しようとすると、高度な知識とワークアラウンドが必要となった。 • Nav2では画面をNavHostいっぱいに表示するため、TabletやFoldableなど画
面の大きさを活かしたレイアウトを表示をさせることが難しかった。 6
Nav3の誕生
たった2つのNav3のポイント You own the back stack バックスタックはただのListです。 その管理はライブラリではなく自分自身で所有し、コントロールします。 Get out
of your way どのようにナビゲーションしたいかは、開発者である自分自身が一番分かっている。 Nav3ではオープンで拡張可能なように設計されているため、そのアプリのユースケースに併せてカスタマイズが可能になりました。 8
サンプルコード val backStack = remember { mutableStateListOf<Any>(RouteA) } NavDisplay( backStack
= backStack, onBack = { backStack.removeLastOrNull() }, entryProvider = entryProvider { entry<RouteA> { ContentGreen("Welcome to Nav3") { Button(onClick = { backStack.add(RouteB("123")) }) { Text("Click to navigate") } } } entry<RouteB> { key -> ContentBlue("Route id: ${key.id} ") } } ) 9
Nav3はすべてを解決するのか • Nav3ではすべてのアプリのユースケースをカバーするアプローチではなく、 多くのユースケースをカバーするためのコンポーネントが提供されるように なった。 • 一見柔軟性が増えたように聞こえるが、これまでライブラリで管理されていた DeepLinkや状態の管理は開発者が行わないといけなくなった。 10
Nav3にどう立ち向かうか https://github.com/android/nav3-recipes によくあるユースケースのためのサ ンプルコードがあります。 - NavigationRail or NavigationBar - ログインを題材にした条件付き画面遷移
- Scenes を複雑なカスタムレイアウト - DeepLinks (まだコードはない) - Android XR Support (まだコードはない) - 画面間の戻り値 (まだコードはない) 11
これからのNav3に期待 - まだAlpha版なのでプロダクションユースは推奨されていません - 触ってみてフィードバックをIssue Trackerになげましょう 12
おわり
参考文献 - Android Developers Blog: Announcing Jetpack Navigation 3 https://android-developers.googleblog.com/2025/05/announcing-jetpack-navigation-3-for-compose.html
- android/nav3-recipes: Implement common use cases with Jetpack Navigation 3 https://github.com/android/nav3-recipes - Navigating the future with Jetpack Navigation 3 - Core Concepts - YouTube https://www.youtube.com/watch?v=opLYavQHBB8 14