天天看點

Hybrid App如何實作網頁語言與程式語言的混合

Hybrid App依然是一個App,隻是在程式設計過程中采用了HTML5或其他腳本技術。先看看一個普通的應用是如何構成的。如圖1所示,一個應用是由衆多界面根據功能邏輯進行組織的産物。使用任何開發技術都是為了完成界面、邏輯群組織的研發。

Hybrid App如何實作網頁語言與程式語言的混合

圖1. 應用的構成

以原生應用為例,如圖所示。

Hybrid App如何實作網頁語言與程式語言的混合

圖2.原生應用 

— 使用原生技術實作UI、通信、内部邏輯等。

— 實作界面的動畫效果和參數傳遞。

— 處理界面的生存周期和邏輯。

— 封裝整合基礎庫供開發調用。

— 配置開發環境、工程、編譯參數并最終完成應用的編譯釋出。

上述這些工作都由原生開發人員完成,且在不同平台上都要完成一次。Hybrid開發技術希望引入HTML5或腳本技術來達到減少甚至忽略原生開發人員工作量的目标。

目前國外比較知名的混合模式開發技術為PhoneGap。PhoneGap的應用開發模型如圖3所示。

目前利用PhoneGap進行開發大多采用All in One Page模式。開發人員的工作有以下幾項。

— 使用網頁技術在DIV内實作獨立界面的功能,完成UI、通信和内部邏輯。

Hybrid App如何實作網頁語言與程式語言的混合

圖3.  PhoneGap的應用開發模型

— 使用JQMobile、SenchaTouch等JS架構完成DIV界面間的切換和參數傳遞。

— 使用JQMobile、SenchaTouch處理界面的生存周期和邏輯。

— PhoneGap封裝系統裝置能力基礎庫供開發調用,原生人員可以開發新插件擴充PhoneGap能力。

— 需要依賴各平台獨立SDK,是以需要配置開發環境、工程、編譯參數并最終完成應用的編譯釋出。

上述模型為移動應用開發者提供了新的開發途徑,但是也帶來了以下一些問題。

— 依然需要依賴各平台SDK。

— 依然要求開發人員配置開發環境等才能完成應用的最終編譯。

— 依賴第三方JS架構完成視窗管理和動畫,受限于系統能力,體驗較差。

— 采用ALL in One Page模式,所有界面都在同一頁面内,開發調試複雜,不利于團隊協同開發。

可以認為PhoneGap是一個為有原生開發能力的團隊或個人提供的混合應用開發工具,受限于國内開發人員能力、環境等,從國内使用情況回報看,其體驗和開發方式并沒有獲得預期的好評。

AppCan作為國内首家Hybrid應用開發技術提供商,其開發模型如圖4所示。

Hybrid App如何實作網頁語言與程式語言的混合

圖4.  AppCan開發模型

目前利用AppCan進行開發大多采用One Feature One Page模式。開發人員的工作如下。

— 使用網頁技術在獨立頁面内實作各獨立界面的功能,完成UI、通信和内部邏輯。

— 使用原生引擎提供的接口完成視窗管理和動畫處理。

— 使用原生引擎提供的視窗棧管理視窗生存期和邏輯。

— 封裝系統裝置能力基礎庫、系統能力庫、進階功能庫、第三方對接庫、高體驗UI擴充庫供HTML5開發調用,原生人員可以開發新插件擴充AppCan能力。

— 不需要依賴各平台獨立SDK,不需要配置開發環境、工程、編譯參數。

從上述開發模型中可以看到,AppCan技術是以HTML5開發人員作為開發主體,輔以原生開發人員的開發體系。HTML開發人員聚焦于獨立界面邏輯、互動的開發。AppCan通過插件引擎在體驗、能力、效率、安全各方面提供支撐。

— 不再需要依賴各平台SDK。

— 不再要求開發人員配置開發環境等才能完成應用的最終編譯。

— 使用原生技術完成視窗管理和動畫。

— 采用One Feature One Page模式,所有界面可獨立開發,便于調試,有利于團隊協同開發。