61

『前端大事记』之「几件大事」

 6 years ago
source link: http://www.10tiao.com/html/147/201806/2653060325/1.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

【回复“1024”,送你一个特别推送】

不知道大家都听没听说过这句哈:前端的江湖总是不缺话题,且从没有消停过!!!你要说没听说过,那就对了,这句话是我刚刚说的。但是这句话想必大家都听说过:铁打的后台,流水的前端。

什么意思?就是后台技术几乎没什么变天,前端技术一天一个样,今天用这个,明天用那个。变化多端的前端,让我们前端程序员在爬坑的路上,颠簸流离。

我们今天就一起细数一下最近几天发生的几件大事。

一、Airbnb 弃用 RN,回归原生

就在 6 月 20 日,Airbnb 技术团队在 Medium 上宣布,Airbnb 放弃使用 React Native,将回归到使用基于原生技术的自有框架开发 App。理由如下:

React Native 并不能真正实现完全的跨平台抽象,有时候仍然需要针对特定平台单独编写代码来解决问题。这就间接要求他们的工程师必须熟悉三个平台才能真正用好 React Native,然而绝大多数开发者只熟悉一两个平台,久而久之便引发了一系列的问题。

说实话,相信使用 RN 的同学都很了解 Airbnb 描述的上述问题,确实由于平台和交互的各种原因,RN 给个别一些组件在 Android 平台和 iOS 平台提供的使用方式和组件都是有差异的,导致对于一些界面需要我们单独判断编写。确实需要开发人员同时都得了解 Android 和 iOS 的特性与异同,同时开发者还得了解 RN 技术。

RN 的坑确实很多,不知道现在有多少人还在坑里,或者在爬坑和填坑的路上,但是大家也不要气馁,因为接下来这件事,可能会让你在 RN 的路上看到一些希望。

二、Facebook 正在重构 RN

最近 React 的工程经理 Sophie Alpert 在其官方博客上宣布,Facebook 要重构 React Native,让它加更轻量、更灵活性、更适应 JavaScript 生态圈的发展。据说在过去的几年里,他们发现最初的设计原则成为 JavaScript 和原生应用之间的桥梁,加大了某些特性的开发难度。比如:

异步桥接意味着不能直接将 JS 逻辑与很多原生 API 集成在一起,因为这些原生 API 是同步的。

另外,批量桥接意味着,RN 应用程序调用原生实现的函数会更加困难。对于完全使用 RN 构建的应用程序,这些限制还是可以承受的,但对于在 RN 与现有应用程序代码之间进行复杂集成的应用程序,情况则变得相当糟糕。

因此,Facebook 正在对 React Native 进行大规模重构,让架构变得更加灵活,并更好地与混合 JavaScript / 原生应用开发中的原生基础设施集成。

通过这个项目,他们将应用在过去 5 年中学到的知识,逐步让架构更现代化。他们正在对 React Native 内部进行大量的重写,当然大部分工作都是在底层进行的,所以现有的 React Native 应用程序几乎不需要做出更改。

为了使 RN 更轻量化并能更好地适应现有的原生应用,此次重构主要从三个方面进行:

  • 首先,改变线程模型。UI 更新不再需要在三个不同的线程上执行,而是可以在任意线程上同步调用 JavaScript 进行优先更新,同时将低优先级工作推出主线程,以便保持对 UI 的响应

  • 其次,将异步渲染功能引入 React Native 中,允许执行多个渲染并简化异步数据处理

  • 最后,简化桥接,让它更快、更轻量。原生和 JavaScript 之间的直接调用效率更高,并且可以更轻松地构建调试工具,如跨语言堆栈跟踪

原文地址:https://facebook.github.io/react-native/blog/2018/06/14/state-of-react-native-2018

三、React 被 VUE 反超?

就在 Airbnb 在弃用 RN 之时,React 的star 数也被 VUE 反超。就在近几天,Vue.js 在 GitHub 上的 star 数量终于超过了 React.js 的 star 数量,并在不久之后双双破了 10W。

Vue.js 作为一个中国大神尤雨溪开发的前端框架,是在 2014 年 2 月份开源的,Vue.js 以其比 React 更简单,更方便,非常的火爆。在过去的两年中,Vue 的增长速度比其他任何主流的 JavaScript 框架都快,最近赶上了 Angular.js,并逐渐缩小了它与 Angular 和 React 之间的差距。

但是,star 数并不能代表一切,根据 NPM 软件包的下载量来衡量,React 仍然在实际使用方面占据主导地位。它即将超过每月 1000 万的巨大下载量,并且还一直保持着高速的增长。

四、Flutter 发布首个预览版

Flutter 是谷歌的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。 Flutter 可以与现有的代码一起工作。在全世界,Flutter 正在被越来越多的开发者和组织使用,并且 Flutter 是完全免费、开源的。

它也是构建未来的 Google Fuchsia 应用的主要方式。

框架特性可以说是:

1、快速开发

Flutter 的热重载帮助你快捷方便的试验、重构 UI、添加特性和修复 bug。在仿真器、模拟器和 ios、android 硬件上体验亚秒级的重载,而不会丢失状态。

2、绚丽 UI

通过 Flutter 内建的漂亮的质感设计和 Cupertino(ios-flavor)小工具、丰富的动画 api,平滑的自然滚动和平台感知,让用户感到满意。

3、响应式框架

通过 Flutter 的现代响应式 (Reactive) 框架和丰富的平台布局和基础组件轻松构建您的用户界面。用强大而灵活的 apis 解决 2D、动画、手势、效果等难题。

4、访问原生功能

通过平台 api、第三方 sdk 和原生代码使您的应用变得生动起来。Flutter 让您可以重用您现有的 java、swift 和 Objc 代码,并在 iOS 和 Android 上访问原生特性和 SDK。

Flutter 可以说是现在越来越到得重视,也有要火的趋势,但是其官方编程语言为 Dart,也是一门全新的语言。所以说,上手成本比较高,对于移动端开发人员,语言以及框架都是全新的,整个技术栈的积累也都得从头开始。

Flutter 对于移动开发人员,最诱惑的能力是其完全的跨平台特性,不同于 RN 这种一处学到处写,它是一处写到出跑。

另外 Flutter 不同于市面上的其他解决方案,之前我们最常见的无非就是两类,一个就是:使用平台支持的 Web 技术,还一个就是本地跨平台,比如:RN、Weex 等。但是 Flutter 跨平台最核心的部分,是它的高性能渲染引擎(Flutter Engine)。Flutter 不使用浏览器技术,也不使用 Native 的原生控件,它使用自己的渲染引擎来绘制 widget。

对于 Android 平台,Flutter 引擎的 C/C++ 代码是由 NDK 编译,在 iOS 平台,则是由 LLVM 编译,两个平台的 Dart 代码都是 AOT 编译为本地代码,Flutter 应用程序使用本机指令集运行。

Flutter 正是是通过使用相同的渲染器、框架和一组 widget,来同时构建 iOS 和 Android 应用,而无需维护两套独立的代码库。

最后

最后,看到这里,看到前端大事记之后,不知道你有什么想法?前端的变化多端,前端技术的层出不穷,是不是感觉前端技术变天比女人变脸还快?但是,其实也不用焦虑,也不用担心,一个技术的成熟到完全流行起来,是需要时间的,是需要过程的,这段时间和过程,就是你提高自己的最好时机。

面对千变万化的前端,我对大家只有一个忠告和建议:以不变应万变,这个不变的就是学习


非著名程序员

技术,职场,产品,思维,行业观察

 

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK