Closed gen0083 closed 3 weeks ago
Multiplatformの場合Themeはどこで定義するのが適切なのだろうか
1つのテーマ設定でできるだけ全部統一したいところだが、android特有のものに依存しているためそれはちょっと難しい MaterialThemeBuilderのテーマをそのまま適用しようとするのは少なくとも無理
Shareモジュールで基本的な設定はしておいて、Platform特有のものに関しては上書きするという戦略が一番適切そう しかし上書きでやろうとすると、今度はUIコンポーネントをPlatform事に設定することになりはしないだろうか
というかUIを共通利用するのは無理が出てくるのか・・・ Shareモジュールで定義したComposeのAppを各プラットフォームは表示するだけという構造はシンプルな状態でしか成立しなさそう そうなってくるとKMPの利点が失われはしないか? 共通利用できるのはビジネスロジックだけ 複雑なことしている大規模なアプリでしかメリット享受できなくない?
expectでcommonMainに定義して、actualで分散させるのがスマートではあるが、@Composable
関数もexpectで定義できるんだろうか?(@Composable
関数として)
Colorを見て特に思ったが、グローバル変数がいっぱいでてきて管理ができそうにない valだからバッティングしてバグることはないんだけども JavaScriptはこれと戦ってきたというのか・・・
このプロジェクトではuiはshareモジュールで共有する形で作っていくことにした そうするとPreviewが使えなくてデザインが確認できない androidMainにPreviewを配置してみたが、Android Studio上ではPreviewを確認できなかった
@Preview
が動かないのはbuildFeatures.compose = true
を設定していなかったから
androidMainでPreviewを配置したら描画されるようになった
ただしcomposeResourceを参照しているせいで描画されないんだけどね・・・結局描画されていない!
AndroidにEdgeToEdgeの適用もしたい