今天决定开始学习App的开发,但是一做深入了解就发现了好多自己从未触碰到的领域:
第一点是App的种类(开发方法不同):
- 原生App(native-app):
- 原生App基于手机的操作系统比如安卓、iOS等程序进行编程开发的App,利用了Android、iOS平台官方的开发语言、开发类库、工具进行开发。比如安卓的java语言,iOS的object-c 语言。在应用性能上和交互体验上应该是好的。
- 优点:
- 可访问手机所有功能、可实现功能齐全;
- 运行速度快、性能高,的用户体验;
- 支持大量图形和动画和重新发现,不卡,反应快。
- 比较快捷地使用设备端提供的接口,处理速度上有优势。
- 缺点:
- 主要是成本高、周期长,Android和iOS都需要单独开发。
- 常见的原生App:微信、QQ等
- WebApp:
- 本质就是浏览器功能的叠加,用普通Web开发语言开发的,类似于开发了一个网站通过浏览器运行,然后加了一个app的壳。
- 优点:
- 支持范围广;
- 开发成本低、周期短。
- 缺点:
- 对网络要求高,离线不能做任何操作;
- 功能有限,权限受限制,不如原生App;
- 运行速度慢,页面不能承载太多东西;
- 常见的WebApp:(后续补充)
- Hybrid App(混合模式移动应用)
- Hybrid App又称混合开发,也就是半原生半半Web的开发模式,部分核心内容通过原生开发,而非核心的内容使用web模式开发
- 优点:
- 比web版实现功能多;
- 兼容多平台;
- 可离线运行;
- 缺点:
- 用户体验不如本地应用;
- 性能稍慢
- 技术还不是很成熟。
- 常见的Hybrid App:(后续补充)
二、如何区分这些不同类型的App呢?
- 看断网情况:通过断开网络,刷新页面,观察内容缓存情况来有个大致的判断,可以正常显示的就是原生写的,显示404或者错误页面的就是html页面(即web-app)。
- 看加载的方式:如果在打开新页面导航栏下面有一条加载线的话,这个页面就是H5页面,如果没有就是原生的。
- 看页面刷新:如果页面没有明显刷新现象的是原生的,如果有明显刷新现象(比如闪一下)的是H5页面(Ios和Android)。比如淘宝的众筹页面。
三、最终的选择
通过对几种开发方式的比较权衡了自己的基础,决定从开发成本较低的Web-App学起;在翻找资料时发现一个词:uni-app;
- uni-app:uni-app 是一个使用 Vue.js 开发跨平台应用的前端框架,开发者只需编写一套代码,可编译到iOS、Android、H5、小程序等多个平台,不仅能正确运行且能给用户带来优秀体验。
- 优点:
- uni-app是一套可以适用多端的开源框架,一套代码可以同时生成ios,Android,H5,微信小程序,支付宝小程序,百度小程序等;
- uni-app对前端开发人员比较友好,学习成本比较低;
- uni-app使用HBX进行开发,使用HBX进行开发,速度比较快;
- uni-app拓展能力强,封装了H5+,支持nvue,也支持原生Android,ios开发。可以将原有的移动应用和H5应用改成uni-app应用;
- 缺点:
- uni-app问世的时间还比较短,有很多地方还不是完善,坑很多;
经过了解决定试着学习一下uni-app框架,并试着开发一个小的项目:
注:本人初次接触app开发,故本文参考了网络上部分文章,如有问题请私信我!