Android Jetpack Navigation が正式版としてリリースされました
2019年3月14日
原文
※英語の勉強と自分用のメモ程度のかなり適当なものです。
予測可能なアプリ内ナビゲーション実装の為のツールとガイド群
今日 Android Jetpack Navigation component の正式版のリリースをお知らせ出来る事を嬉しく思います。
Android Jetpack Navigation component は、堅牢で完全なナビゲーションフレームワークを提供し、困難なナビゲーション開発への挑戦を容易にする、 ライブラリ 、 ツール 、 ガイド をまとめたものです。
Android Jetpack Navigation component で出来る事:
- 端末、スクリーンを問わずに一貫した挙動となるために、UpボタンやBackボタンなどの基本的なユーザーアクションをハンドリングします
- ユーザーにディープリンク経由でどこにでも移動でき、一貫性のある予測可能なナビゲーションを提供します
- 画面遷移時のデータ受け渡しの方安全性を改善し、画面遷移時にアプリがクラッシュする可能性を減らします
- マテリアルデザインに準拠したナビゲーションドロワーやボトムナビゲーションなどのナビゲーションを提供します
- Android Studio 3.3 に付属のNavigation Editorでナビゲーションの流れの視覚化と編集を行えます
Jetpack Navigation component はあなたのアプリがシンプルでも複雑でも一貫していて予測可能なナビゲーションを提供する為の努力を続けています。
ナビゲーションのコードをJetpack Navigationライブラリでシンプルに
Jetpack Navigation component は、アプリのナビゲーションの実装の詳細を気にする事なく、冗長なナビゲーションのコードを取り除く事を可能にします。
あなたのプロジェクトに Jetpack Navigation component を導入する為に、Googleの Maven repositoryで入手可能な Java か Kotlin のナビゲーションのアーティファクトをアプリの build.gradle に追記してください。
build.gradle file
dependencies {
def nav_version = 2.0.0
// Java
implementation "androidx.navigation:navigation-fragment:$nav_version"
implementation "androidx.navigation:navigation-ui:$nav_version"
// Kotlin KTX
implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
implementation "androidx.navigation:navigation-ui-ktx:$nav_version"
}
注意事項: もしまだ androidx.* への移行が済んでいない場合は、android.arch.* の1.0.0のバージョンでも利用可能です。
navigation-runtime: この核となるライブラリはアプリのナビゲーションの構造を提供するナビゲーショングラフを動かします。
navigate() メソッドを呼び出すだけでどのように目的地までナビゲードするかをコントロールできます。これらの目的地は、fragments や activitie などです。
navigation-fragment: このライブラリはナビゲーションランタイムを元に fragment を目的地とする機能を提供します。このライブラリを利用する事で、fragment のトランザクションは自動で管理されます。
navigation-ui: このライブラリを使う事でナビゲーションドロワー、メニュー、下部ナビゲーションをマテリアルデザインに準拠しつつ容易に追加できます。
これらのライブラリは Java API 上に -ktx を接尾辞につける事で Kotlin の有用な言語機能を使う為に Android KTX アーティファクトを提供しています。
ナビゲーションのワークフローをわかりやすくする為のツール
Android Studio 3.3以上で、 Navigation Editor は視覚的にナビゲーショングラフを作成でき、アプリ内でのユーザー体験を管理できます。
manifest mergerツールで統合する事で、Android Studio は自動で特定の画面へのディープリンクを可能にする為に必要な intent filter を生成します。
この機能で、ナビゲーションの目的地に関する設定を行うだけで、URLとあなたのアプリのどんな画面をも関連づける事ができます。
ナビゲーションは時にデータを次の画面に引き渡す必要があります。
例えば、リスト画面はアイテムのIDを詳細画面に渡す必要があるかもしれません。
多くの実行時例外はナビゲーションが渡す事になっているデータの型安全の欠如に起因していますが、これらの例外を再現しデバッグする事は容易ではありません。
Safe Args Gradle Plugin でコンパイル時の型安全を提供する方法を学んでください。
最初の一歩
正しいナビゲーション実装の最適な練習を含んでいる、我々の新しいデベロッパーガイドを確認してください:
初めてみましょう
Jetpack Navigation component をどのようにあたなのアプリで使うかを migration guide と developer guide で確認してください。
We also offer a hands-on codelab and a sample app.
hands-on codelab と サンプルアプリ も提供しています。
実際に Android Jetpack Navigation component が使われている例を見る為に、 GoogleのDigital Wellbeingも確認してみてください。