React Native 移动技术在企业架构的应用

图片描述

很高兴在今天下午与各位有这样一次关于驱动原生(React Native) 技术的交流。

此次交流的内容,主要是我在Pworld2016 大会的讲解内容,本想比较真实的还原当时的情况,在各个设计群发出预告后,还是看到了很多不同的理解。

于是我对PPT的内容进行了增加和修改。

很多工程师,包括前端工程师、甚至是移动前端工程师对于React Native 有很多误解。

图片描述

React Native 不是React,而且我认为Ta比React 技术更被广泛认可。

就在不久Github官方发布的2016 开源报告中(感兴趣的,可以移步:https://octoverse.github.com

),React Native的活跃度排名第五,经常被国人搞混在一起的React 并没有取得这么多的关注。

同时,《软件开发时代》杂志(SDTimes)回顾了2015年Github上十强中,ReactNative 排名第六。

分享的主题是《React Native 移动技术在企业中的实践》。

图片描述

一、React Native 已成移动的技术主流方向

图片描述

* React Native 已成移动的技术主流方向,特别是移动跨平台领域内。*

可能会有人提出疑问,跨平台技术最主流的不是hybrid技术吗?

两年前,这个结论我认可,现在不敢苟同了。

我认为Hybrid已经是上一代的跨平台技术了。

就在上个月,CSDN举办的MDCC移动开发者大会专场上,大家不约而同的全部在分享驱动原生型的跨平台实战,而没有一个讲者再多提Hybrid。

而下周InfoQ在上海举办的Qcon大会上从题目看,至少有两三场在分享驱动原生型(包括React Native、Weex)的移动开发,同样,一场Hybrid的都没有。

React Native 的缘起

图片描述

说起React Native,不得不提到Facebook。

Facebook创始人兼CEO马克·扎克伯格,在TechCrunch举办的Disrupt大会上,「专注在HTML5上面是他有史以来犯过的最大的错误。」

解读这句话其实用后面一句更为客观:

「Facebook最大错误是在 HTML5 上押注过大,在移动平台上浪费两年时间」

就是在这种背景下,推出了React Native 的解决方案。

图片描述

React Native 已是一种移动前端技术流派

从整个移动App前端技术的演进看,我认为,React Native成为一种技术流派。

图片描述

React Native 已是一种移动前端技术流派,我称之为驱动原生型的。

无论React Native、或者Primeton Mobile以及Weex,他们从架构和实现的思路上不谋而合的走到了一起。基本上具备一下两个比较鲜明的特点。

采用原生渲染,摒弃Webkit渲染,提升体验。

采用Web语言作为基础开发语言,降低学习成本。

事实上,这个技术最近两年已经得到了大量企业广泛的验证。

图片描述

互联网行业中,React Native 技术已经在腾讯、阿里、携程、58、Facebook等大型互联网公司核心App中大量采用。

最近更新的案例列表表明,在Baidu(手机百度)、Instagram、JD(手机京东)等大型主流应用的iOS版本、Android中均已经采用。

更有甚者,在VR、游戏等重体验的App也采用了,这充分说明了其用户的良好性。

在企业中,React Native正在成为移动前端技术的首选。

图片描述

驱动原生技术在企业客户中广泛的使用,上图是部分客户的App,有兴趣可以自行下载,就不赘述。

甚至,苹果 AppStore为此也修改了审核规则。

图片描述

在2015年7月28日的苹果 AppStore审核政策调整,从之前的不允许JavascriptCore ,而在这天之后删除此条款。

允许运行JavascriptCore的动态加载代码,通过App Store 的审核。

要知道,JavascriptCore 动态加载是驱动原生型(React Native )的实现原理。

二、React Native 的利和弊

React Native 通讯机制原理

图片描述

React Native的通信机制,可以简单总结为三句半。

通过Javascript 的方式调用

iOS/Android提供了js-Bridge

最终通过iOS/Android 的控件进行渲染

全过程,没有Webkit(浏览器)什么事儿(这半句是为了更好的解释其与Hybrid的区别)

在说明其机制后,我们更加容易理解其优点。

图片描述

React Native 技术流派的三大优点

体验好:彻底摒弃Webview,摆脱Webview的体验差、性能差的问题,这也是为什么大量采用Hybrid技术的转向RN。

热更新:支持应用内热更新与动态显示,支持AppStore 上应用的热更新,相对于原生语言开发的App来讲,这一点更加的容易和灵活。

原生能力:本地能力、原生能力调用方便,实现一个真正的MobileNativeApp,而不是一个Web App。

举例说明上述的优点在业务上的价值

图片描述

正是因为RN技术对于体验上有超过HTML5渲染太多,大量主流核心App中也均采用RN进行了尝试。

包括,QQ、QQ音乐、全面K歌、携程、手淘/手猫等主流核心应用均采用驱动原生技术进行了改造。

