LeoAndo / AndroidComposeMigrationDemo

compose-migration
0 stars 0 forks source link

開発メモ #2

Open LeoAndo opened 1 year ago

LeoAndo commented 1 year ago

結論

マイグレーションの流れ

refs

https://developer.android.com/codelabs/jetpack-compose-migration?hl=ja#1 https://developer.android.com/jetpack/compose/migrate/strategy?hl=ja#removing-fragments https://developer.android.com/jetpack/compose/designsystems/views-to-compose?hl=ja

LeoAndo commented 1 year ago

composeとViewのMaterialデザイン内部実装の差分

既存Viewの内部で使用しているMaterial スタイルの実装がviewとcomposeでかなり異なる。(例えば使っているColor定義が違うなど。) 今回の例で言えば、BottomNavigationBarがそうだった! これは Material 3でも同じことが起きるはず

なのでBridge ThemeのMdcThemeを削除しComposeに完全移行する際は、Compose側のデフォルト値を採用したいので、それが可能かチーム内で相談する必要がある。なので、(Compose側のデフォルト値を書き換えてまで、既存ViewにMaterial デザインを寄せたいのであれば引き続きBridge Themeを使うべき)

今回は試しにBottomNavigationで比較したいと思う。

view版BottomNavigationがデフォルトで使っているcolor値

bottomNavigationStyleスタイルをデフォルトで使用していてmaterial color値がcomposeと違う!(?attr/colorSurfaceを使ってた)

https://github.com/material-components/material-components-android/blob/master/lib/java/com/google/android/material/bottomnavigation/BottomNavigationView.java#L103 https://github.com/search?q=repo%3Amaterial-components%2Fmaterial-components-android%20Widget.MaterialComponents.BottomNavigationView&type=code

<item name="bottomNavigationStyle">@style/Widget.MaterialComponents.BottomNavigationView</item>
スクリーンショット 2023-07-18 8 27 23 スクリーンショット 2023-07-18 8 36 10 スクリーンショット 2023-07-18 8 36 55

compose版BottomNavigationがデフォルトで使っているcolor値

primaryVariant: (Lightテーマならprimaryカラー, darkならsurface)

スクリーンショット 2023-07-18 7 45 09 スクリーンショット 2023-07-18 7 46 17