Kotlin Multiplatform(KMP)现在炙手可热,对于 Android 开发来说也很友好,感兴趣不如动手试一下吧
环境配置
下载官方提供的 kdoctor 工具,快速检查当前缺少哪部分:
//安装
brew install kdoctor
//安装后执行
kdoctor
当全部配置好后应该会像下面一样:
Environment diagnose (to see all details, use -v option):
[✓] Operation System
[✓] Java
[!] Android Studio
! Android Studio (AI-243.22562.218.2431.13114758)
Location: /Users/licheng/Applications/Android Studio.app
Bundled Java: openjdk 21.0.5 2024-10-15
Kotlin Plugin: 243.22562.218.2431.13114758-AS
Kotlin Multiplatform Mobile Plugin: not installed
Install Kotlin Multiplatform Mobile plugin - https://plugins.jetbrains.com/plugin/14936-kotlin-multiplatform-mobile
[✓] Xcode
[✓] CocoaPods
Conclusion:
✓ Your operation system is ready for Kotlin Multiplatform Mobile Development!
Android Studio 中检测插件安装这一项没有打勾的原因是:插件名
Kotlin Multiplatform Mobile后面改成了Kotlin Multiplatform,kdoctor 工具并没有更新对应判断逻辑,所以不通过,也不用理会
JVM环境
网上很多教程,这里仅演示使用 HomeBrew 安装 jdk17 的版本
//安装
brew install openjdk@17
//获取路径
/usr/libexec/java_home -V
//应输出类似内容:
Matching Java Virtual Machines (1):
17.0.14 (arm64) "Homebrew" - "OpenJDK 17.0.14" /opt/homebrew/Cellar/openjdk@17/17.0.14/libexec/openjdk.jdk/Contents/Home
/opt/homebrew/Cellar/openjdk@17/17.0.14/libexec/openjdk.jdk/Contents/Home
//添加环境变量(此处以zsh为例)
nano ~/.zshrc
//在文件末尾添加:
export JAVA_HOME=/opt/homebrew/Cellar/openjdk@17/17.0.14/libexec/openjdk.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
//保存文件(Ctrl+O → Enter → Ctrl+X)
//使配置生效
source ~/.zshrc
//验证安装
//检查 Java 版本
java -version
//检查环境变量
echo $JAVA_HOME
Android Studio 及插件
AS 自不用多说,能对 KMP 感兴趣的应该大部分都是 Android 开发了,插件市场里直接搜索 Kotlin Multiplatform 安装即可
Xcode
推荐使用Xcodes来安装 Xcode,其类似JetBrains Toolbox,可以方便的下载和管理版本
brew install --cask xcodes
登录 Apple ID 后选择版本,一键下载安装
安装完 Xcode 后打开,新建一个iOS APP 项目,如果你和我一样之前从来没有开发过 iOS,这里可以开始尝试在 iPhone 真机或模拟器先跑一次原生的 Hello World 了
刚安装的Xcode仍需安装模拟器和环境,点击框框对应的地方即可安装,这里我已经安装过了所以显示 icon 为编译
(一开始我以为这里是单纯安装模拟器,我想着我只需要真机运行就不去装,结果一直跑不了项目,一开始以为是签名什么的问题,折腾了很久最后才发现原来这个安装是必须的)
iPhone 真机运行项目
点击项目名进入项目设置,Signing 这里加入 Team 和签名,具体其实我也不太明白,总之一路登录就是了
联线手机并信任后,可以在iPhone-Setting-Privacy中看到开发者模式的入口,编译项目安装后在 Setting-VPN中选择允许运行不信任软件,最终就可以在运行项目到 iPhone 上了
CocoaPods
//先安装 ruby
brew install ruby
//查看 ruby 路径
which ruby
//添加环境变量
nano ~/.zshrc
export PATH="/opt/homebrew/opt/ruby/bin:$PATH"
//下面的UTF8声明也一并添加了
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
//安装 cocoapods
brew install cocoapods
第一个 Demo
JetBrains已经给我们提供了一键生成脚手架:Kotlin Multiplatform Wizard | JetBrains,我们直接用上创建第一个 Demo
勾选想要的平台后下载工程并打开,等待 gradle 运行完,run configurations中选择 composeApp,就可以直接编译运行到 Android 上了
运行到iOS
除了可以在 Xcode 中打开项目运行,在 Android Studio 中也可以(这种感觉还挺神奇的)
在run configurations选择或新建 iOS Application config,Execution target选择你联线的真机或者模拟器
如果是真机运行,那么需要和 AppleId 关联的 TeamID。执行以下命令:
kdoctor --team-ids
得到一串 ID,进到iosApp/Configuration/Config.xcconfig中添加:
TEAM_ID=XXXXXXXXXX
运行到桌面端或 Web 端
Gradle 中选择对应 run 即可
至此就真的实现了跨端运行啦,还是挺好玩的吧