在Hybrid开发模式中,是将Native和Html5的优势混合起来,然而在同一环境中可以顺畅无缝的跑起来,还待解决。
Hybrid App
讲述 Hybrid App
,要先了解 Native App
和 Web App
的定义。 Native App
是指针对不同的手机操作系统要采用不同的语言和框架进行开发,例如Java(Android), Objective-C(iOS)等; Web App
即是 HTML5 APP
框架开发模式,使用HTML5,CSS3以及JavaScript以及服务器端语言来完成开发, Web App
具有跨平台的优势。根据定义显而易见得出两种开发模式的优劣势, Native App
可以利用系统的所有特性,因此做出杰出的性能,然而每次功能升级都必须重新打包、审核再上架,平均浪费近两周的时间。而反观 Web App
就没有这样的问题,其缺点在于Web语言无法访问很多系统特性,性能不高。
鉴于二者各有的优劣势,顺理成章的衍生出了介于中间的开发模式 Hybrid
。其特点是在原生应用中嵌入一个浏览器组件,然后通过某种方式,让原生代码和网页能够双向通讯,结果就是可以在需要原生功能的时候使用原生功能,而适合放在网页端的部分就放在服务器上。某种程度上利用到了两者的优势。另一个优势就是,由于网页技术在 iOS
和 Android
上是一样的,所以网页的这部分也就天然可以跨平台了。
目前中国70%以上的 Native APP
都已经混合了Web技术,例如淘宝、大众点评、58同城、去哪儿等超级App都嵌入了大量的HTML5页面,尤其是内容页面中体现。让部分功能在WebView技术基础上缩短开发周期、实现灵活业务调整。然而很多中小技术团队嵌入的Html5部分,用户体验还是比较差、功能比较弱。让 Native App
开发团队开发出体验好和功能强的HTML5页面并不是简单的事情。
Web App开发的缺点
- 无法获取系统级别的通知、提醒、动效等等
- 浏览的体验短期内还无法超越Native App
- 提供的是临时性的入口
究其原因, Hybrid App
的学习成本较高,需要同时掌握Native技术和Web技术,因此专业做 Hybrid
开发的程序猿并不多,学习资料自然也少,大家都是摸着石头过河,一点一点的摸索屏幕适配、UI响应速度以及如何使Native语言与Web语言在同一产品中得到很好的协调和配合。开发一款高性能的 Hybrid App
,最终还是要将两种语言化为一体,;
移动端发展到现在,此时无论是 Native App
还是 Web App
都将不能满足人们对于移动应用的需求,对于企业来说是开发快、成本低;对于用户来说则是性能好、体验佳。Hybrid App
的需求猛增,所以, React Native
和 Ionic
等框架的出现,使得桥接映射进行 JS
扩展的引擎拥有更强大的功能,更优化的性能,更规范化的独立分工,更流程化的团队协作,更灵活的动态生成机制。幅缩短迭代周期,支持功能的动态增加。由 Web
技术实现部分的功能更新无需再反复提交 AppStore
审核。用户也无需重新下载安装。
Hybrid App开发的优点
Hybrid App开发的缺点
- 用户体验不如本地应用
- 深度定制的难度大
React Native
React Native
使你能够使用基于 JavaScript
和 React
一直的开发体验,在本地平台上构建世界一流的应用程序体验。
React Native开发的优点
相对于 Hybird
应用:
- 提供了原生的控件支持
- 拥有原生的用户体验
相对于 Native
应用:
- 拥有Web的开发效率
- 可以通过更新远端JS代码,直接更新App.
React Native
开发的缺点
1、 对开发人员要求较高,当官方的提供的API等无法满足需求时,需要Native开发人员开发和扩展。
React Native
和 Ionic
的对比
目前 Github
上 React Native
是46784颗star
,Ionic
是28940颗starReact Native
人气要高一些