非苹果独有,Android也能玩转Swift了
曾几何时,提起 Swift 编程语言,很多人的第一反应都是它是属于苹果派系的语言,也仅能用于面向苹果系统的应用开发。
如今,一切发生了巨大的改变,继 Swift 团队将 Swift 编译器及其生态系统先后移植到了 Windows、Linux 之后,开发者现在也可以使用 Swift 开发 Android 应用程序了,还能轻松地在 iOS 和 Android 之间共享代码。
这一切皆是得益于工具包 Swift SDK for Android 预览版的推出。
Swift 跨平台的“野心”
自 2014 年面世以来,Swift 就在努力跳出 iOS 的小圈子。作为 Objective-C 的继任者,Swift 因安全性、性能和现代化语法受到欢迎。
现下加入 Android 支持后,开发者甚至可以用类似 SwiftUI 的思路进行界面开发,只需适配 Android 的 Material Design 风格。这降低了 iOS 开发者进入 Android 的门槛,同时让多平台开发的代码库更统一。
其实这次 SDK 的发布出自今年早些时候成立的 Swift Android 工作组之手。
据悉,这个团队由苹果工程师和开源贡献者组成,主要负责把 Swift 的运行时和标准库移植到 Android 架构,同时确保与 Android NDK 和 Java 的互操作性。
时下随着 Swift SDK for Android 预览版的到来,有早期尝鲜者表示,预览版已经支持核心功能如并发处理和内存管理,这在某些性能敏感场景下,甚至可能比 Kotlin 更有优势。
当然,挑战也不少。Android 基于 Java 虚拟机,Swift 代码必须编译成字节码或本地二进制,这会带来一定开销。开发者还需要处理 API 差异,例如把 UIKit 替换成 Android 对应组件,不过 SDK 也提供了工具来弥补这些差距。
据外媒 9to5Mac 分析,这一举措延续了 Swift 在服务器端和嵌入式应用中的可移植性思路。
SDK 获取与上手指南
对于有兴趣尝试的开发者,Swift 官方提供了详细的 SDK 下载与入门指南。
其中,Windows 用户可直接通过安装包获取(https://www.swift.org/install/windows/),Linux 与 macOS 用户也可单独下载。
官方还发布了《入门指南》(https://www.swift.org/documentation/articles/swift-sdk-for-android-getting-started.html)提供了在 Android 设备上运行原生 Swift 代码的方法,而 Swift for Android Examples 则演示了完整的应用开发流程。
借助 Swift SDK,开发者甚至可以将现有的 Swift 包迁移到 Android。据统计,Swift Package Index 中超过 25% 的包已经可以在 Android 上构建,社区展示区也标注了 Android 兼容性。
为进一步方便 Swift 与 Java 的互操作,Swift 工作组还推出了 swift‑java 开源项目(https://github.com/swiftlang/swift-java),它既是一个库,也可以作为代码生成器,自动生成安全高效的绑定,实现 Swift 与 Java 的无障碍互通。
苹果此举意在避免开发者流失
不难想象,苹果将跨平台语言 Swift 带到 Android,无疑是在向碎片化的移动市场提供一个选择。
毕竟 Android 在全球占比超过 70%,这一举措可能鼓励更多开发者采用 Swift,同时保留技能在跨平台上的价值。这也给 Flutter、React Native 等主打“写一次,到处运行”的跨平台框架带来压力。不过正如 Swift.org 博客所强调的,这套 SDK 更注重原生性能,而不是折中方案,这对讲究效率的开发者特别有吸引力。
对此,也有网友认为,“此举或对企业应用尤其有用,可以大幅节省重复开发的成本。但要广泛采用,还需要 SDK 更成熟,例如目前还没有与 Android Studio 完全整合,命令行构建是必备技能。”
也有开发者觉得,Swift 的 Android SDK 如果能与 Xcode 整合,实现跨平台调试,那对小团队和独立开发者才是更为有用的方向。
有批评声音担心,这会让 Swift 失去苹果特色,但支持者认为,这是语言的自然进化。
整体而言,相比过去那些非官方的 Swift-on-Android 项目,苹果官方背书无疑是游戏规则改变者。尽管 SDK 还处于预览阶段,但影响深远。其在 Android 探索,也很可能在未来几年改变应用开发格局。
参考:https://www.swift.org/blog/nightly-swift-sdk-for-android/
本文来自微信公众号“CSDN”,整理:屠敏,36氪经授权发布。















