バージョン情報
plugins { kotlin("jvm") version "1.4.20" id("org.jetbrains.compose") version "0.2.0-build132" }
Jetpack Composeに入門してみる
動機
- モダンなJavaのGUI環境の選択肢がほぼ無い
- Android開発者であるので元はAndroid, Kotlinのものだからとっつきやすそう
- ElectronとかWebの部分は大変そう、セットアップが大変というイメージがある
背景技術
宣言的UI
KotlinのDSLでUIが書けるのが最大の特徴だと思いますが、他のDSLと大きくやっていることが違うので最初は戸惑います。これは別で記述します。
レンダリング
AndroidのJetpack Composeでも基本はCanvasに直接描画の命令を書いています。(Androidはネイティブにも変換できるらしい)
描いているだけなので描いている部分を各プラットフォーム向けに作成すれば動くのでDesktopでもWebでも動きます。
オープンなグラフィックライブラリとして skia
というものがあり、そのJavaラッパーである skija
をJetbrainsが開発しています。レンダリングにはこれが使用されています。
https://github.com/JetBrains/skija
開始
常に変わっていくので公式ドキュメントを参照してください。
注意点としては kotlinx.serialization
はJetpack Composeの依存を含むとビルドできないのでモジュールを分けてください。
https://github.com/JetBrains/compose-jb/blob/master/tutorials/Getting_Started/README.md
基本的な記述方法は以下が参考になります。
https://developer.android.com/jetpack/compose/state