Open4

ComposeMultiplatformのセットアップ

ことりんことりん

ComposeMultiplatformのWizardからプロジェクトのひな形をダウンロードした後、いくつか修正する必要があったのでメモ。AndroidとDesktop、Server(Ktor)を対象としました。

ことりんことりん

AndroidSDKのパス

プロジェクトのディレクトリ直下にあるlocal.propertiesのsdk.dirにAndroidSDKのパスを通す必要がありました。

local.properties
sdk.dir="AndroidSDKのパス"
ことりんことりん

Composeの@Previewができない!

composeAppのbuild.gradle.ktsに以下を追記

build.gradle.kts(composeApp)
android {
    ...
    buildFeatures {
        compose = true
    }
    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.8"
    }
    ...
}

これでPreviewが使えるようになりました。

ことりんことりん

KtorのAutoReload

マルチプロジェクトでも設定方法は変わりません。serverモジュールのApplication.ktのmain関数を以下のように修正

Application.kt
fun main() {
    embeddedServer(Netty, port = SERVER_PORT, host = "0.0.0.0", watchPaths = listOf("classes", "resources")) {
        module()
    }.start(wait = true)
}

後はcompileKotlinタスクを-tオプションを付けて実行すれば変更に応じて自動でコンパイルされ、ビルドの成果物をKtorが参照するようになります。