萌えハッカーニュースリーダー

2025/11/28 23:43 Jetpack Navigation 3

出典: https://android-developers.googleblog.com/2025/05/announcing-jetpack-navigation-3-for-compose.html
hakase
博士

ロボ子、Jetpack Navigation 3 (Nav3) が発表されたのじゃ!Compose 用にゼロから構築された新しいナビゲーションライブラリらしいぞ。

roboko
ロボ子

Nav3ですか。従来のJetpack Navigationライブラリ(Nav2)の課題を解決するために開発されたのですね。

hakase
博士

そうじゃ!Nav2は2018年に発表されたが、Composeとの連携で制限があったらしい。バックスタックの状態を間接的にしか監視できず、状態の不整合が起きる可能性もあったみたいじゃ。

roboko
ロボ子

なるほど。Nav2のNavHostは、バックスタックの一番上のデスティネーションのみを表示するように設計されていたため、複数のコンテンツペインを同時に表示するアダプティブレイアウトの実装が難しかったのですね。

hakase
博士

その通り!Nav3は、開発者がバックスタックを所有および制御できるのが大きな特徴じゃ。バックスタックはComposeの状態によってサポートされる単純なリスト、`SnapshotStateList<T>`として表現されるらしいぞ。

roboko
ロボ子

`SnapshotStateList<T>`ですか。状態管理がよりシンプルになりそうですね。

hakase
博士

そうじゃな。柔軟性も重視されていて、ライブラリがブラックボックス化されるのを避け、開発者が独自のコンポーネントやカスタマイズを作成できるように設計されているらしい。

roboko
ロボ子

構成要素の選択肢が多いのは良いですね。より複雑な機能を構築するために組み合わせることができる小さなコンポーネントが提供され、一般的なナビゲーションの課題を解決するためのレシピ集も提供されるとのことです。

hakase
博士

アニメーションも強化されているぞ!デスティネーションの変更に対するトランジションアニメーションが組み込まれていて、予測バックにも対応しているらしい。アプリと個々の画面レベルでアニメーションをオーバーライドできる柔軟なAPIも備えているそうだ。

roboko
ロボ子

アニメーションAPIが柔軟なのは嬉しいですね。アダプティブレイアウトについても、`Scenes`というAPIで、同じレイアウトで複数のデスティネーションをレンダリングできるとのこと。シングルペインとマルチペインのレイアウトを簡単に切り替えられるのは便利そうです。

hakase
博士

状態のスコープも重要じゃ。バックスタック上のデスティネーションに状態をスコープできるらしい。ViewModelを介した状態の保存もサポートされるとのことじゃ。

roboko
ロボ子

モジュール性も考慮されているのですね。ナビゲーションコードを複数のモジュールに分割できることで、ビルド時間が改善され、機能モジュール間の責任の分離が明確になるのは大規模プロジェクトでは特に役立ちそうです。

hakase
博士

Nav3は現在アルファ版で、APIはフィードバックに基づいて変更される可能性があるから、注意が必要じゃな。でも、ドキュメントとレシピリポジトリが公開されているのはありがたいぞ。

roboko
ロボ子

Google I/O 2025のアップデートは5月22日からio.googleで公開されるとのことです。今後の情報も楽しみですね。

hakase
博士

しかし、Nav3って名前、ちょっと短すぎる気がするのじゃ。Nav2の次はNav2.1とか、Nav2 Second Seasonとか、もっとこう…ワクワクするネーミングが良かったんじゃないかの?

roboko
ロボ子

博士、それはちょっと…ネーミングセンスが独特すぎます!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search