Hybrid App依然是一个App,只是在编程过程中采用了HTML5或其他脚本技术。先看看一个普通的应用是如何构成的。如图1所示,一个应用是由众多界面根据功能逻辑进行组织的产物。使用任何开发技术都是为了完成界面、逻辑和组织的研发。
图1. 应用的构成
以原生应用为例,如图所示。
图2.原生应用
— 使用原生技术实现UI、通信、内部逻辑等。
— 实现界面的动画效果和参数传递。
— 处理界面的生存周期和逻辑。
— 封装整合基础库供开发调用。
— 配置开发环境、工程、编译参数并最终完成应用的编译发布。
上述这些工作都由原生开发人员完成,且在不同平台上都要完成一次。Hybrid开发技术希望引入HTML5或脚本技术来达到减少甚至忽略原生开发人员工作量的目标。
目前国外比较知名的混合模式开发技术为PhoneGap。PhoneGap的应用开发模型如图3所示。
目前利用PhoneGap进行开发大多采用All in One Page模式。开发人员的工作有以下几项。
— 使用网页技术在DIV内实现独立界面的功能,完成UI、通信和内部逻辑。
图3. PhoneGap的应用开发模型
— 使用JQMobile、SenchaTouch等JS框架完成DIV界面间的切换和参数传递。
— 使用JQMobile、SenchaTouch处理界面的生存周期和逻辑。
— PhoneGap封装系统设备能力基础库供开发调用,原生人员可以开发新插件扩展PhoneGap能力。
— 需要依赖各平台独立SDK,因此需要配置开发环境、工程、编译参数并最终完成应用的编译发布。
上述模型为移动应用开发者提供了新的开发途径,但是也带来了以下一些问题。
— 依然需要依赖各平台SDK。
— 依然要求开发人员配置开发环境等才能完成应用的最终编译。
— 依赖第三方JS框架完成窗口管理和动画,受限于系统能力,体验较差。
— 采用ALL in One Page模式,所有界面都在同一页面内,开发调试复杂,不利于团队协同开发。
可以认为PhoneGap是一个为有原生开发能力的团队或个人提供的混合应用开发工具,受限于国内开发人员能力、环境等,从国内使用情况反馈看,其体验和开发方式并没有获得预期的好评。
AppCan作为国内首家Hybrid应用开发技术提供商,其开发模型如图4所示。
图4. AppCan开发模型
目前利用AppCan进行开发大多采用One Feature One Page模式。开发人员的工作如下。
— 使用网页技术在独立页面内实现各独立界面的功能,完成UI、通信和内部逻辑。
— 使用原生引擎提供的接口完成窗口管理和动画处理。
— 使用原生引擎提供的窗口栈管理窗口生存期和逻辑。
— 封装系统设备能力基础库、系统能力库、高级功能库、第三方对接库、高体验UI扩展库供HTML5开发调用,原生人员可以开发新插件扩展AppCan能力。
— 不需要依赖各平台独立SDK,不需要配置开发环境、工程、编译参数。
从上述开发模型中可以看到,AppCan技术是以HTML5开发人员作为开发主体,辅以原生开发人员的开发体系。HTML开发人员聚焦于独立界面逻辑、交互的开发。AppCan通过插件引擎在体验、能力、效率、安全各方面提供支撑。
— 不再需要依赖各平台SDK。
— 不再要求开发人员配置开发环境等才能完成应用的最终编译。
— 使用原生技术完成窗口管理和动画。
— 采用One Feature One Page模式,所有界面可独立开发,便于调试,有利于团队协同开发。