移动App即移动设备上的应用软件。目前移动App开发主要分为三种模式:Native App、Web App和Hybrid App。
1. Native App
Native App是指本地应用程序,后文称之为原生App,如图1-1所示。
从图1-1中可以看到,原生App内部运行的是二进制数据(机器码);也就是说,原生语言最后是直接转换为二进制数据执行的,并且可以直接调用底层的设备API,如手机振动、摄像头、日历和地理位置等。
原生App是使用相应平台特有的开发工具和语言进行开发的(如Android App),这使得应用程序外观和性能极佳,但是开发成本较高,因为每一种移动操作系统都需要独立的开发项目,对企业来说人员需求量较大。
2. Web App
WebApp是指网页应用程序,后文称之为移动Web,移动Web需要依赖于Mobile Browser(移动设备中的浏览器)运行,内部执行普通的网页代码,也可以理解为在移动设备浏览器中运行的Web应用。
移动Web主要使用HTML5移动Web技术进行开发,包括HTML5、CSS3和JavaScript等。由于只依赖移动设备浏览器,可实现“一次编写,多个设备上运行”。虽然开发人员只使用HTML5和JavaScript就能构建功能复杂的应用程序,但目前仍然存在一些局限性,例如没访问原生设备API的功能。
3. Hybrid App
HybridApp是指混合模式移动应用,后文称之为混合App。
在图1-3中可以看到,混合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在App Store或Market(手机应用商店)中都是认可的。