项目经理感悟:AppCan与PhoneGap跨平台开发框架
做过跨平台开发的人都知道,跨平台开发主要是通过一次开发,将应用进行多次打包,可以同时生成多个平台的应用开发模式。目前有很多跨平台开发框架供开发者选择。但是在选择跨平台开发框架时就需要从长远考虑,尤其是在跨平台开发过程中的各种体验,以及框架本身的基础性能。
作为一名从事多年Hybrid应用开发以及跨平台移动应用开发多年的项目负责人,在这里,我与大家分享一下我对Phonegap和AppCan前端开发框架这两大跨平台开发框架的心得。
不同的开发体验
从开发体验上讲,我认为AppCan和PhoneGap从设计时的目标用户群体是不同的。我不是 PhoneGap的设计者,只能从其开发模式进行推测。我感觉PhoneGap的目标用户群是希望能够通过跨平台开发方式降低开发成本原生开发者。在项目 开发中,PhoneGap是以原生开发人员为主,开发人员安装原生开发环境,配置工程,引入HTML、CSS、JS文件,编译生成应用。
AppCan的开发团队来自于原来的手机设计团队,设计思想来源于2005~2008年间非智能终端MMI(人 机界面)开发方案。那个时代的手机设计团队承接众多厂商的定制终端需求,每家公司的手机终端当时还没有现在这样有相对统一的平台,相对统一的MMI体系。 各家公司对UI的需求都会有很大不同。这就造成了定制终端开发成本的大头在MMI的实现。当时团队采用了自有浏览器引擎实现MMI开发框架,极大地降低了 开发成本。
2010年初,AppCan刚刚火起来的时候就认为在智能终端开发领域,标准的HTML技术依然是最合适的跨平 台开发方案。当时定位AppCan技术方案时,目标就是使无原生开发经验的HTML开发人员完成移动应用的开发。随着多个版本的推出,目前AppCan已 经实现了以网页开发人员为主,原生开发人员为辅的混合开发模式。
通过减少原生开发人员在应用逻辑、数据对接等方面的工作,使其只关注于某个功能控件的开发,降低项目原生人员开 发工作比率,减少项目开发成本。由于网页开发界面间耦合性小,更利于团队开发,并且开发人员不需要专用的苹果开发机和安装Andorid开发平台,有效地 减低了开发成本。AppCan为了更好的组织网页开发人员、原生开发人员、项目管理人员、UI人员,为网页开发人员提供了专用的IDE开发环境、模拟器调 试环境和本地打包环境,可以在无原生人员参与下完成应用的大部分功能调试和开发。
为原生开发人员提供了插件开发SDK,专为开发原生功能控件,并可直接编译网页开发人员的工程代码,生成目标版 本,它等同于PhoneGap的开发环境。为项目管理人员、UI人员、网页原生开发人员提供了云端代码管理、项目管理、应用资源管理、插件管理、引擎管理 服务,用于快速发布正式版本。目前AppCan.cn网站是为个人开发者提供的免费代码、项目管理平台。为企业开发用户有专用的企业云SDK开发环境。
不同的前端框架
从HTML,CSS,JS技术组成的前端框架上来讲,PhoneGap与AppCan也有很大区别。由于PhoneGap更多的是一种All In One Page的设计方案,因此开发者需要将应用功能整合在一个网页内部或通过异步加载方式加载到页面的方式实现用户操作流。在这种方式下不例外的都需要一个庞大的JS框架来帮助管理页面内内容的变化。例如JQuery Mobile、Sencha Touch方案。
AppCan则是参考原生开发模式,认为页面间是独立的,每个页面需要完成其主要功能,通过引擎的页面管理,把这些独立的页面串联起来就是一个应用。每个页面有其自身的生存期和上下文。这样可以组织更多的开发人员到一个项目中,且可以很少关心界面间的耦合性。
也就是说PhoneGap常使用JS框架进行窗口管理,AppCan采用引擎中的窗口管理器管理窗口。由于窗口 管理机制的不同,AppCan可以在窗口切换、窗口间数据交互中更多的引入原生开发,来提高应用的感受性。AppCan的窗口管理器和窗口生存逻辑参考了 Android的Activity,在很多地方可以找到其相似性。与UI开发框架有直接关系的还有分辨率适配方案。
不同分辨率的移动终端,浏览器为了展示网页时的适配,默认都会设定窗口缩放比率。假设480分辨率宽度的终端, 网页中看到的依然是320宽度,缩放比率为1.5。这样网页适配320宽度的分辨率就可在大部分移动终端中正常显示。这虽然减小了适配问题,但是造成的后 果却是,宽度为1的线在屏幕上显示时,实际并不是一个点,由此移动项目中无法充分发挥手机屏幕硬件的能力,应用界面无法和原生应用媲美。但如果调整了默认 比率参数,使其直接采用屏幕硬件分辨率或者更小的缩放比率,都会造成不同分辨率下的界面适配问题。
AppCan 提供了整套的UI开发框架,应用引擎自动调整浏览器默认缩放比率,使其接近或等于屏幕硬件分辨率,采用弹性盒子框架,自动适配各种屏幕分辨率。采用相对大 小方案,使应用在不同分辨率、不同屏幕精度,依然使界面保持最符合人体感受的大小和操作体验。通过这种方式,可以帮助开发者更有效的融合原生控件和网页界 面,使其保持完美的布局。在适配新分辨率终端时,AppCan可以保证最小的网页代码修改。