当然最近58、美团、手机京东、Instagram、Airbnb,甚至手机百度等也都加入到了React Native的阵容。

这无疑给正在抉择的人提升了信心。

图片描述

在保证了体验的同时,React Native技术让应用内冷热更新都成为可能。

支持应用内,冷更新、热更新,减少对应用商店等渠道的依赖。

Andriod、iOS,AppStore、in-house的全面支持

上图中,最左侧的图,是手机淘宝的Andriod版的,非应用市场更新的界面,它采用的是应用内冷更新的方式,即,不需要经过市场,需要重启应用。

实际上,采用驱动原生的方式,完全可以做到应用内热更新的效果,即不需要经过市场,不需要重启应用。如右图所示,做过移动App的人估计通过状态栏和沉浸式的效果就可以看出这个App是iOS版本的。

本质上,这个优点可以大幅降低App的二次推广成本,全面提升新业务功能的客户达到率。

图片描述

随着移动互联网的深入发展,移动端已经不仅仅是简单的信息展示,越来越多的应用已经从移动展示发展到移动开展业务的场景。

比较典型的是,银行的移动办理贷款、保险公司的移动展业等等,这就需要App端对于原生能力的使用更加深入,更大发挥移动的优势,强化交互性。

而驱动原生的技术确实能够提供Hybrid方案难以完成的场景。

上面讲述了其几大优点,实际上在使用React Native 落地的过程中,难免会遇到一些难道,我们稍微总结了一些其弊端。

图片描述

React Native 技术的三大待提升点

其本身不夸平台,需要多个平台、多套代码,这回导致实施成本和维护成本提高。

其开发期强依赖于React语法,导致传统企业人员学习成本增加。实际上正如我之前说的那样,我认为React的接受度远不及React Native的接受度,让一个超级流行的项目依赖一个不及它的项目,这本身就是一个值得商榷的地方。当然React 也是一个不错的东西啦。

React Native从技术纬度,在前端并没有提供精细化的能力,缺少微应用的支持。特别是在企业中,实施企业App,无法快速响应岗位调整,同时难以针对多供应商、多团队并行研发。

三、我们的一些实践

图片描述

首先,我们进行了跨平台的尝试,通过一套代码支持多种操作系统,支持屏幕自动适配的问题。

其实,我们采用了标准Web语法(HTML/CSS/Javascript),作为开发期语言,从而低昂迪企业人员学习成本。

再次,无论是开发期,还是运行态,支持MicroApp,方便面向岗位、职位,体现App功能。同时也方便进行多开发团队、多提供商团队并行工作模型的支持。

图片描述

我们通过上层封装,通过一套代码可以支持iOS、Android的并且多屏适配、甚至多屏同时调试的支持。

调试视频地址:http://video.weibo.com/show?fid=1034:4aa1a7b8e42d1755faa6e0ad5da18d9c
图片描述

采用标准Web语法(HTML/CSS/javascript),降低学习成本。

HTML用于布局、控件及属性设置等

CSS用于样式设置

Javascript 用于数据设置、交互响应等

图片描述

全面支持微应用模型,以微应用作为开发期、运行期的管理单元,更适合企业大规模使用。同时带来以下的好处:

采用微应用的方式进行上线运营,可以有效提高业务响应度、提升运营的精细化

以微应用的方式进行更新、管理和监控,可以提升运营效率

通过微应用市场的方式,用户自行定义可使用功能,提升体验

微应用的添加方便结合权限控制,提升运营的管控性和功能友好性

图片描述

同时,支持跨地域拖团队、多供应商并行工作模式,方便多级创新。

由于时间和篇幅的限制,上述的特点没有展开讨论,如果大家有兴趣可以补充参考以下我在MDCC(移动开发者大会),跨平台专场上的分享。

具体的PPT,可从http://special.csdncms.csdn.net/MDCC2016/ 获取

四、总结和展望

图片描述

无论互联网公司还是企业,React Native已经成为主流

React Native 具备体验好、热更新、原生能力等优势

基于RN,可以完善跨平台、Web语法、微应用等各种能力

面向大中型企业,React Native 更方便对各类业务的支撑

讲师博客:http://blog.csdn.net/haozhenming

普元云计算专区:http://primeton.csdn.net/m/zone/primeton/index#

普元公众号:

图片描述

阅读更多
文章标签: 普元 react-native
想对作者说点什么? 我来说一句

React Native高级

2017年09月20日 51B 下载

React React Native 全套

2017年11月09日 73B 下载

React Native电商项目实战

2017年11月27日 54B 下载

React Native项目实战优化之路

2017年11月30日 7.88MB 下载

react native

2018年03月01日 11KB 下载

没有更多推荐了,返回首页

不良信息举报

React Native 移动技术在企业架构的应用

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