LoginSignup
1
0

More than 3 years have passed since last update.

Kotlin MultiPlatform Mobile(KMM)の環境構築 for Mac

Posted at

Kotlin MultiPlatform Mobileがアルファ版に進んだようなので、ちょっと触ってみようと思い立って環境構築してみました。
色々とハマって3日くらいかかりましたがなんとかできたので、ナレッジ共有と備忘録も兼ねて残しておきます。

What's KMM?

モバイルマルチプラットフォームを実現するKotlinベースの開発キットです。
Android - iOS間のビジネスロジックの再利用ができる点が魅力で、Androidアプリ開発後、iOSアプリも必要になったときや、最初から両方のアプリを作る予定ならすごく便利なんじゃないかなと思ってます。

Flutterとよく比較されますが、Flutterがビュー側も含めたプラットフォーム共有なのに対し、KMMはビジネスロジックのみをシングルコードにするので、ビュー側はプラットフォーム特有のものにできる点が異なります。

環境構築する

公式チュートリアルを参考にしてます。
https://kotlinlang.org/docs/mobile/setup.html

今回は↓の環境で構築しました。
- MacOS 10.14.6
- XCode 11.3.1 ←11.3以上必須

Android Studio4.2をインストール

現時点(2021/03/10)での安定板は4.1.2なので、ベータ版を使う必要があります。
↓からver4.2をダウンロードしてインストールします。
https://developer.android.com/studio/preview?hl=ja

Kotlinのアップデート

Android Studioで適当に1つプロジェクトを作成した後、[Tools]→[Kotlin]→[Configure Kotlin Plugin Updates]と進み、最新バージョンにアップデートします(僕の場合はプラグインバージョン[202-1.4.31-release-AS8194.7]が入っていて、更新の必要なかったです)。

Kotlin MultiPlatform Mobile Pluginをインストール

[Preferences]→[Plugins]と進み、検索ボックスにKotlin Multiplatform Mobileと入力します。
設定.png

Android 10.0をインストールする

公式サイトにはないんですが、僕の環境だとこれをしないとビルドがうまく通らなかったです。
Android SDK画面からAndroid 10.0をインストールしておきましょう。
ここまでやったら一度Android Studioを再起動します。

KMMプロジェクトを作成する

プロジェクトの新規作成画面に「KMM Application」が追加されているはずなので、選択します。
新規プロジェクトの作成.png

アプリケーションのNameを変えて次へ
新規プロジェクトの作成_と_MyApplication_–_Greeting_kt__MyApplication_shared_commonMain_.png

最後に各プラットフォームのアプリケーションの名前を入力します。
Shared Module NameはAndroidとiOSの共有モジュール名です。デフォルトで大丈夫です。
最後にAdd sample tests for Shared Moduleにチェックを付けて完了します。
新規プロジェクトの作成.png

KMMアプリケーションが作成されるので、ビルドされるまで待ちます(僕の場合は5分くらいかかりました)。
あと、デフォルトではエクスプローラーにはAndroidしかありませんが、ここでプロジェクトに変えるとiOSも出てきます。変えておきましょう。
MyApplication_と_「Kotlin_MultiPlatform_Mobile_KMM_の環境構築_for_Mac」を編集_-_Qiita.png

アプリを実行する

Androidならこう
MyApplication.png

iOSならこうでエミュレーターが起動します。
MyApplication.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0