快捷搜索:

您的位置:澳门新葡4473网站 > 新闻社区 > iOS 技术发展史:2018

iOS 技术发展史:2018

发布时间:2020-01-10 00:27编辑:新闻社区浏览(92)

    在过去几年,当人们谈到 React Native 时,都会马上联想到 Airbnb 在这方面做得非常出色。然而,近日,Airbnb 技术团队在 Medium 上发布的博客却让事态出现了惊天逆转,Airbnb 官方宣布停止使用 React Native,并将其从代码库中移除,转而使用 Swift/Objective-C/Java/Kotlin。

    www.4473.vip 1

    www.4473.vip,一家世界级顶尖公司在对 React Native 投入大量精力后,突然决定弃它而去,这让不少想要使用和正在使用 React Native 的人都感到震惊。

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

    然而,Medium 上一位叫 Charlie Cheever 的作者却表示,这一结果并不令他惊讶。Charlie 与许多考虑使用 React Native 的人交谈过,并将他们大致分为三类,其中两类非常适合使用并能乐在其中,而另外一类是不太适合的。

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

    结合了大多数人的问题与一些实践经验,Charlie 最终整理出了一篇快速指南,帮助个人和团队决定是否要在项目中使用 React Native。内容如下:

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

    1、使用 React Native 从 0 开始创建一个新应用程序,并希望用 JavaScript 构建所有应用。

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

    这种情况通常比较乐观,使用者也能取得一个很好的结果。Expo 非常适合这种情况,它提供大量内置的原生模块,使用者不需要使用 Xcode 或 Android Studio,就能完成所有的事情;新版升级几乎毫不费劲;可以随时推送代码更新,而不用去应用商店提交新版本。

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

    如果你需要在原生代码中构建一两个页面,并且已经定义好页面边界,那这么做也没什么问题。所以,如果需要从 0 开始创建一个新应用,Expo/React Native 是个不错的选择。

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

    2、正在使用 React Native 进行少量的二级页面开发

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

    如果你想利用 React Native 进行一些简单的二级页面开发,如设置(Setting Screen)、常见问题答疑(FAQ)和关于(About)等,或者只是想把它们嵌入在 WebView 中,那你就走运了。这些页面不需要与应用的其他部分密切联系,但整体看上去更像是“原生”的。

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

    3、你有一个用 Swift/Java/Obj-C/Kotlin 编写的现有应用,并且想要在 React Native 中开始编写其中的一部分

    www.4473.vip 2硅谷公司 iOS 开发语言选择分布

    举个“棕色地带”的例子(棕色地带,通常是指闲置废弃的、未被充分利用的领域,由于某些原因,使得重新开发变得困难。),比如,你有一个用 Swift 和 Java 编写的现有应用程序,然后你希望将 React Native 引入到一个多视图和屏幕中,这就很难做到。

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

    如果你需要在同一屏幕上同时使用原生视图和 React Native 视图,通常,在 React Native 方面,你会将数据保存在 JS 对象中,而在原生方面,你会将数据保存在 Swift/Java 的数据结构中,这样以来,跟踪客户端状态就会变得很困难。因为 React Native 目前只有一个异步桥接(asynchronous bridge),你需要编写大量桥接基础设施的代码,才能保证工作有效进行,这个过程很麻烦,会严重影响工作效率。

    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 也是其配套的重要一环。

    4、公司有 Android 开发团队,也有 iOS 开发团队。

    www.4473.vip 3谷歌新推出的 Google Home Hub 采用的就是 Fuchsia OS

    即使公司只有其中一种开发团队,并且自认为自己拥有最强 Android/iOS 开发者,他们也很难对 React Native 满意。尤其是 iOS 开发,他们通常认为 Javascript 会“污染”(infestation)公司代码库。

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

    最后作者表示,自己几乎完全同意 Airbnb 博客列出的使用 React Native 带来的不便,(可参考之前发布的文章:Airbnb 宣布放弃使用 React Native,回归使用原生技术)但依然对这个项目保持乐观,因为微软已在新版中使用 React Native。

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

    作者认为 React Native、Flutter 等这些产品面临的问题大致差不多,如果要让他来评判其中的优胜者,他给出的概率是:React Native 55%、Flutter 15%,其他 ≤30%。你怎么看?

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

    作者原文:Should we use React Native?

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

    编译:开源中国

    老牌跨平台框架 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 的结合也督促着我们不断学习。

    • What Stats and Surveys are saying about Swift in 2018
    • Is Flutter likely to replace Java for Android app development?
    • What’s Revolutionary about Flutter
    • Flutter 1.0: Google’s Portable UI Toolkit
    • Reflectly — From React Native to Flutter
    • State of React Native 2018
    • Open Source Roadmap
    • Airbnb: React Native 从选择到放弃
    • 基于Flutter的产品应用实践

    本文由澳门新葡4473网站发布于新闻社区,转载请注明出处:iOS 技术发展史:2018

    关键词: