APP开发-概念篇
大约 4 分钟
前言
表面上看, 手机 App 都是同样的东西, 就是手机上的应用程序, 点击图标就能运行, 但是它们的底层技术不一样。接下本篇将介绍一下常见的 APP 开发技术以及其的优缺点。
文章著作权声明
注意
声明以下内容摘自原文 H5 手机 App 开发入门:概念篇
分类
按照 APP 的开发技术, APP 大概可以分为以下三类
App 分类
- 原生应用(native application, 简称 Native App)
- Web 应用(web application, 简称 Web App)
- 混合应用(hybrid application, 简称 Hybrid App)
优缺点对比
特性 | Native APP | Web APP | Hybrid APP |
---|---|---|---|
开发语言 | 原生语言(Objective-C、Java、. Net) | 网页语言(HTML5+CSS+JS) | 原生语言+网页语言 |
跨平台性 | 低 | 高 | 高 |
设备访问能力 | 高 | 低 | 高 |
开发成本 | 高 | 低 | 中 |
用户体验 | 好 | 差 | 较好 |
安装体验 | 高(通过应用商店安装) | 中(通过移动浏览器) | 高(通过应用商店安装) |
升级灵活度 | 低(总通过应用商店升级) | 高 | 中(总通过应用商店升级) |
向后兼容 | 差 | 好 | 好 |
维护更新 | 复杂 | 简单 | 简单 |
高级图形 | 高 | 中 | 中 |
Native App
定义
Native App 是一种基于智能手机本地操作系统如 iOS、Android、WP 并使用原生程式编写运行的第三方应用程序, 也叫本地 App。原生 App 使用与手机操作系统相同的语言。iOS 的原生 App 使用 Objective-C 语言或 Swift 语言, 安卓使用 Java 语言或 Kotlin 语言。由于跟底层系统的语言和技术模型一致, 所以原生 App 的性能和用户体验都很好。
优缺点
优点
- 较好的性能和体验
- 可以使用系统的所有硬件和软件 API, 比如 GPS、摄像头、麦克风、加速计、通知推送等等, 能充分发挥系统的潜力
缺点
- 开发成本高, 每个手机平台都要建立一个独立的开发团队, 一般都有 iOS 和安卓两个开发团队。如果出现第三个平台(以前的 Windows Phone, 也许将来的华为鸿蒙 OS), 就要组建第三个团队, 成本就更高。
- 原生 App 使用底层操作系统的语言, 都是很重的编译型语言, 开发和调试成本相对较高, 时间周期长
- 原生 App 必须下载安装才能使用, 只要升级版本, 就必须重新下载安装。用户往往不愿意更新版本, 厂商被迫不得不长期支持很久以前的旧版本。
Web App
定义
WebApp 是指基于 Web 的系统和应用, 其作用是向广大的最终用户发布一组复杂的内容和功能。WebApp 提供一种简单的方式来开始为 App Engine 开发应用程序。Web App 就是运行于网络和标准浏览器上, 基于网页技术开发实现特定功能的应用。
优缺点
优点
- 不需要下载安装, 打开浏览器就能使用, 而且总是使用最新版本
- 对于开发者来说, Web App 写起来比较快, 调试容易, 不需要应用商店的批准就能发布。
缺点
- 浏览器提供的 API(即 Web API)很有限(目前只有相机、GPS、电池等少数几个), 大部分系统硬件都不能通过网页访问, 也无法直接读取硬盘文件, 所以 Web App 无法充分利用平台的硬件。
- 网页通过浏览器渲染, 性能不如原生 App, 不适合做性能要求较高的页面。
阻碍推广缘由
为了推广 Web App, 谷歌公司的 Chrome 浏览器团队做了很多努力。他们认为, Web App 足以满足大多数 App 的需求, 但是三大缺陷阻碍它的推广。
- 不能从手机的首屏直接进入。
- 缺乏手机状态栏和锁屏时的通知推送能力。
- 不支持脱机访问(即断网也能使用)。
Hybrid APP
定义
Hybrid App, 基于第三方跨平台移动应用引擎框架进行开发。使用 HTML5 和 JS 作为开发, 调用引擎封装的底层功能如照相机、传感器、通讯录等。其具有 Native App 良好用户交互体验的优势, 同时, 具有 Web App 跨平台开发的优势。