Navigation コンポーネントを使ってみた

developer.android.com

目的

  • Navigation自体は発表直後から存在を知っていたが、利用シチュエーションやメリットがいまいちピンと来ていなかったために特に学習していなかった
  • FlutterでNavigator2.0が出ていて、少し似ている気がしたので興味が出た
  • 画面ごとに画面遷移を管理するのではなく、Raildのrouterの様にルーティングを一箇所でまとめて管理するほうが流れを追いやすく、それを実現するためには良いものなのではと思った

所感

  • nav_graphによって視覚的に画面フローを確認できる。ほとんどのユースケースは起点となる画面からツリー状に遷移フローが生まれるため、それをある程度表現できている
  • パラメータが型安全に授受できる。何だかんだキャストするストレスが発生していたので、助かる
  • やはりSingleActivityを基本とした考え方になるので、既存のActivityをスタックする前提のアプリに入れるハードルはまだ高そうな感じがした。部分的に導入はできるが、混ざるのは結局混乱を招きそう。featureモジュールを切ってそれのユースケースだけ使う、みたいな完全別モノに使うのはアリ
  • Composeとのコンフリクトはありそう。この辺はまだ自分の中にイメージができてない

github.com