写点什么

苹果发布 Swift SDK for Android 预览版

作者:Sergio De Simone

  • 2025-11-05
    北京
  • 本文字数:1157 字

    阅读完需:约 4 分钟

大小:541.52K时长:03:04
苹果发布 Swift SDK for Android 预览版

最近的夜间构建版 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/

2025-11-05 13:001

评论

发布
暂无评论

设计模式关系图(全网首发)之结构和创建模式

设计模式

对话上市公司数字化转型:激活数据要素 倍增数字价值

BeeWorks

用更云原生的方式做诊断|大规模 K8s 集群诊断利器深度解析

尔达Erda

程序员 运维 云原生 k8s 工具

DeFi挖矿智能合约Dapp系统开发搭建

薇電13242772558

智能合约

Wallys/ AR9531/WiFi Card/ MMCX

wallys-wifi6

AR9531 30dBm high power

“晕乎乎的概念”:阿里云函数计算的“应用”又是个啥

阿里巴巴云原生

阿里云 Serverless 云原生 函数计算

云数赋能+数字办公 助力政企数字化

【达人专栏】还不会用Apache Dolphinscheduler吗,大佬用时一个月写出的最全入门教学【二】

白鲸开源

Apache 大数据 开源 workflow dophinscheduler

银行需明确低代码与无代码开发平台差异,以在技术上降低试错成本

易观分析

银行

fastposter v2.8.1 发布 电商海报生成器

物有本末

Python Pillow fastposter fast-poster

《方博碳讨室》:四问欧洲绿色能源转型

极客天地

性能提升 57% ,SMC-R 透明加速 TCP 实战解析 | 龙蜥技术

OpenAnolis小助手

互联网 网络协议 高性能 TCP/IP 龙蜥技术

直播预告丨OpenHarmony标准系统多媒体子系统之视频解读

Anna

OpenHarmony

【直播回顾】如何成为一名优秀的OpenHamrony贡献者?

OpenHarmony开发者

OpenHarmony 贡献代码

【LeetCode】爬楼梯的最少成本Java题解

Albert

算法 LeetCode 5月月更

阿里云张新涛:异构计算为数字经济提供澎湃动力

阿里云弹性计算

XR 元宇宙 视觉计算

mark:vscode 无法远程访问连接

webrtc developer

vscode

LinkedList 源码分析-新增

zarmnosaj

5月月更

当我们谈论服务质量的时候,我们在谈什么?

VoltDB

5G QoS 电信运营商

直播回顾 | 后疫情时代,食品行业破局秘籍get一下!

旺链科技

区块链 溯源 产业区块链

Hoo网格策略 | 一「网」在手 告别「追涨杀跌」

区块链前沿News

虎符 Hoo 网格交易

大画 Spark :: 网络(7)-Spark网络中的“四次握手”Executor注册到Driver过程中的TransportClient与细节过程

dclar

大数据 hadoop spark 架构设计 源代码

设计模式关系图(全网首发)之行为模式

设计模式

时间堆原理详解及C++11的实现

C++后台开发

后端开发 Linux服务器开发 C++11 C++后台开发 时间堆

墨天轮访谈 | 京东云曲艺伟:京东零售核心业务背后的数据库实践

墨天轮

数据库 京东云 国产数据库

AIRIOT物联网低代码平台如何配置欧姆龙omron驱动?

AIRIOT

低代码 物联网 驱动配置

Liga 讨论: ToB产品可不可以免费?

LigaAI

SaaS

苹果发布 Swift SDK for Android 预览版_软件工程_InfoQ精选文章