webapp、hybridapp、nativeapp、reactNativeapp、flutter对比

540 阅读3分钟

手机App现在有各种实现方案:大中型公司采用哪种方案,主要从开发成本和运行效能两个方向考虑

1.web App:就是移动端动态响应式网站 优点:开发成本低 --可以完全实现前端后分离开发 --开发速度快 --一份源码可以运行到不同的系统 --开发完毕,即时上线 缺点:性能较差--由于浏览器限制 虽然HTML对底层硬件进行支撑,但是存在很多兼容性问题,可以使用第三方库解决 对底层硬件控制效能较差--尤其3D渲染

一般可以用来做展示类网站、电商类网站、新闻类网站、管理系统,不涉及底层硬件或少量设计底层硬件的系统开发

  1. Hybird App:是指介于web-app、native-app这两者之间的app,它虽然看上去是一个Native App,但只有一个UI WebView,里面访问的是一个Web App,主要界面和逻辑有HTML+CSS+JavaScript实现,底层API通过js Bridge访问Native Api实现,整个应用打包到一个Web View(类似于浏览器内核)--打包生成不同操作系统下安装包--主要是Android和IOS。 优点:开发成本低 --可以完全实现前端后分离开发 --开发速度快 --一份源码可以运行到不同的系统
    --性能相对于Web App较高 --类似于原生APP体验 --对底层硬件支持较好

    缺点:性能相对于Native App低 大部分数据依赖于网络 需要App Store审核,上线时间不确定

  2. Native App: --Andrid下使用Java开发 --IOS下使用objectc 或swift开发

优点:性能高 可以直接通过操作系统和硬件进行交互 对底层硬件支持好 对性能高的程序支持好 可以离线使用 可以通过App获利分成 缺点:开发成本高 --一般公司,两个团队,一个Android团队和一个IOS团队进行开发,分别发布不通操作系统下的安装包 不同系统App具有差异性 --由于底层API支持,同一个App在不同系统表现不同 需要App Store审核,上线时间不确定 经常需要更新

  1. ReactNative:React 使你只使用JavaScript也能编写原生移动应用。 它在设计原理上和React一致,通过声明式的组件机制来搭建丰富多彩的用户界面,而且可以使用大量成熟的UI库,快速开发。对底层硬件支持好,但是需要通过Bridge进行转换,性能有消耗。

    优点:开发成本低 前后端分离开发 对底层硬件支持好 开发速度快--有很多成熟的UI库 一份源码可以运行到不同的系统

    缺点:性能相对应Native App较低,因为对底层硬件访问需要Bridge转换 需要App Store审核,上线时间不确定 经常需要更新

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

优点:开发成本相对较低 一份源码可以运行到不同的系统
性能高--性能和Native相同

缺点: 需要App Store审核,上线时间不确定 经常需要更新

综上所述: Native ReactNative Flutter开发成本比较 成本由低到高比较 ReactNative Flutter Native

         性能比较:
         性能由低到高
         ReactNtive 、Flutter和Native相似

个人观点:技术本身没有优劣,不同技术是用来满足不同开发需要和客户需求的,现在各种App技术共存。flutter是一个不错的解决方案。