原生App vs 移动Web App
每当你打算开发移动应用程序时,都要考虑你的应用如何创建以及如何部署。如今已有两个主要的方向:原生App 以及 移动Web App。那么在今天这篇文章中就来比较一下两者的区别来供大家参考。
开发方面
原生App
- 每一种移动操作系统都需要独立的开发项目
- 每种平台都需要独立的开发语言。Java(Android), Objective-C(iOS)以及Visual C++(Windows Mobile)等等
- 需要使用各自的软件开发包,开发工具以及各自的控件
- 因为运行在移动设备的浏览器上,所以只需要一个开发项目
- 这种应用可以使用HTML5,CSS3以及JavaScript以及服务器端语言来完成(PHP,Ruby on Rails,Python)
- 这里可没有标准的SDK,基本任意选择
- 能够与移动硬件设备的底层功能,比如个人信息,摄像头以及重力加速器等等
- 只能使用有限的移动硬件设备功能。
- 可以使用专门的移动平台的广告,比如AdMob
- 基本没有限制,但也没什么优势
- 直接下载到设备
- 以独立的应用程序运行(并不需要浏览器)
- 用户必须手动去下载并安装这些原生App
- 有一些商店与卖场来帮助用户寻找你的App
- 从移动设备上的浏览器访问
- 不需要安装额外的软件
- 软件更新只需要服务器就够了
- 因为现在没有什么商品或卖场提供这种App,所以如何搜索这些移动Web App相当不简单
- 用户可以自由地选择是否更新软件版本,所以会出现不同用户同时使用不同版本的情况
- 所有的用户都是用同样的版本
- 比移动Web App运行快
- 一些商店与卖场会帮助用户寻找原生App
- 官方卖场的应用审核流程会保证让用户得到高质量以及安全的App
- 官方会发布很多开发工具或者人工支持来帮助你的开发
- 跨平台开发
- 用户不需要去卖场来下载安装App
- 任何时候都可以发布App,因为根本不需要官方卖场的审核
- 如果你已经有了一个Web App,你可以使用 responsive web design来辅助改进(这也是优势?)
- 开发成本高,尤其是当需要多种移动设备来测试时
- 因为是不同的开发语言,所以开发,维护成本也高
- 因为用户使用的App版本不同,所以你维护起来很困难
- 官方卖场审核流程复杂且慢,会严重影响你的发布进程
- 无法使用很多移动硬件设备的独特功能
- 要同时支持多种移动设备的浏览器让开发维护的成本也不低
- 如果用户使用更多的新型浏览器,那问题就更不好处理了
- 对于用户来说,这种App很难被用户发现
- 你的应用是否需要使用某些设备的特殊功能,比如摄像头,摄像头闪光灯或者重力加速器
- 你的开发预算
- 你的应用是否一定需要网络
- 你的应用的目标硬件设备是所有的移动设备还是仅仅只是一部分而已
- 你自己已经熟悉的开发语言
- 这个应用对于性能要求是否苛刻
- 如何靠这个应用赢利
你的选择是原生App还是移动Web App,主要受商业目标,目标用户,以及技术需要这些因素影响的。其实更多时候你也不要为选择那种App模式烦恼,正如上文提到,类似Facebook这样的公司就为用户提供了两种选择。然而对于大部分人来说,预算,资源限制将会逼迫我们只能选择其中一种(或者只能以其中一种为重点)。