Hybrid Developing

在Hybrid开发模式中,是将Native和Html5的优势混合起来,然而在同一环境中可以顺畅无缝的跑起来,还待解决。

Hybrid App

讲述 Hybrid App ,要先了解 Native AppWeb App 的定义。 Native App 是指针对不同的手机操作系统要采用不同的语言和框架进行开发,例如Java(Android), Objective-C(iOS)等; Web App 即是 HTML5 APP 框架开发模式,使用HTML5,CSS3以及JavaScript以及服务器端语言来完成开发, Web App 具有跨平台的优势。根据定义显而易见得出两种开发模式的优劣势, Native App 可以利用系统的所有特性,因此做出杰出的性能,然而每次功能升级都必须重新打包、审核再上架,平均浪费近两周的时间。而反观 Web App 就没有这样的问题,其缺点在于Web语言无法访问很多系统特性,性能不高。

Native App

鉴于二者各有的优劣势,顺理成章的衍生出了介于中间的开发模式 Hybrid 。其特点是在原生应用中嵌入一个浏览器组件,然后通过某种方式,让原生代码和网页能够双向通讯,结果就是可以在需要原生功能的时候使用原生功能,而适合放在网页端的部分就放在服务器上。某种程度上利用到了两者的优势。另一个优势就是,由于网页技术在 iOSAndroid 上是一样的,所以网页的这部分也就天然可以跨平台了。

目前中国70%以上的 Native APP 都已经混合了Web技术,例如淘宝、大众点评、58同城、去哪儿等超级App都嵌入了大量的HTML5页面,尤其是内容页面中体现。让部分功能在WebView技术基础上缩短开发周期、实现灵活业务调整。然而很多中小技术团队嵌入的Html5部分,用户体验还是比较差、功能比较弱。让 Native App 开发团队开发出体验好和功能强的HTML5页面并不是简单的事情。

Web App开发的缺点

  1. 无法获取系统级别的通知、提醒、动效等等
  2. 浏览的体验短期内还无法超越Native App
  3. 提供的是临时性的入口

究其原因, Hybrid App 的学习成本较高,需要同时掌握Native技术和Web技术,因此专业做 Hybrid 开发的程序猿并不多,学习资料自然也少,大家都是摸着石头过河,一点一点的摸索屏幕适配、UI响应速度以及如何使Native语言与Web语言在同一产品中得到很好的协调和配合。开发一款高性能的 Hybrid App ,最终还是要将两种语言化为一体,;

移动端发展到现在,此时无论是 Native App 还是 Web App 都将不能满足人们对于移动应用的需求,对于企业来说是开发快、成本低;对于用户来说则是性能好、体验佳。Hybrid App的需求猛增,所以, React NativeIonic 等框架的出现,使得桥接映射进行 JS 扩展的引擎拥有更强大的功能,更优化的性能,更规范化的独立分工,更流程化的团队协作,更灵活的动态生成机制。幅缩短迭代周期,支持功能的动态增加。由 Web 技术实现部分的功能更新无需再反复提交 AppStore 审核。用户也无需重新下载安装。

Hybrid App开发的优点

HybridDeveloping_HybridApp

Hybrid App开发的缺点

  1. 用户体验不如本地应用
  2. 深度定制的难度大

HybridDeveloping_移动开发的分类

React Native

React Native 使你能够使用基于 JavaScriptReact 一直的开发体验,在本地平台上构建世界一流的应用程序体验。

React Native开发的优点

相对于 Hybird 应用:

  1. 提供了原生的控件支持
  2. 拥有原生的用户体验

相对于 Native 应用:

  1. 拥有Web的开发效率
  2. 可以通过更新远端JS代码,直接更新App.

React Native 开发的缺点

1、 对开发人员要求较高,当官方的提供的API等无法满足需求时,需要Native开发人员开发和扩展。

React NativeIonic 的对比

对比
目前 GithubReact Native 是46784颗star
Ionic 是28940颗star
React Native 人气要高一些
HybridDeveloping_开发环境
开发思维

Ionic

Ionic

React Native

React Native基本实现思路

总结

HybridDeveloping_AppType

HybridDeveloping_总结

文章作者: MichaelMao
文章链接: http://frizzlefur.com/2017/04/11/HybridDeveloping/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 MMao
我要吐槽下