skip to content
私的歌詞倉庫

Kotlin Multi Platform(KMP)を使って各プラットフォームのビルドをする

/ 4 min read

Updated:
Table of Contents

はじめに

最近流行っているKotlin Multi Platform(KMP)を使ってみました。ちょっと前までは、「iOSとAndroidのUI以外のロジック部分を共有するために使うもの」というイメージでした。しかし最近では、UI部分も共有化が可能でさらに、Webやデスクトップアプリも作れるようだったので試しに使ってみました。

今回使用したコードはGitHubで公開しています。

GitHub - Tatsumi0000/nct-deck

プロジェクト作成

公式でWizardを提供しているのでそちらを使います。今回はServer以外を選択しました。

Wizardの設定

Wizardの設定

一番下にDOWNLOADボタンがあるのでクリックするとzipファイルがダウンロードできます。

プロジェクトを開いてビルド

ダウンロードしたzipファイルを解凍してプロジェクトを開きます。開くときはAndroid Studioを使います。開くのはそのまま解凍したディレクトリをAndroid Studioで開くだけで大丈夫です。

ビルドする時は、gradleコマンドを実行してもいいのですが、せっかくAndroid Studioを使っているので公式に則って、ビルドボタンで各プラットフォームのビルドをできるようにします。

ビルド設定はスクリーンショットにあるEdit Configurationから設定できます。

Edit Configuration

Edit Configuration

iOSのビルド設定

Xcodeをダウンロードしていることが前提です。

Edit Configuration を開いて左上にある +ボタンをクリックするとiOS Application があるのでこちらから設定します。

Screenshot 2024-06-25 at 23.31.34.png

Xcode project fileに、iosApp/iosApp.xcodeproj を指定します。Execution target にはiOSのシミュレータを選択します(今回は一番最新そうなiPhoneにしました)。

iOSのビルド設定例

iOSのビルド設定例

右下のOK ボタンをクリックしてビルドボタン(緑の再生ボタンみたいなの)をクリックするとiPhoneが立ち上がります。

ビルドボタン

ビルドボタン

デスクトップとWeb

デスクトップとWebも同じように設定します。

Edit Configuration を開いて左上にある +ボタンをクリックするとGradleがあるのでこちらか設定します。

Gradleの場所

Gradleの場所

Runという項目があるのでデスクトップの場合は

Terminal window
desktopRun -DmainClass=MainKt --quiet

Webの場合は

Terminal window
wasmJsBrowserRun -t --quiet

を設定して、ビルドボタンをクリックするとそれぞれ立ち上がります。

デスクトップのビルド

デスクトップのビルド

Webのビルド

Webのビルド

終わりに

今回はKMPを使ってAndroid、iOS、デスクトップ、Webのアプリを作るサンプルを動かしてみました。Wizardと公式のドキュメントが優秀すぎてかなり簡単にビルドがまで出来ました。

Wizardで作ったプロジェクトは初めから、Version Catalogの設定されていたのも良かったです。

ただし、WebはAlpha、iOSはBetaなので注意が必要だなとも思いました。

これからどんどんコードを書いていくぞ!!!!

参考文献