- APP 三种开发方式
目前主流APP程序大体分为三类:Web App、Hybrid App、 Native App。
1.1 Native App,原生APP,使用原生(即Android或iOS)开发的APP。一般依托于操作系统,有很强的交互,是一个完整的App,可拓展性强。需要用户下载安装使用。
优点:
(1)打造完美的用户体验
(2)性能稳定
(3)操作速度快,上手流畅
(4)访问本地资源(通讯录,相册)
(5)设计出色的动效,转场,
(6)拥有系统级别的贴心通知或提醒
(7)用户留存率高
缺点:
(1)无法跨平台,开发成本高(Android和iOS都需要开发各自平台的版本和界面适配)
(2)维护成本高(例如一款App已更新至V5版本,但仍有用户在使用V2、V3、V4版本,需要更多的开发人员维护之前的版本)
(3)更新缓慢,根据不同平台,提交–审核–上线 等等不同的流程,需要经过的流程较复杂
1.2 Web App 指采用Html5语言写出的App,不需要下载安装。类似于现在所说的轻应用。生存在浏览器(Android使用WebView,iOS使用UIWebView)中的应用,基本上可以说是触屏版的网页应用。
优点:
(1)开发成本低,调试方便
(2)更新快,
(3)更新无需通知用户,不需要手动升级
(4)能够跨多个平台和终端。
缺点:
(1)临时性的入口,用户留存率低
(2)无法获取系统级别的通知,提醒,动效等等
(3)依赖于网络,页面访问速度慢,耗费流量
(4)设计受限制诸多
(5)性能低,用户体验较差
1.3 Hybrid APP
乍一看和Web App没啥差别,但涉及到的技术成本、开发成本、学习成本比Web App高,它综合了Web App的开发速度和Native App的高性能体验。通过JSBridge,H5页面可以调用Native的api,Native也可调用H5页面的方法或者通知H5页面回调。
优点:
(1)开发成本较低,可以跨平台,调试方便
(2)维护成本低,功能可复用
(3)更新较为自由
(4)针对新手友好,学习成本较低
(5)功能更加完善,性能和体验要比起web app好太多
(6)部分性能要求的页面可用原生实现
缺点:
(1)相比原生,性能仍然有较大损耗
(2)不适用于交互性较强的app
Native App | Web App | Hybrid App | React Native App | |
原生功能体验 | 优秀 | 差 | 良好 | 接近优秀 |
渲染性能 | 非常快 | 慢 | 接近快 | 快 |
是否支持设备底层访问 | 支持 | 不支持 | 支持 | 支持 |
网络要求 | 支持离线 | 依赖网络 | 支持离线(资源存本地情况) | 支持离线 |
更新复杂度 | 高(几乎总是通过应用商店更新) | 低(服务器端直接更新) | 较低(可以进行资源包更新) | 较低(可以进行资源包更新) |
编程语言 | Android(Java),iOS(OC/Swift) | js+html+css3 | js+html+css3 | 主要使用JS编写,语法规则JSX |
社区资源 | 丰富(Android,iOS单独学习) | 丰富(大量前端资源) | 有局限(不同的Hybrid相互独立) | 丰富(统一的活跃社区) |
上手难度 | 难(不同平台需要单独学习) | 简单(写一次,支持不同平台访问) | 简单(写一次,运行任何平台) | 中等(学习一次,写任何平台) |
开发周期 | 长 | 短 | 较短 | 中等 |
开发成本 | 昂贵 | 便宜 | 较为便宜 | 中等 |
跨平台 | 不跨平台 | 所有H5浏览器 | Android,iOS,h5浏览器 | Android,iOS |
APP发布 | App Store | Web服务器 | App Store | App Store |
1.4 Hybrid APP框架
Hybrid App开发,现阶段主流的平台包括Cordova,AppCan,uni-app,APICloud,小程序,React Native,Flutter(Dart)等,它们基于webkit开源内核,使用HTML5 标准开发,适配机型简单,支持开发者自定义插件,并能很好的应用于商业,教育,娱乐等行业,成为移动开发者的首选开发平台。