1、三种移动端开发模式
现今流行的移动端开发模式共有三种:
- web(H5)
- Hybrid(混合开发)
- Native(原生)
1.1 Native APP(原生开发)
Native APP又称原生APP,就是我们平时说的手机应用软件。
原生APP 是针对IOS、Android、Windows等不同的手机操作系统要采用不同的语言和框架进行开发出来的,通常是由“服务器数据+APP应用客户端”两部份构成。
技术: iOS: Object C或者 swift Android: java
优点:
- 体验好,用户无法上网也可访问APP应用中以前下载的数据;
- 性能稳定,可调用手机的硬件设备(语音、摄像头、短信、GPS、重力感应等)和本地资源(通讯录,相册等);
- 操作速度快,能够实现出色的动效,转场动画;
缺点:
- 跨平台差,每种平台都需要独立的开发语言。Java(安卓),Objective-C(iOS)等等;
- 用户要使用原生APP,必须通过安装到手机里面才行,而且APP软件体积大,占用较多手机内存容量;
- 要获取最新功能,需要升级应用,所以会容易出现有些用户不升级,导致多个不同功能版本出现,维护成本大;
- 开发周期长,开发人员工资起点高;
- 更新缓慢,根据不同平台,提交–审核–上线流程较复杂;
1.2 Hybrid(混合开发)
混合开发,就是Native结合Web的混合开发。内部本质是Web网页,使用打包软件给它套一层原生APP的外壳。可以在应用商店AppStore发布,可自主更新。
技术:React Native, phoneGap(cordova+android) ,APICloud, WeX5
优点:
- 既可以调用丰富的手机设备API,也能拥有Web APP的跨平台能力
- 可以在应用商店发布,实现收费下载
- 内部是网页结构,可以自主更新,做到开发一次,所有平台生效
- 降低开发成本和技术成本,降低维护和开发周期
缺点:
- 本质上就是一个Web APP使用了原生APP的壳,所以体验比不上原生APP
- 开发难度比Web APP高,有一定的学习成本,开发周期比Web APP长
- APP发布有可能无法通过审核,需要多次调整,才能发布
- 依赖开发框架本身提供的手机设备API,少部分设备功能只能借住原生语言进行调用才可以
- 对团队技术栈要求相对高,既要懂web开发的,也要懂原生APP开发的
1.3 Web开发
Web APP本质上是为移动浏览器设计的网站,可以在各种智能手机浏览器上运行。
技术:HTML5+Javascript+CSS3 vue组件化+项目打包
优点:
- 一套代码到处运行,可以同时在 PC、Android、iPhone 浏览器上访问
- 开发者不需要发布到应用市场审核,用户不需要下载、安装和更新
- 开发周期短,维护成本低
- 用户不需用户手动更新,可以自动更新,直接使用最新版本
缺点:
- 转场表现略差,要求联网
- 用户体验没那么炫。图片和动画支持性不高
- 没法在App Store中下载、无法通过应用下载获得盈利机会
- 对手机功能应用缺乏,有限制(摄像头、GPS、蓝牙等)
1.3 三种移动端开发模式的比较
- 开发难度:无疑web和Hybrid难度要小于原生app开发,而且可以利用现有的Web开发工具和工作流程;
- 发布渠道及更新方式:Hybrid可以在应用商店AppStore发布,可自主更新;原生App更新必须通过商店AppStore;
- 移动设备本地API访问:Hybrid可以通过jsAPI访问移动设备的摄像头,GPS等;原生App 可以通过原生编程语言访问设备的所有功能;
- 跨平台,可移植性:基于浏览器的移动web具有最好的可移植性和跨平台表现;混合开发也能节省跨平台的时间成本,只需要写一次核心代码就可以部署在不同的平台;原生App跨平台性能差。
- 消息推送:只有混合App 和原生App支持推送消息,增加用户忠诚度。
参考:
移动端开发相关概念_wangfan741的博客-CSDN博客
2. 移动端开发的基础知识
参考: