Compose for iOS Alpha の公式リリースを発表します。

星と月を楽しみにして、待望の iOS 用 Jetpack Compose Multiplatform がついに正式にアルファ サポートを最近リリースしました. "および他の記事では、Compose Multiplatform が iOS をサポートしようとしていると何度も述べてきましたが、今ではCompose Multiplatform最後の画面が完成しました

実際、先月、JetBrains は Compose Multiplatform にいくつかの「主要な調整」を行い、compose-jb は「3 歳で死亡」し、compose-jb は正式にその名前を compose-multiplatform に変更し、さまざまなプラットフォーム用のテンプレート プロジェクトを提供しました。compose-multiplatform-ios-android-templateを含みます

また、 iOSサポートに続いて compose-multiplatform バージョン 1.4.0 もリリースされます。ビルドされて使用されるためjpackage、この目的のために使用されますJDK 17 :

  • JAVA_HOME環境変数は、互換性のある JDK バージョンを指しています。
  • javaHomeDSL 経由のセットアップ:
compose.desktop {
  application {
      javaHome = System.getenv("JDK_17")
  }
}
复制代码

さて、これで公式に Kotlin を使用して同様の iOS UI を作成し、Swift-UI と同様の開発経験を得ることができ (XML に別れを告げます)、既存の Compose プロジェクトもより簡単に iOS アプリケーションにコンパイルして実現することができます。 UI とロジックの共有。

生産性の向上はありません。

現時点では、iOS のサポートはまだアルファ段階であり、ベータ段階でない場合は、API や互換性に変更が生じる可能性がありますが、正式にリリースされたバージョンとして、既に同じ Kotlinコードを使用して、同じ Android と iOS インターフェースをコンパイルします。

もちろん、KMM(Kotlin Multiplatform Mobile)はすでにiOSプラットフォームをサポートしており、Compose MultiplatformはKMMをベースに構築されているため、BluetoothやカメラなどのiOSネイティブAPIをサポートすることは大きな問題ではなく、同時にNative埋め込みMKMapViewなどの UI ビューもサポートされるようになりました

Compose Multiplatform で iOS を試してみたい場合は、まず macOS コンピューターが必要です。次に、次のものが必要です。

  • Xcode
  • Android スタジオ
  • KMMプラグイン (Android Studio に準拠したプラグイン)
  • CocoaPods (iOS パッケージ マネージャー)

同時にbrew install kdoctorKDoctor は KMM で必要なコマンド ライン ツールであり、KDoctor はビルド環境が正常かどうかも検出できるため、最初に KDoctorをインストールする必要があります。

接下来,如果使用 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:

如果是需要运行到真机,那么首先你要有一个 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 真机。

其次可以看到上面的 Config.xcconfig 文件下有多个配置信息:

  • APP_NAME:简单理解是应用名
  • BUNDLE_ID:类似 Application ID ,注意这个很重要,属于唯一标识应用,和 Andorid 随意折腾 application id 不同,请注意测试时,不要随便在临时账号上测试 Bundle ID, 因为被「登记」过的 Bundle ID 无法重复,要「找回」和「删除」是很麻烦(bu ke neng)的事情。
  • TEAM_ID:Apple 生成给你开发者账号的团队的唯一标识,因为运行 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 が正式にリリースされる日を待ちましょう。

おすすめ

転載: juejin.im/post/7221800875743182907