Kotlin Multi Platform(KMP)を使って各プラットフォームのビルドをする
/ 4 min read
Updated:Table of Contents
はじめに
最近流行っているKotlin Multi Platform(KMP)を使ってみました。ちょっと前までは、「iOSとAndroidのUI以外のロジック部分を共有するために使うもの」というイメージでした。しかし最近では、UI部分も共有化が可能でさらに、Webやデスクトップアプリも作れるようだったので試しに使ってみました。
今回使用したコードはGitHubで公開しています。
プロジェクト作成
公式でWizardを提供しているのでそちらを使います。今回はServer以外を選択しました。
Wizardの設定
一番下にDOWNLOADボタンがあるのでクリックするとzipファイルがダウンロードできます。
プロジェクトを開いてビルド
ダウンロードしたzipファイルを解凍してプロジェクトを開きます。開くときはAndroid Studioを使います。開くのはそのまま解凍したディレクトリをAndroid Studioで開くだけで大丈夫です。
ビルドする時は、gradleコマンドを実行してもいいのですが、せっかくAndroid Studioを使っているので公式に則って、ビルドボタンで各プラットフォームのビルドをできるようにします。
ビルド設定はスクリーンショットにあるEdit Configurationから設定できます。
Edit Configuration
iOSのビルド設定
Xcodeをダウンロードしていることが前提です。
Edit Configuration を開いて左上にある +ボタンをクリックするとiOS Application があるのでこちらから設定します。
Xcode project fileに、iosApp/iosApp.xcodeproj を指定します。Execution target にはiOSのシミュレータを選択します(今回は一番最新そうなiPhoneにしました)。
iOSのビルド設定例
右下のOK ボタンをクリックしてビルドボタン(緑の再生ボタンみたいなの)をクリックするとiPhoneが立ち上がります。
ビルドボタン
デスクトップとWeb
デスクトップとWebも同じように設定します。
Edit Configuration を開いて左上にある +ボタンをクリックするとGradleがあるのでこちらか設定します。
Gradleの場所
Runという項目があるのでデスクトップの場合は
desktopRun -DmainClass=MainKt --quietWebの場合は
wasmJsBrowserRun -t --quietを設定して、ビルドボタンをクリックするとそれぞれ立ち上がります。
デスクトップのビルド
Webのビルド
終わりに
今回はKMPを使ってAndroid、iOS、デスクトップ、Webのアプリを作るサンプルを動かしてみました。Wizardと公式のドキュメントが優秀すぎてかなり簡単にビルドがまで出来ました。
Wizardで作ったプロジェクトは初めから、Version Catalogの設定されていたのも良かったです。
ただし、WebはAlpha、iOSはBetaなので注意が必要だなとも思いました。
これからどんどんコードを書いていくぞ!!!!