項目經理感悟: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可以保證最小的網頁代碼修改。
作為一名跨平臺開發團隊的負責人,我認為團隊在選擇跨平臺開發框架的時候還是需要選擇一套適合自身團隊的框架。尤其是對于技術力量薄弱以及初創型團隊來說選擇一套適合的框架更加重要。