移动App是移动设备上的应用软件。目前,移动App开发主要分为三种模式:Native App、Web App和Hybrid App。
1.Native App。
Native App是指本地应用程序,后来称为原生应用,如图1-1所示。
从图1-1可以看出,二进制数据(机器代码)在原生App中运行;也就是说,原生语言最终直接转化为二进制数据,可以直接调用手机振动、摄像头、日历、地理位置等底层设备API。
本地App是利用相应平台的独特开发工具和语言(如Android App)开发出来的,这使得应用的外观和性能都非常出色,但是开发成本更高,因为每个移动操作系统都需要独立的开发项目,对企业的人员需求很大。
2.Web App。
Web App指的是网页应用程序,后面称为移动Web,移动Web需要依靠Mobile Browser(移动设备中的浏览器)来运行,内部执行普通的网页代码,也可以理解为在移动设备浏览器中运行的Web应用。
HTML5移动Web技术主要用于移动Web技术的开发,包括HTML5、CSS3和JavaScript。由于只依赖移动设备浏览器,可以实现一次编写,在多个设备上运行。尽管开发人员只能使用HTML5和JavaScript来构建复杂的应用程序,但仍有一些局限性,比如没有访问本地设备的API功能。
3.Hybrid App。
Hybrid App是指混合模式的移动应用,后来称为混合App。
在图1-2中可以看到,混合App需要依靠Native Container(原生容器)运行,网页代码可以在Native Container中运行,设备API也可以调用。
混合App主要是通过Web前端技术实现的,这是一种介于移动Web和本地App之间的App开发方式。混合App开发的具体实现方式是:在本地App中嵌入一个轻量级浏览器,然后使用HTML5开发一些本地功能,可以在不升级APP的情况下动态更新。因为嵌套在本地APP中,这使得混合APP有能力访问本地设备API。一次开发,多平台运行的特点,使得混合App开发方式在不影响用户体验的情况下,节约开发成本。
从开发成本、维护更新和安装等角度对上述三种移动App开发模式进行比较,如表1-1所示。
从表1-1可以看出,原生App的开发成本最高,所以也是跨平台App技术。为什么混合App的成本比移动Web高?混合App具有原生App和移动Web的优势,混合App开发的技术要求高于普通移动Web开发。因此,在相同的资源需求下,混合App的开发成本高于移动Web。
混合App嵌套在原生壳中,所以这些App在AppStore或Market(手机应用商店)都是公认的。