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 开发语言选择分布

总结: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

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

如此优越的先天条件使得 Flutter 目前在 Github 上已经拥有了48000+的 Star。Google 在优达学城开放了入门课程,同时自己在 Google Ads 上投入使用。国外的大厂有 Capital One、Groupon 已经开始尝试 Flutter,而国内的阿里巴巴、腾讯、京东更是作为 Google 的合作伙伴使用 Flutter。

虽然好评如潮,但是开发者对 Flutter 也有一些忧虑。Reflectly 团队指出,Flutter 对于应用内购买和本地推送这两个功能没有很好的支持;Google Ads 的技术负责人 Mehmet 在 Quora 上则说,Flutter 只是目前阶段的解决方案,当网速足够快时,网站和浏览器就足以取代 App 了 —— 这时候 PWA 才是王道;而闲鱼的宗心同学则是在他的直播中说使用 Flutter 后稳定性稍有下降,而内存占用情况也比较严峻。

总结:Flutter 在2018年异军突起,战略意图明显且优点鲜明,值得一试。

React Native

老牌跨平台框架 React Native 在2018年迭代了5个版本:从0.52到0.57,Facebook 依然在对这个框架进行各种尝试。然而,坏消息却是接踵而来,首先是 Airbnb 弃用 React Native,还连发数篇文章阐明相识相知到累觉不爱的过程。这波有理有据的吐槽的蝴蝶效应则是在开发者中带动了一波 React Native “下车”的大辩论。

可能 Facebook 团队也意识到了桥接等性能问题。在 Airbnb 事件之后数周, React Native 官方就发文宣布重构。主要工作围绕在线程、异步渲染、简化桥接三个方面,整个过程循序渐进,力争不会对已经使用 React Native 的应用和开发者造成重大影响。这之后8月份,全新的 Accessibility API 推出,而这正是 Airbnb 吐槽的大坑。11月初,React Native 发布了2019年的路线图,Facebook 团队决定明年将完成重构并发布稳定的 API,将其推进到1.0正式版。

如果说 Flutter 是 Google 在 IOT 战略中下的一步棋,那么 React Native 便是 Facebook 在 VR/AR 战略中下的类似一步。去年发布的 React VR 在2018年的 Facebook F8 上与 React Native 深度结合展现出了其优秀的可扩展性。然而无论是 VR 产业的成熟,还是 React VR 框架的成熟都尚需数年,所以 React Native 在此方面的优势也就仅此而已。

总结:React Native 步履蹒跚,在面对 Airbnb 的抛弃和 Flutter 的竞争下,展现出了一些求生欲。

总结与展望

2018年是第一台 iPhone 发布的第11个年头。很多人都说移动浪潮已过、iOS 工程师没人要、写 iOS 以后就和写网页一样,唱衰的声音此起彼伏。然而 Flutter 的出现像是回应了这种质疑;2019年 React Native 的重构和 Swift 的 ABI 稳定,这也许意味着 iOS 的第二春即将来临。在 Google,Facebook,Apple 三家大厂争霸布局的同时,我们 iOS 开发者则应该保持信心,在苦修内功的同时又抬头看看最新的技术,毕竟 iOS 作为平台也在不断进化,与 AI 和 VR/AR 的结合也督促着我们不断学习。

Reference

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,347评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,435评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,509评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,611评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,837评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,987评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,730评论 0 267
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,194评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,525评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,664评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,334评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,944评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,764评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,997评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,389评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,554评论 2 349

推荐阅读更多精彩内容