来了来了,盼星星盼月亮,广大 Compose 开发者期待良久的 Jetpack Compose Multiplatform for iOS 近期总算正式发布了 Alpha 支撑,其实在此之前,我在 《一文快速带你了解 KMM 、 Compose 和 Flutter 的现状》 等文章里说了很屡次 Compose Multiplatform 即将支撑 iOS ,只不过现在它总算来了,给 Compose Multiplatform 补全了最后一块屏图

来了,简单宣告下 Compose for iOS Alpha 正式发布

其实上个月 JetBrains 就对 Compose Multiplatform 做了一些「重大调整」, compose-jb 「享年 3 岁」,compose-jb 正式更名为 compose-multiplatform ,一起针对不同渠道提供了模版项目,而这一次更新的,就包含了 compose-multiplatform-ios-android-template 。

来了,简单宣告下 Compose for iOS Alpha 正式发布
来了,简单宣告下 Compose for iOS Alpha 正式发布

另外跟随 iOS 支撑发布的还有 compose-multiplatform 1.4.0 版别,也便是想体会 iOS 的需求在 1.4 版别是进行尝鲜,而且和新版 Android Studio Flamingo 相同开始支撑 JDK 17,由于构建运用 jpackage,为此会运用 JDK 17:

  • JAVA_HOME环境变量指向兼容的 JDK 版别。
  • javaHome经过 DSL 设置:
compose.desktop {
 application {
   javaHome = System.getenv("JDK_17")
 }
}

那么,现在能够正式用 Kotlin 来编写相似的 iOS 的 UI ,而且拥有和 Swift-UI 相似的开发体会(和 XML 说再会),现在已有的 Compose 项目也能够更方便地编译为 iOS 使用然后实现 UI 和逻辑同享。

生产力提高有木有。

现在 iOS 支撑还处于 Alpha 阶段,没到 beta 阶段的话,API 和兼容或许还会呈现一些变化,但是作为正式发布的版别, 现已能够开始体会用相同的 Kotlin 代码来编译出相同的 Android 和 iOS 界面了。

当然,由于 KMM (Kotlin Multiplatform Mobile) 本来就支撑 iOS 渠道,而 Compose Multiplatform 又是根据 KMM 进行构建,所以关于需求访问 iOS 原生 API ,例如蓝牙、相机等的支撑上并不会有太大问题,一起现在也支撑如嵌入 MKMapView 这样的原生 UI 视图

如果是想要在 Compose Multiplatform 上测验 iOS ,首要肯定是需求一个 macOS 的电脑,然后有必要有:

  • Xcode
  • Android Studio
  • KMM 插件(Android Studio 里依照的插件)
  • CocoaPods (iOS 包管理东西)

一起你需求先经过 brew install kdoctor 装置 KDoctor ,由于 KDoctor 是 KMM 下有必要的一个命令行东西,一起 KDoctor 也能够检测构建环境是否正常。

来了,简单宣告下 Compose for iOS Alpha 正式发布

接下来,如果运用 compose-multiplatform-ios-android-template ,在你的 Compose Multiplatform 项目会包含三个模块: androidApp 、iosApp 和 shared,其中 shared 故名思义便是同享的 Kotlin module :

  • shared 包含 Android 和 iOS 上的通用的代码,也便是渠道同享的部分,也是正常开发的 module 目录,比方进口 shared/src/commonMain/kotlin/App.kt ,改模块会被编译成 Android library 和 iOS framework 。
  • androidApp 和 iosApp 便是支撑变异为 App 的使用模块。

而现在要在 Android Studio 的 iOS 模拟器上运转 Compose Multiplatform,会需求在 iosApp 的运转装备上进行挑选,主要是挑选对应的 Execution target:

来了,简单宣告下 Compose for iOS Alpha 正式发布
来了,简单宣告下 Compose for iOS Alpha 正式发布

如果是需求运转到真机,那么首要你要有一个 iOS 开发者账号,然后登陆到你的 Xcode 上:

  • 获取你账号下的 TEAM_ID
  • 接入真机,在 Xcode 中注册的 iOS 设备

另外能够在终端运转 kdoctor --team-ids 来获取你当然的 Team Id 列表,当然,官方也表示如果 KDoctor 没起到作用,你仍是需求翻开 iosApp/iosApp.xcworkspace ,然后在 Signing & Capabilities 这个 Tab 下去挑选和获取你的 Team 。

留意需求在现在 Xcode 上登录开发者账号,当然你不想登陆也能够,不过更费事,能够直接用生成的 p12 证书和 mobileprovision 文件,可参阅《建立 iOS 命令行服务打包发布全保姆式流程》 ,不过我想你们应该不会喜爱。

运转 iOS 之前需求设置上面说到的 TEAM_ID,能够翻开 iosApp/Configuration/Config.xcconfig 文件下设置 TEAM_ID ,之后在 Android Studio 中重新翻开项目,这时候就能够在 iosApp 的运转装备中看到已注册的 iOS 真机。

来了,简单宣告下 Compose for iOS Alpha 正式发布

其次能够看到上面的 Config.xcconfig 文件下有多个装备信息:

  • APP_NAME:简略了解是使用名
  • BUNDLE_ID:相似 Application ID ,留意这个很重要,属于仅有标识使用,和 Andorid 随意折腾 application id 不同,请留意测验时,不要随便在临时账号上测验 Bundle ID, 由于被「登记」过的 Bundle ID 无法重复,要「找回」和「删除」是很费事(bu ke neng)的事情。
  • TEAM_IDApple 生成给你开发者账号的团队的仅有标识,由于运转 App 到真机需求证书和描绘文件,而 team ID 便是证书简介中的对应组织单位

翻开 Xcode ,登陆开发者账号,插上 iOS 真机,自动注册设备和同步证书与描绘文件,是最简略的流程

如果在 Android Studio 中翻开项目后,还需求更改上面的对应选项,现在还需求:

  • 在 Android Studio 中关闭项目。
  • 在的终端中运转 template 目录下的 ./cleanup.sh
  • 更改设置。
  • 再次在 Android Studio 中翻开项目。

上面的介绍主要来自官方的 compose-multiplatform-ios-android-template 并进行了补充,或许现在来说关于很多 android 开发,装备 iOS 环境还比较生疏,那么现在 Compose Multiplatform for iOS 便是你触摸 iOS 的最好机会。

所以,不必 Flutter ,在 Kotlin 和 Compose Multiplatform 的加持下,Android 开发又再一次向 iOS 的地盘发起突击,而补全 iOS 之后的 Compose Multiplatform ,也正式实现了它全渠道支撑的承诺。

让我们期待 Compose Multiplatform for iOS 正式发布的那一天。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。