- 基本的分类
- 基本的概念
- 基本的历史
- 原生App开发(Android, iOS)
- 基于标记的页面开发(Web Apps, PWA)
- 混合开发(Cordova)
- Web到原生的解析式桥接开发(React Native / NativeScript)
-
手机开发早期 手机厂家自行开发或者仅与合作伙伴开发。
-
功能机时代 出现了SDK与统一规范的平台。 出现了J2ME,Symbian,Windows Mobile三个主要的开发平台;还包挌MTK平台的一些SDK开发。
-
智能机时代 主要是iOS和Android两大平台。 iOS以苹果iPhone 1为标志(2007)。 Android以T-mobile的G1为标志(2009)。
- WAP标记语言开发 WAP协议 WAP标记语言
- WAP 2.0 一次与HTML融合的尝试 Mobile Profile
- HTML5移动开发 多屏开发与Media Query的出现 HTML5规范的形成
- WAP是针对低速无线网络开发的,互联网并没有这个限制
- WAP的协议栈与互联网不同
- WAP的标记规范不同,一个是WML,一个是HTML
- WAP已经不再继续,即WAP网站基本上已经消失
- WAP站与(移动)Web站是完全不同的事物 WAP站是低速、低智能手机时代的移动网络站点 移动Web高速、高智能移动设备、多屏时代的通用网站技术
- WAP目前基本上已经消失,移动Web站,刚开始兴起 1.HTML5 2.PWA
- 基于WML / 基于XHTML的mobile profile版本
- 使用WMScript,WAP 2.0后可以使用XHTML
- 普通的浏览器无法访问,只有Opera这样的浏览器可以访问
- 规范简单,互动性差
- 基于WAP协议或者通过HTTP网关获取WML等资源
- 处于逐步消失的状态
- 基于HTML规范,是HTML5之后兴起的技术
- 可以支持所有的HTML规范
- 能对多屏的访问做出不同的响应,以优化用户体验
- 基于TCP/IP协议栈,以HTTP和WebSocket为主要协议
- 刚刚兴起,新技术不断的出现。比如PWA(Progressive Web Applications)
- 未来可能在多数场景下可取代原生应用
- UI设计理念(响应式,材料设计)
- Media Query,viewport为基础的多屏适配技术
- HTML5 + CSS3
- PWA(Progress Web Applications)技术让Web App功能更加的强大
- 原理: 将原生与标记规范(通常是HTML)结合起来
- 技术栈: WebView + HTML/CSS/JS
- 最成功的实现框架 cordova/phonegap
- 原理: 通常是将JS/CSS/HTML代码,通过解析器,转化成相应的原生调用。
- 技术栈: JS + 平台规范 + 接口规范
- 常见的实现框架: React Native(最流行), NativeScript(有Google支持)
1. 编程语言:Java
2. 开发环境: Android SDK + 主流操作系统
(WIN, GNU/Linux, Mac OS)
3. 官方IDE: Android Studio
1. 编程语言: Object C, swift
2. 开发环境: XCode + Mac OS Only
3. 官方IDE: XCode
- 常见的移动UI方案 a. Bootstrap: 使用最广泛的Web UI框架之一 b. Angular Materail:与Android风格通用的UI框架
- 常见的应用框架
- Angular.js
- Vue.js
- React.js
- 技术规范 PWA(Progressive Web Applications)
- 基础成熟方案:cordova/phonegap
- 全套方案:ionic = UI + 交互 + cordova
- 编程语言:主要是Javascript,扩展时需要使用到(Java/Object-C)
- 开发环境: 常规Web开发环境 + 主流操作系统(WIN, GNU/Linux, Mac OS)
- 基于WebView组件
微信小程序也是基于WebView组件开发的
- 常见框架:React Native, NativeScript
- 开发环境:Node.js + 手机环境(Android, iOS)
- 技术栈: Web 技术 + 原生技术
- 通常执行速度快,响应迅速
- 用户体验好
- 可以最大限度发挥平台的优势
- 通用性差,代码无法移植
- 学习成本大,开发成本高
- 开发成本,学习成本相对较低
- 技术成熟,通用性强
- 升级方便,发布简单,即时更新
- 影响速度低于原生应用
- 就是无法及时跟近最新的硬件变化
- 可以随时接入新硬件的接口
- 可以最大限度的使用Web技术
- 影响速度低于原生应用,与Web应用基本一致
- 有一个的学习门槛
- 成熟度有时候不够
- 可以获得接近于原生的性能
- 可以直接基于Web技术和Node.js技术进行应用开发
- 有一定的技术门槛
- UI不同平台不一样
- 成熟度仍有待观察
- 其它专利相关的风险(最近RN的专利风险问题,很多公司放弃了RN)
通常我们可以采用以下的优先标准来构建我们的应用:
- 没有硬件交互或者只需要浏览器支持的硬件交互,那么Web应用就可以了。
- 有一些浏览器不支持的硬件交互,并且交易不频繁,那么混合应用比较适合。
- 对于混合应用的影响事满意,或者硬件交易挺多,但是性能要求不高,可以考虑采用解析式原生桥接应用
- 如果以上都达不到要求,那么考虑采用原生应用。