苹果发布 Swift SDK for Android 预览版

作者:Sergio De Simone
  • 2025-11-05
    北京
  • 本文字数:1157 字

    阅读完需:约 4 分钟

最近的夜间构建版 Swift SDK for Android 发布,旨在帮助开发者将 Swift 包迁移到 Android 平台,可以更轻松地在不同平台之间共享代码。尽管该 SDK 仍处于预览阶段,但已有超过 25% 的 Swift 包索引中的包能够成功编译为 Android 版本。

Swift SDK for Android 的核心包括一个为 Android 平台量身定制的 Swift 工具链,即编译器和在 Android 上运行的 Swift 标准库的实现,以及一组绑定,用于从 Swift 访问 Android API。Swift 工具链使用 swift-java-project 来实现 Java/Swift 互操作性,能够创建共享对象,这些对象会被链接到 .apk 存档文件中,并通过 JNI 进行访问。

Swift SDK for Android 采取了一种开放式的 UI 方法,没有使用单一的 UI 框架,而是选择支持现有的多种框架,特别是 Android 的原生工具包,如 Jetpack Compose 和经典的基于 XML 的系统、Flutter 的 UI 引擎,以及第三方桥接解决方案,如 Skip。Swift Android 团队没有明确提到的另一种可能的方法是使用 OpenGL、Vulkan 或其他渲染引擎在 Swift 中实现 UI,然后通过 NativeActivity 将其集成到 Android 应用中。

特别是 Skip 框架通过将其桥接到 Jetpack Compose,重新实现了适用于 Android 的 SwiftUI。这种方法为 iOS 开发者提供了一种无缝的方式,让他们可以在同一个代码库中编写应用的业务逻辑和 UI,且几乎无需额外的工作量。

SwiftCrossUI 是一个开源的替代方案,它为 macOS、Linux 和 Windows 提供了类似 SwiftUI 的 API,并且正在逐步增加对 Android 的初步支持

尽管使用 Swift 同时开发 iOS 和 Android 应用听起来很有吸引力,但正如 andrekandre 在 Hacker News 上指出的,创建出色的跨平台应用不仅仅是工具链支持和原生工具包的问题

我之前也尝试过这条路,说实话,最大的问题是开发体验(iOS 开发者难以轻松调试,模型之间存在不匹配,例如 Kotlin 的异常无法从 Swift 中捕获)。最后,即使是 Kotlin 多平台也不等同于 Android 上的 Kotlin,所以在某种程度上,你仍然是在引入第三种语言……

Swift SDK for Android 的首次发布大约在苹果宣布在 Swift 项目内成立 Android 工作组 六个月后,该工作组的目标是确保 Swift 可以编译为 Android,无需依赖非官方分支,同时增强 Swift 的标准库,以更好地兼容 Android API。

在 Swift SDK for Android 发布之前,开发者可以使用第三方解决方案,如 Scade.io,来编译他们的 Swift 代码,使其能在 Android 上运行。Scade 基于 Swift4j 构建,主要专注于非 UI 应用逻辑的开发。

对于希望将应用移植到 iOS 的 Android 开发者来说,一个更成熟的选择是 Kotlin Multiplatform with Jetpack Compose Multiplatform,这一方案此前 InfoQ 曾广泛报道过。

【声明:本文由 InfoQ 翻译,未经许可禁止转载。】

查看英文原文https://www.infoq.com/news/2025/10/swift-sdk-android/