发布:2025 年 6 月 28 日
作者:侯仕奇(HouShiqi)
Swift.org 在 2025 年 6 月 26 日博客与论坛同步发文,宣布成立 Android Workgroup。帖子由 Apple Swift 团队成员 Mishal Shah 发布,并邀请社区共同参与。核心愿景:
“Establish and maintain Android as an officially supported platform for Swift.”
同时上线的官网页面详细列出 Charter、工作范围与例会节奏,首批成员囊括 Apple、Browser Company、Skip 等公司工程师。
动因 | 说明 |
---|---|
跨端需求高涨 | iOS 团队希望一套 Swift 业务逻辑可复用到 Android;Server-Side Swift & Embedded 已验证多平台可行性。 |
KMP / Dart / React Native 压力 | Kotlin Multiplatform 正快速迭代;Flutter 占据跨端 UI 心智。官方支持有助提升 Swift 竞争力。 |
Swift 6 生态成熟 | 并发模型、Package Manager、模块导入(import )都已稳定,具备向新平台复制的技术基础。 |
并不是“Swift 代码能在 Android 编译”就算完事,官方支持至少意味着:
编译器 & SDK
libswiftCore
、libdispatch
等系统库适配。持续集成 (CI)
核心库适配
互操作桥接
开发者体验
维度 | Swift Android | Kotlin Multiplatform | Flutter | React Native |
---|---|---|---|---|
语言定位 | 原生系统级 | 原生系统级 | 渲染引擎 | JS 框架 |
UI 方案 | SwiftUI† → Android TBD | Compose MP | Flutter Widgets | RN + Native |
性能 | 接近 C++ | 接近 JVM/Native | Skia GPU | JS Bridge |
学习曲线 | iOS 团队零成本 | Android 团队零成本 | 需学 Dart | 需学 JS/TS |
成熟度² | 刚刚起步 | Beta / 1.0 近 | 成熟 | 成熟 |
† SwiftUI 暂无官方 Android 渲染器;工作组优先级仍在 Runtime + Corelibs。
² 依据 2025 H1 社区调查与 GitHub 活跃度统计。
// build.sh 假设已安装 swift-6.2-dev-android-aarch64
$SDK_ROOT=/opt/swift-android-sdk
swiftc \
-target aarch64-unknown-linux-android24 \
-sdk $SDK_ROOT/android-24 \
Hello.swift \
-o libhello.so
// Kotlin 调用
class HelloBridge {
companion object {
init { System.loadLibrary("hello") }
}
external fun sayHello(): String
}
Hello.swift
@_cdecl("sayHello")
public func sayHello() -> UnsafePointer<CChar> {
return strdup("Hello from Swift ")
}
通过 JNI 将 Swift 函数挂到 Kotlin,编译的 .so
打包进 APK 即可。
挑战 | 解决方向 |
---|---|
二进制大小 | Swift Runtime/Stdlib 分层裁剪、静态链接优化 |
调试体验 | LLDB Android 支持、VS Code 插件 / Xcode 远程调试 |
SwiftUI 渲染 | 社区或官方移植 SwiftUI 渲染层到 Skia/Compose |
社区碎片 | 工作组统一 Roadmap & API 指南,防止多套私有 SDK ⬆️ |
Swift Android Workgroup 的成立不仅是“Swift 终于跑进 APK”,而是 苹果主导语言首次系统性拥抱 Google 生态。
行动呼吁:
- 订阅 [Android 分类的 Swift Forums] 并提出需求 / PR
- 尝试将你的 Swift Package 跑在 Android Emulator
- Star 工作组 Roadmap,为你最关心的议题投票
跨端的未来,从 “写一次,处处飞” 到 “写原生,处处跑”,Swift Android Workgroup 或许正是关键缺口。