一,手机app的开发方式
1,Native App
定义:指使用原生API开发App,比如iOS用OC语言开发
优点:性能高
缺点:开发维护成本高,版本更新慢。
2,Web App
定义:指使用Html开发的移动端网页App,类似微信小程序,整个App都是网页。
优点:用户不需要安装,不会占用手机内存
缺点:用户体验不好,不能离线,必须联网
3,Hybrid App
定义:混合开发模式,原生Api+Html共同开发,比如iOS,用html写好界面,用UIWebView展示。
优点:界面复用性强,一个界面,iOS和安卓都可以使用
缺点:相对于原生,性能相对有所损害
4,Weex(阿里巴巴)
定义:基于Vue(JS框架)的语法开发的App,底层会自动把JS代码解析成对应平台(iOS,安卓)的原生API,本质还是原生API开发,只不过表面是用Vue开发。
优点:可以做到一套代码,跨平台执行,底层会自动判断当前是哪个平台,转换为对应平台的原生API代码。
缺点:开源较晚,互联网上相关资料还比较少,社区规模较小
5,React Native(FaceBook)
定义:基于React开发的App,使用JSBridge,使用JS语言
优点:1, 跨平台开发;2, 跳过App Store审核,远程更新代码,提高迭代频率和效率,既有Native的体验,又保留React的开发效率。
缺点:对于不熟悉前端开发的人员上手比较慢,不能真正意义上做到跨平台,使用后,对app体积增加。
6,Flutter(谷歌)
定义:自己实现了一台UI框架,然后直接系统更底层渲染系统上画UI,使用Dart语言
优点:1, 跨平台开发;2, 跳过App Store审核,远程更新代码,提高迭代频率和效率,既有Native的体验,又保留React的开发效率;3,多组件,高用户体验
缺点:对于不熟悉前端开发的人员上手比较慢,不能真正意义上做到跨平台,使用后,对app体积增加。18年初开源,起步晚;
7,PWA:
全称:Progressive Web App
定义:本质上是 Web App ,借助一些新技术也具备了Native App的一些特性,兼具 Web App和Native App的优点
特点:
- 可靠 ( Reliable ) - 即使在不稳定的网络环境下,也能瞬间加载并展现
- 快 ( Fast ) - 快速响应,并且 动画平滑流畅
- 有 粘性 ( Engaging ) - 用户可以添加到桌面和接收通知
- 【 沉浸式的用户体验 】
- 沉浸式特点是只显示内容区域,没有状态栏,导航栏,工具栏等
- 沉浸式是针对实用型和效率型而言
- 优点是可以让用户停留时间较长,用户体验比较轻松,更好的促进转化
- 技术特点
- 离线可用 ( Service Worker )
- 主屏图标 ( App Manifest )
- 通知 ( Push API & Notification API )
二,手机app的跳转方式
-
1,跳转下载:
- 安卓可以做到用户无感知,苹果需要跳转到appstore下载
-
2,集成SDK
- 会增加主APP的大小,版本发布也要随主APP发布
-
3,跳转H5
- 需要基于H5开发,主要是前端的投入,使用web开发技术,主流应用,体验没有原生流畅
-
4,小程序转换:
- 转换代码工具,但难以过苹果审核
-
5,轻量级的hybrid
- 常用的混合框架:IONIC,Angular,PhoneGap,Cordova
-
6,重量级的hybrid
- Weex,RN,Flutte
三,桌面app的开发
- C#
- QT:一个跨平台的 C++图形用户界面库
- electron:现在最流行的
- electron是基于Chromium的(Chromium是chrome的开发者版本),他完全遵循W3C的标准,对ES,CSS,BOM,DOM的最新规范都有很好的支持
- 基于Node,生态成熟,有足够丰富的第三方包来支持我们的开发。没必要自己再绞尽脑汁的去想某个功能的实现,别人写的npm包早已帮我们实现,这就是”拿来主义”的好处。
- 可以开发跨平台的桌面应用,在windows,linux,mac OS上面运行