7c11462644b61ad79177f706a4d222a5
iOS 技术发展史:2018

2018年 iOS 技术发展有点跌宕起伏。在苹果官方进入慢车道的同时,谷歌却强势推出了新的跨平台移动架构 Flutter;同一时间,与 Flutter 类似的跨平台解决方案 React Native 却被 Airbnb 放弃,一时之间蒙受阴影。

Swift vs. Objective-C

原生开发一直是最正统的 iOS 开发解决方案。经历了10多年的发展,苹果已经构建起了相当完善的开发框架和体系,社区也开发出了丰富多彩的第三方框架,其数量和质量都是其他任何解决方案望尘莫及的。

今年 WWDC 的主旋律可以说是“修修补补”——明星框架依然是 AI (ML & Siri Kit) 和 AR (ARKit) 这两个;对于 Xcode 和 iOS 系统及其各种框架的性能优化如 Auto Layout 算法改进、UITableView 滑动效率增强则是本次大会的重点。

Swift 的更新可以说是乏善可陈。万众期待的 Swift ABI 稳定被官宣推迟到2019年,4.2 版本小修小补中继续向着更易用的方向进行努力;在谷歌大脑的 Swift 之父 Chris 依然在努力的将 Tensorflow Swift 化,虽然取得了一定进步,但 Google 对其显然支持力度不够(只有 Richard Wei 一人在进行相关工作);Server 端方面,IBM 依然不遗余力地更新着自家的 Swift 全家桶,然而其8%的云市场份额作用有限。除此之外,一年一度的 Swift Summit 今年居然停办,不知是因为资金不足还是开发者热情消减。

基于 Swift 整体方面不够给力,Swift 的三大排名更新如下:

  1. TIOBE 语言排名从第10名下降到第14名
  2. StackOverflow 最受欢迎语言维持在第14名
  3. Github 综合语言排名为第14名

反观 Objective-C 则在不被看好的情况下逆势而上。其在 TIOBE 和 Github 的排名稳居第10名;而在公司方面,LinkedIn 决定从 Swift 迁移回 Objective-C,与 Snap、Facebook、Twitter 一道成为 Objective-C的卫道者。

而完全拥抱 Swift 的依然只有 Uber,Lyft,Coursera 这三家早在 Swift 3 就入坑的公司 。硅谷的绝大多数公司,如 Google、Amazon、Microsoft、Netflix、Airbnb、Slack、Pinterest、Quora都对 Swift 持观望态度,其产品中也大多是以 Objective-C 为主的混编。好消息是,它们中的绝大多数代码库都在往更多 Swift 的方向去迁移;Amazon 则是在11月发布了轻量级的 smoke 服务器框架,完全是由 Swift 编写。

硅谷公司 iOS 开发语言选择分布

硅谷公司 iOS 开发语言选择分布

总结:Objective-C 瘦死的骆驼比马大,Swift 发展陷入低迷。

Flutter

Flutter 应该算是今年 iOS 开发的年度关键词了。从2015年首次出现在安卓的操作系统中,到2017年 Alpha 版本的发布,再到两个 Beta 版本分别在今年2月和3月发布,随后在9月上海的谷歌开发者大会上宣布稳定版,最后在2018年的尾巴12月4日,我们终于见到了1.0版本。这款以 Dart 为开发语言、承载了谷歌未来系统级战略的框架,注定要展现出巨大的影响力。

对于开发 Flutter 的动机,原 Swift 团队的二号人物 Kate Stone 认为,开发 Flutter 的目的在于为其 IOT 战略铺路和试错。在 AI First 大背景下的 Google,其基本的布局是以人工智能为核心构建一整套软硬结合的生态圈。其中硬件就是以 Google Home 为中心的 IOT 产品线(包括自家的 Clips、Wifi、Nest 一套),这些硬件需要一套更高效和统一的软件平台——以 Java 为主的 Android 当然不错,但将其适配新的 IOT产品线成本较高,且每年要付给 Oracle 大量的专利费显然并不划算;Chrome OS 因为理念太先进,完全基于云端而导致现在的基础设施和第三方厂商难以适应,目前只是小众产品。整合 Android 和 Chrome OS 两大平台的资源,配合未来 5G 的高速通信,使 Google 做出了统一系统、高效开发的决策。这正是开发 Fuchsia 的原因,而 Flutter 也是其配套的重要一环。

谷歌新推出的 Google Home Hub 采用的就是 Fuchsia OS

谷歌新推出的 Google Home Hub 采用的就是 Fuchsia OS

Flutter 与 Fuchsia 操作系统一样,采用 Dart 作为底层编程语言。Dart 由于其预编译和高兼容等特色,使得其可以在 iOS 设备上无缝高速运转。而 Flutter 作为其架构,完美得绕过了 JSCore 这个桥接,可以直接在机器上渲染图形,这比 React Native 要前进了一大步,与原生相比效率上几乎无差别;在兼具热加载和跨平台等优点的基础上,Flutter 又拥有丰富成熟的控件,这些噱头已经足够吸引开发者。在实际开发中,Reflectly 的工程团队证明,React Native 在跨平台上造成的小毛病在 Flutter 上完全看不到,其跨平台可靠性、热加载高效性、工具链丰富性、文档的高可读性都给整个开发过程带来了非常愉快的体验。

top Created with Sketch.