gen0083 / android-engineer-codechechek

https://gen0083.github.io/android-engineer-codechechek/
Apache License 2.0
0 stars 0 forks source link

Themeを適用する #91

Closed gen0083 closed 3 weeks ago

gen0083 commented 3 weeks ago

AndroidにEdgeToEdgeの適用もしたい

gen0083 commented 3 weeks ago

Multiplatformの場合Themeはどこで定義するのが適切なのだろうか

1つのテーマ設定でできるだけ全部統一したいところだが、android特有のものに依存しているためそれはちょっと難しい MaterialThemeBuilderのテーマをそのまま適用しようとするのは少なくとも無理

Shareモジュールで基本的な設定はしておいて、Platform特有のものに関しては上書きするという戦略が一番適切そう しかし上書きでやろうとすると、今度はUIコンポーネントをPlatform事に設定することになりはしないだろうか

というかUIを共通利用するのは無理が出てくるのか・・・ Shareモジュールで定義したComposeのAppを各プラットフォームは表示するだけという構造はシンプルな状態でしか成立しなさそう そうなってくるとKMPの利点が失われはしないか? 共通利用できるのはビジネスロジックだけ 複雑なことしている大規模なアプリでしかメリット享受できなくない?

expectでcommonMainに定義して、actualで分散させるのがスマートではあるが、@Composable関数もexpectで定義できるんだろうか?(@Composable関数として)

gen0083 commented 3 weeks ago

Colorを見て特に思ったが、グローバル変数がいっぱいでてきて管理ができそうにない valだからバッティングしてバグることはないんだけども JavaScriptはこれと戦ってきたというのか・・・

gen0083 commented 3 weeks ago

このプロジェクトではuiはshareモジュールで共有する形で作っていくことにした そうするとPreviewが使えなくてデザインが確認できない androidMainにPreviewを配置してみたが、Android Studio上ではPreviewを確認できなかった

gen0083 commented 3 weeks ago

@Previewが動かないのはbuildFeatures.compose = trueを設定していなかったから androidMainでPreviewを配置したら描画されるようになった

ただしcomposeResourceを参照しているせいで描画されないんだけどね・・・結局描画されていない!