Closed10

Hello Compose Multiplatform

Nobuhiro ItoNobuhiro Ito

Compose Multiplatform 触ってみたくなったので入門する
ちなみにJetpack Composeも含めてほぼ初見、SwiftUIはやったことある程度のレベル

まずはスタート記事
https://qiita.com/y-mimura/items/9ffdce14dc4ed6110343

kdoctorの出力を参考にセットアップ加えていく
テンプレは今は生成サイトから作ると良いらしい
https://kmp.jetbrains.com/

ダウンロードされたテンプレからサクッと起動できた。
Android StudioからiOSの起動もできるんだね。

Jetpack Compose自体の知識はこれをつまみ食いしながら追いかける
https://developer.android.com/codelabs/jetpack-compose-basics?hl=ja#0

Nobuhiro ItoNobuhiro Ito

Jetpack Composeアーキテクチャ事情がよくわからないので読み物としていくつかつまみ食いしたい
https://zenn.dev/rockname/articles/2a7db5ac4bb516
https://developer.android.com/develop/ui/compose/mental-model?hl=ja
https://speakerdeck.com/bhoomigadhiya/architectural-pattern-for-large-scale-jetpack-compose-apps
(いやMVVMのMは実質MVCのV以外まるっと全部だからそれ以下をどうするかなんだよーー)

ChatGPTに聞いてみた

  • 公式的にはMVVMが推奨される
  • 他には MVI (Model-View-Intent) や Unidirectional Data Flow (UDF) などがある
    • さらにMVIの亜種としてReduxを挙げてきた
    • なんだかMVI見覚えあるな
  • MVVMのMが雑の点について聞いたら、小中規模なら Repository + UseCase + ViewModel で十分で、大規模ならClean Architectureがよいって言っていた。
Nobuhiro ItoNobuhiro Ito

さすがにPreviewないとつらいので、使う方法を調べた。
InteliJ IDEA EAP 251 ならできるらしい。
https://zenn.dev/aldagram_tech/articles/a1e17d619993b4
ただInteliJ IDEAで開くだけだとうまくいかなかったのでプラグインインストールとか。
JDKは入れずとも、プラグインのインストールとSDKの不足インストールが終われば、あとはGradle Syncでいけた。
https://qiita.com/YuukiYoshida/items/d8907714777ddc8f7463

Nobuhiro ItoNobuhiro Ito

ひとまず目標としていたところまでは到達できたのでこのページはいったんクローズ。
Compose Multiplatformというよりも、Jetpack Composeの入門ができて、雰囲気で読んでいたAndroidの実装がちゃんとできそうな印象になったのが大きな収穫だった。

Xamarin.Formsを触ったときのようなモヤモヤ感もなく、普通にiOSでも動いてくれたのも印象深い。
Flutterも試したけど、よりネイティブAPIに近いので個人的にはKotlin Multiplatformの方が良いというのを再確認した。

このスクラップは6ヶ月前にクローズされました