86

JS Native:覆盖阿里几乎所有产品的全新开发模式,到底有何高明之处(一)? - 恒生技...

 6 years ago
source link: http://rdc.hundsun.com/portal/article/846.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.

JS Native:覆盖阿里几乎所有产品的全新开发模式,到底有何高明之处(一)?

现在概念上的APP诞生在Apple推出iOS,Google推出Android之时,从这时候开始,便有了App开发工程师这个职位,比如iOS工程师、Android工程师等等。

最开始的App开发只有原生开发这个概念,但自从H5广泛流行后,一种效率更高的开发模式Hybrid应运而生,它就是“Hybrid模式”,时至今日,Hybrid模式也不是那么的“先进”,“潮流”了,伴随着“React-Native”、“Weex”等新型技术的崛起,也给我们带了全新的“JS-Native模式”。那么这个大热的“JS-Native”到底是什么,就让我们通过本文来一探究竟吧。

【JS Native是什么】

Facebook当初在深入研究Hybrid开发后,觉得这种模式有先天的缺陷,所以果断放弃,转而自行研究,后来推出了自己的“React Native”方案,不同于H5,也不同于原生,更像是用JS写出原生应用。

React Native可以认为是JS Native开发模式的开山鼻祖,而后来者WEEX和NativeScript更被认为是React Native的有力竞争者——事实上这三者在原理或者说核心实现上并没有本质区别——最大的差异在三者所选的前端JS框架上,React Native自然是Facebook自家的React,WEEX的前端框架是目前大热的VUE2,而NativeScript则是已经有点过气了的Angular2。

【JS Native的适用场景在哪里?】

目前阿里几乎所有的产品都有WEEX的身影,腾讯的小程序、网易的严选、互联网新贵饿了么、携程甚至是传统超商沃尔玛,他们都在使用JS Native。

除了大型游戏等具有自己单独开发体系的App以外,大部分情况下都可适用,并且笔者推荐采用这种模式来开发。基于JS Native的特性,特别适合以下类型的团队进行应用:

▪ 完全没有或仅有少量原生开发开发人员的团队;

▪ 正在筹划新App的团队。

对于原生开发人员已有一定规模的团队,也可以使用JS Native对现有产品进行重构,优化开发人员结构,提高后续功能的开发效率,降低研发成本。

【JS Native的优劣势分析】

▲优点

▪ 开发成本略大于Hybrid模式,但是远远小于原生模式。相比Hybrid模式,看似多出了组件封装的工作量,但组件封装基本是一次性的工作量,不用重复进行。

相比于原生模式,这种模式是统一用JS写代码,所以在完成组件封装之后,往往只需要一名前端成员投入学习,即可完成跨平台app的开发,而后续开发过程中这些组件依然是可以复用的。

▪ 性能体验远高于Hybrid,与原生相比也丝毫不逊色。这种模式和Hybrid最大的区别是Hybrid中的view层实际上还是浏览器渲染的dom,但是这种模式可以认为是用JS写原生——即页面用JS写,然后原生通过JS引擎分析执行JS,将JS内容单独渲染成原生Android和iOS,所以也就是为什么性能不逊色于原生。

▪ 开发人员单一技术栈,一次学习,跨平台开发,甚至时一次编写跨平台开发。这种模式是统一由JS编写,有着独特但和HTML5前端近似的语法,所以只需要学习一次,即可同时开发Android、iOS和Web,也利于前端人员的技术转型。

缺点

▪ 有一定的学习成本,无法像Hybrid模式一样平滑。虽然使用的技术和语法和HTML5都非常的接近,但始终需要一定的学习。

▪ 新技术,坑多。但是关注度高,填坑的人也多。

WEEX一样使用了当下H5前端最热门的Vue 2.0作为前端JavaScript框架,H5前端开发人员只需经过简单的培训和学习即可以投入到终端页面开发中。

本文主要介绍了JS Native和其主要的应用场景,以及优缺点分析。下节我们继续深入介绍JS Native的开发原理以及其性能表现,敬请关注!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK