アプリ開発備忘録

PlayStationMobile、Android、UWPの開発備忘録

Jetpack Compose Desktopに入門【背景+スタートアップ編】

バージョン情報

plugins {
    kotlin("jvm") version "1.4.20"
    id("org.jetbrains.compose") version "0.2.0-build132"
}

Jetpack Composeに入門してみる

動機

  • モダンなJavaGUI環境の選択肢がほぼ無い
  • Android開発者であるので元はAndroid, Kotlinのものだからとっつきやすそう
  • ElectronとかWebの部分は大変そう、セットアップが大変というイメージがある

背景技術

宣言的UI

KotlinのDSLでUIが書けるのが最大の特徴だと思いますが、他のDSLと大きくやっていることが違うので最初は戸惑います。これは別で記述します。

レンダリング

AndroidJetpack Composeでも基本はCanvasに直接描画の命令を書いています。(Androidはネイティブにも変換できるらしい)
描いているだけなので描いている部分を各プラットフォーム向けに作成すれば動くのでDesktopでもWebでも動きます。
オープンなグラフィックライブラリとして skia というものがあり、そのJavaラッパーである skija をJetbrainsが開発しています。レンダリングにはこれが使用されています。
https://github.com/JetBrains/skija

開始

常に変わっていくので公式ドキュメントを参照してください。
注意点としては kotlinx.serializationJetpack Composeの依存を含むとビルドできないのでモジュールを分けてください。
https://github.com/JetBrains/compose-jb/blob/master/tutorials/Getting_Started/README.md

基本的な記述方法は以下が参考になります。
https://developer.android.com/jetpack/compose/state