プロダクト ニュース

Jetpack Navigation 3 が安定版になりました

所要時間: 3 分
Don Turner
デベロッパー リレーション エンジニア

Jetpack Navigation 3 バージョン 1.0 が安定版になりました 🎉。今すぐ本番環境アプリでご使用ください。JetBrains はすでに KotlinConf アプリで使用しています

Navigation 3 は、Jetpack Compose の状態をサポートするためにゼロから構築された新しいナビゲーション ライブラリです。バックスタックを完全に制御し、ナビゲーションの状態を保持し、アダプティブ レイアウト(リストと詳細など)を簡単に作成できます。JetBrains のクロスプラットフォーム バージョンもあります

新しいライブラリが必要な理由

元の Jetpack Navigation ライブラリ(現在は Nav2)は 7 年前に設計されました。元の目標を十分に達成し、繰り返し改善されてきましたが、アプリの構築方法が根本的に変わりました。

宣言型 UI を使用したリアクティブ プログラミングは、今や標準となっています。Nav3 はこのアプローチを採用しています。たとえば、NavDisplay(画面を表示する Nav3 UI コンポーネント)は、Compose の状態に裏打ちされたキーのリスト(それぞれが画面を表す)を監視し、そのリストが変更されると UI を更新します。

nav-display.png

Nav2 は独自の内部状態を持つため、ナビゲーション状態の信頼できる唯一の情報源を確保することが難しくなる可能性があります。Nav3 では、独自の状態を指定できるため、完全に制御できます。

最後に、柔軟性とカスタマイズ性を高めてほしいというご要望をいただきました。Nav3 では、単一のモノリシック API ではなく、複雑な機能を組み合わせて作成できる、より小さく分離された API(または「ビルディング ブロック」)が提供されます。Nav3 自体もこれらの構成要素を使用して、明確に定義されたナビゲーション ユースケースに適切なデフォルトを提供します。

このアプローチでは、次のことが可能です。

デザインと機能について詳しくは、リリース時のブログ記事をご覧ください。

Navigation 2 から移行する

すでに Nav2、特に Navigation Compose を使用している場合は、Nav3 への移行を検討してください。この移行をサポートする移行ガイドも用意されています。主な手順は次のとおりです。

  1. navigation 3 の依存関係を追加します。
  2. ナビゲーション ルートを更新して NavKey を実装します。Nav3 を使用するためにルートがこのインターフェースを実装する必要はありませんが、実装すると、Nav3 の rememberNavBackStack 関数を利用して永続的なバックスタックを作成できます。
  3. ナビゲーションの状態を保持して変更するクラスを作成します。バックスタックはここに保持されます。
  4. NavController をこれらのクラスに置き換えます。
  5. デスティネーションを NavHost の NavGraph から entryProvider に移動します。
  6. NavHost を NavDisplay に置き換えます。

AI エージェントの移行をテストする

AI エージェントを使用して移行ガイドを読み、プロジェクトで手順を実行することを試すことをおすすめします。Gemini in Android Studio のエージェント モードでこれを試すには:

  • このガイドの Markdown バージョンをプロジェクトに保存します。
  • 「このプロジェクトを Navigation 3 に移行する」というプロンプトをエージェントに貼り付けます(ただし、Enter キーは押さないでください)。
  • 「@migration-guide.md」と入力します。これにより、ガイドがエージェントのコンテキストとして提供されます。

AI エージェントが行った変更は必ず慎重に確認してください。AI エージェントは間違えることがあります。

お客様またはお客様のエージェントのパフォーマンスについて、ぜひこちらからフィードバックをお送りください

一般的なシナリオのナビゲーション レシピ

一般的だがニュアンスのあるユースケースについては、レシピ リポジトリがあります。これは、特定の方法で Nav3 API を組み合わせる方法を示しています。レシピを選択または変更して、特定のニーズに対応できます。レシピが人気を集めた場合は、そのレシピのニュアンスのない部分をコアの Nav3 ライブラリまたはアドオン ライブラリに「昇格」させることを検討します。

code-recipes.png

現在、次のレシピを含む 19 個のレシピがあります。

現在、ディープリンクのレシピKoin の統合に取り組んでおり、他にも多くの計画があります。JetBrains のエンジニアが、Compose Multiplatform バージョンのレシピも公開しています。

レシピの作成を希望する一般的なユースケースがある場合は、レシピ リクエストを送信してください。

概要

Nav3 を使い始めるには、ドキュメントレシピをご覧ください。また、1 週間を通して、以下のような技術コンテンツもご用意しています。

  • モジュール化、アニメーション、アダプティブ レイアウトをカバーする API の詳細な動画。
  • Nav3 を構築したエンジニアとのライブ質問募集セッション(AMA)。

Nav3 スポットライト ウィークは 2025 年 12 月 1 日に開始されます。


いつものように、問題が見つかった場合は、こちらからご報告ください

作成者:

続きを読む