JetpackのNavigationは画面遷移を手軽に書けて非常に便利です。
中でもargumentsを型安全に取り扱えるSafe Argsはとても重宝します。
ただし、Safe Argsに入れるのがintやStringではなく自作クラスの場合は注意が必要です。
Safe Argsで自作クラスを使う場合
クラスがParcelable
かSerializable
ならばSafe Argsに含めることができます(Safe ArgsはBundle
のラッパーであるため)。自作クラスと書きましたが、自作でもライブラリのクラスでも同じです。
開発時はそれで普通に使えるかと思いますが、Releaseビルドにした途端に
android.view.InflateException: Binary XML file line #33: Binary XML file line #33: Error inflating class fragment
といったようなエラーが発生したりします。
proguardに追加
Releaseビルドで発生することから想像できるとおり、proguardに記述が必要です。
com.example.hoge.Status
クラスをSafe Argsで使用するならば
-keepnames class com.example.hoge.Status
としてクラス名が難読化されないようにする必要があります。