KMM まとめ 速報 - Kotlin Multiplatform Mobile 【#ios | #android】

スポンサーリンク

このページは随時更新していくページです。

まずは、2022年 Stable版リリースまで追っていきます。

開発時に使えるだろう記事をフォーカスしてまとめておきます。

連絡などは Twitter や Facebook の DM でどうぞ。

KMM まとめ 速報 ( Kotlin Multiplatform Mobile )【#ios | #android】



おすすめ

Googleは、この状況を改善するために、すべてのKotlinターゲットのための適切なマルチプラットフォームの成果物として、Composeランタイムを出荷すべきです。残念ながら、彼らのKotlinマルチプラットフォームの話は、コミュニティのニーズから数年遅れており、これがすぐに実現する見込みは非常に低い。

👉 Multiplatform Compose and Gradle module metadata abuse - Jake Wharton 

 

- New KMM library project wizard.
- Support for the new type of KMM library distribution: XCFramework.
- Enabled HMPP for new KMM projects.
- Support for explicit iOS targets declaration.
- Enabled KMM plugin wizards on non-Mac machines.
- Support for subfolders in the KMM module wizard.
- Support for Xcode Assets.xcassets file.
- Fixed the plugin classloader exception.
- Updated the CocoaPods Gradle Plugin template.
- Kotlin/Native debugger type evaluation improvements.
- Fixed iOS device launching with Xcode 13.

👉 KMM plugin releases | Kotlin 

クロスプラットフォームモバイル環境向け SDK の Kotlin Multiplatform Mobile(KMM)は、2020年8月にアルファ版として公開されました。

👉 アルファ版以降の KMM 新着情報 | The Kotlin Blog 

公式

👉 アルファ版以降の KMM 新着情報 | The Kotlin Blog 
👉 Kotlin Multiplatform Mobile がアルファ段階に移行 | The Kotlin Blog 
👉 Kotlin Multiplatform Mobile | Kotlin 

その他

👉 5分でわかる、Kotlin Multiplatform Mobile (KMM) 
👉 KMMでiOS・Android
を共通化しよう - dely tech blog 
👉 KMMというもう一つの選択肢 | bravesoft blog 
👉 Kotlin Multiplatform Mobile(KMM)がベータへ。コンカレント処理でのメモリリークフリー、iOSエコシステムとの連携強化など - Publickey 

■ Java 11 (JDK) が必要


An exception occurred applying plugin request [id: 'com.android.application']
> Failed to apply plugin 'com.android.internal.application'.
   > Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
     You can try some of the following options:
       - changing the IDE settings.
       - changing the JAVA_HOME environment variable.
       - changing `org.gradle.java.home` in `gradle.properties`.

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 509ms
Command PhaseScriptExecution failed with a nonzero exit code

** BUILD FAILED **


The following build commands failed:
PhaseScriptExecution Run\ Script 
/Users/maochanz/AndroidStudioProjects/KMM/build/ios/iosApp.build/Debug-iphoneos/iosApp.build/Script-7555FFB524251A00829871.sh (in target 'iosApp' from project 'iosApp')
(1 failure)

以下の、どれかで Java 11 (JDK) を設定しなさい、とのこと。

- IDE の設定
- JAVA_HOME の値
- gradle.properties の org.gradle.java.home

しかし、このうちの JAVA_HOME を書き換えないと反映されない模様。

👉 org.gradle.java.home - Issue Tracker 

「Embedded JDK」のパスを Android Studio 内の「IDEの設定」で確認してそれを利用する。


[Preferences]

  ↓

[Build]

  ↓

[Build Tools]

  ↓

[Gradle]

embed jdk


➜  ~ tail .zshrc
export JAVA_HOME="/Users/maochanz/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/203.7784292/Android Studio.app/Contents/jre/Contents/Home"
export PATH="$JAVA_HOME/bin:$PATH"

そして、AndroidStudio 再起動でビルドは通る、が暫定的な対応だろう。


➜ ./gradlew -version

------------------------------------------------------------
Gradle 7.3
------------------------------------------------------------

Build time:   2021-11-09 20:40:36 UTC
Revision:     96754b8c44399658178a768ac764d727c2addb37

Kotlin:       1.5.31
Groovy:       3.0.9
Ant:          Apache Ant(TM) version 1.10.11 compiled on July 10 2021
JVM:          11.0.10 (JetBrains s.r.o. 11.0.10+0-b96-7281165)
OS:           Mac OS X 12.0.1 x86_64


➜ java -version
openjdk version "11.0.10" 2021-01-19
OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
OpenJDK 64-Bit Server VM (build 11.0.10+0-b96-7281165, mixed mode)

私の場合は、JB Toolbox を使っているので、Android Studio単体の場合と、同梱JDKのパスは少し違うので注意。

(このページは随時更新していくページです。)