俞海
摘要:當前,我國的移動互聯(lián)網(wǎng)的快速發(fā)展,使得移動應(yīng)用APP呈現(xiàn)爆發(fā)式增長。企業(yè)不僅要擁有自己的web服務(wù)網(wǎng)站,也要考慮各類移動APP的開發(fā),這樣才能發(fā)揮移動APP的終端營銷服務(wù),但面對眾多的移動開發(fā)平臺或中間件技術(shù),要如何面對,如何選擇,該文給出一些具體的比較及案例,并介紹南京烽火通信推出的Exmobi移動應(yīng)用平臺開發(fā)技術(shù),對開發(fā)移動應(yīng)用的用戶有所參考或幫助。
關(guān)鍵詞:移動應(yīng)用APP;iOS;Android;Exmobi;中間件;html5
當前,企業(yè)在提高產(chǎn)品線下推送的同時,也要考慮如何在線訂購或在線推送,使企業(yè)在當下的競爭中處于優(yōu)勢地位,并提供客戶相應(yīng)的在線應(yīng)用服務(wù),為公司的發(fā)展發(fā)揮動力,這就離不開手機APP的開發(fā),企業(yè)如何進行手機APP平臺的選擇并投入開發(fā)中,要進行相關(guān)的開發(fā)成本的比較,和老系統(tǒng)的兼容性及開發(fā)平臺的可擴展性,可持續(xù)性以及實施的復(fù)雜性等方面進行闡述,為移動APP的開發(fā)選擇一款適合自己的平臺,對企業(yè)的IT部門來說,做出明智的正確的選擇是一件非常重要的事情,通過各類平臺或中間件技術(shù)進行比較,并重點介紹Exmobi移動應(yīng)用開發(fā)平臺。
1背景介紹
移動應(yīng)用開發(fā)在當前是企業(yè)必須要考慮的一件事,傳統(tǒng)的零售類企業(yè)需要考慮,各類的服務(wù)類型的企業(yè)也必須面對,由于移動應(yīng)用開發(fā)技術(shù)的多樣性,在開發(fā)移動應(yīng)用時,要考慮各類企業(yè)的背景,技術(shù)能力,資金問題,開發(fā)問題,部署問題,后期的維護問題,數(shù)據(jù)的安全性問題等等。
而對于互聯(lián)網(wǎng)運營的大型軟件企業(yè),具有比較強的IT團隊,可完全依靠自身技術(shù)和人才優(yōu)勢,進行定制開發(fā),并將內(nèi)容服務(wù),企業(yè)核心業(yè)務(wù)遷移到移動互聯(lián)網(wǎng)上,進行平臺的搭建,在內(nèi)容的靈活性和業(yè)務(wù)規(guī)則的制定性等上體現(xiàn)出自己的要求和獨特性做出正確的選擇,頗具意義。從企業(yè)的需求出發(fā),本文分析了各種類型的企業(yè),面對繁多的開發(fā)技術(shù),如何做出合適的選擇。
對于傳統(tǒng)行業(yè),如零售/房地產(chǎn)行業(yè)等,其IT團隊的實際角色往往是支撐,維護和生產(chǎn)運營方面比較內(nèi)行,而開發(fā)能力薄弱,對于這樣的企業(yè),由于IT團隊的角色能力薄弱,一般依靠采購專業(yè)的移動軟件APP產(chǎn)品或者移動開發(fā)平臺或移動中間件,或者外包項目,來完成自身的移動信息化的開發(fā)工作。而對于中小規(guī)模的軟件集成公司或這類企業(yè),由于是專業(yè)的軟件開發(fā)商,為了滿足客戶要求,開發(fā)效率和開發(fā)的成本是該類企業(yè)主要考慮的因素,從公司的規(guī)模和IT開發(fā)人員的能力上考慮,可以選擇,如能力稍強的,可能內(nèi)部會積累開發(fā)框架或平臺,以求提升開發(fā)效率和自身的發(fā)展。能力稍弱的,可能會通過開源或外購中間件平臺,快速構(gòu)建移動化應(yīng)用平臺。綜上所述,對傳統(tǒng)非IT企業(yè)和小型軟件集成公司,對中間件平臺有著強烈的需求和開發(fā)平臺的依賴,而Exmobi作為專業(yè)的手機應(yīng)用軟件廠商專注于提供移動應(yīng)用開發(fā)的平臺工具或中間件,能有效地降低移動應(yīng)用的開發(fā)難度。
2選擇移動信息化實施平臺的關(guān)鍵因素
如何選擇一個合適的中間件開發(fā)軟件或移動應(yīng)用開發(fā)平臺,對企業(yè)的移動信息化實施的成功,尤其重要。移動應(yīng)用開發(fā)的首要使命,就是考慮在各類已經(jīng)存在的終端環(huán)境下,如何選擇一款跨平臺的開發(fā)應(yīng)用平臺,選擇到一款滿足要求的跨平臺的開發(fā)平臺(iOS、Android、WinPhone等)開發(fā),不僅減少開發(fā)工作量,也使開發(fā)的周期,開發(fā)的成本和開發(fā)的效率顯著提升。
中間件技術(shù)實現(xiàn)跨平臺,主要涉及的技術(shù)方案體現(xiàn)在兩種底層實現(xiàn)技術(shù)上:
1)原生開發(fā),通過包裝操作系統(tǒng)的原始API,實現(xiàn)跨平臺;
2) HTML5技術(shù),通過瀏覽器引擎實現(xiàn)跨平臺;
3)既支持原生開發(fā),又支持HTML5的開發(fā),這樣靈活性更好。
以上的1、2或3應(yīng)用應(yīng)考慮IT人員的技術(shù)優(yōu)勢,在相應(yīng)的場景(scenarios)以更低的成本和最短的開發(fā)周期進行選擇,沒有絕對的標準那個更好。
中間件平臺,底層的跨平臺實現(xiàn)技術(shù)的特征比較如下:
目前比較流行的幾種移動開發(fā)平臺使用的中間件技術(shù)及IDE開發(fā)環(huán)境的配置/系統(tǒng)的安全性和數(shù)據(jù)的集成性等方面的比較如圖2所示:
通過以上的比較,該文重點介紹一下由烽火通信推出的EXMOBI平臺,該平臺通過以上的比較,有很好的開發(fā)管理功能,有IDE開發(fā)工具及數(shù)據(jù)的安全性考慮,同時也可支持多種類型的數(shù)據(jù)集成功能。所以以下就重點介紹一下Exmobi平臺的特性,并介紹如何利用EXMOBI平臺進行手機APP的開發(fā)。
3 ExMobi概述
ExMobi是烽火星空公司推出的跨平臺移動應(yīng)用開發(fā)中間件產(chǎn)品。ExMobi通過全面的數(shù)據(jù)集成技術(shù)和跨平臺展現(xiàn)能力,使業(yè)務(wù)系統(tǒng)能快速、安全、高效的移植于移動終端,并提供友好的IDE環(huán)境、豐富的集成業(yè)務(wù),如IT系統(tǒng)對接、云服務(wù)等,并可對開發(fā)的應(yīng)用進行打包(含各個操作系統(tǒng)的應(yīng)用打包)、發(fā)布(應(yīng)用的運行)、管理(日志管理,更新管理)上提供了一整套的解決方案。
ExMobi包含了一系列的技術(shù)和產(chǎn)品,主要包括:ExMobi客戶端、ExMobi服務(wù)端、MBuilder集成開發(fā)工具以及ExMobi產(chǎn)品門戶。
其中ExMobi客戶端負責應(yīng)用在移動終端的展示和交互,以及與ExMobi服務(wù)端的通信。它主要包含:PC模擬器客戶端、Android客戶端、IOS客戶端、Windows8客戶端等。
ExMobi客戶端實現(xiàn)跨平臺的原理,是在不同移動終端上將同樣的功能和交互封裝成統(tǒng)一的接口,如:XHTML、JavaScript、CSS、主題、Native插件接口等。對于移動應(yīng)用開發(fā)者來說實際上就像WEB開發(fā)一樣開發(fā)一套XHTML的應(yīng)用即可進行跨平臺的數(shù)據(jù)展現(xiàn)和交互。而能夠執(zhí)行這種特殊應(yīng)用的引擎我們稱為“基座”。所以,對于一個完整的ExMobi客戶端應(yīng)該包含基座和應(yīng)用。
而為了方便開發(fā)調(diào)試,ExMobi客戶端存在兩種狀態(tài),一種是基座狀態(tài),一種是打包狀態(tài)。endprint
基座狀態(tài)主要在開發(fā)調(diào)試時使用,安裝基座客戶端的時候,里面是沒有應(yīng)用的。客戶端安裝好之后,打開基座客戶端首先看到的就是基座,在基座的“設(shè)置”功能中配置好開發(fā)調(diào)試環(huán)境的IP和端口即可方便的安裝和卸載應(yīng)用,并對應(yīng)用進行開發(fā)調(diào)試,而不是像Native原生開發(fā)一樣每次都要編譯,這樣調(diào)試方便也節(jié)省了編譯的時間。
打包狀態(tài)為應(yīng)用開發(fā)完畢后將基座和應(yīng)用一起打包生成最后發(fā)布安裝包的狀態(tài)。打包客戶端實際上就是在打開客戶端的時候,把基座隱藏起來直接看到應(yīng)用。打包客戶端可以使用ExMobi開發(fā)者門戶的云打包服務(wù)進行在線打包。
3.1 ExMobi組成元素
ExMobi包含了一系列的技術(shù)和產(chǎn)品,主要包括:ExMobi客戶端、ExMobi服務(wù)端、MBuilder集成開發(fā)工具以及ExMobi產(chǎn)品門戶。
3.2 ExMobi客戶端
ExMobi客戶端負責應(yīng)用在移動終端的展示和交互,以及與ExMobi服務(wù)端的通信。它主要包含:PC模擬器客戶端、Android客戶端、IOS客戶端、Windows8客戶端等。
ExMobi客戶端實現(xiàn)跨平臺的原理,是在不同移動終端上將同樣的功能和交互封裝成統(tǒng)一的接口,如:XHTML、JavaScript、CSS、主題、Native插件接口等。對于移動應(yīng)用開發(fā)者來說實際上就像WEB開發(fā)一樣開發(fā)一套XHTML的應(yīng)用即可進行跨平臺的數(shù)據(jù)展現(xiàn)和交互。而能夠執(zhí)行這種特殊應(yīng)用的引擎我們稱為“基座”。所以,對于一個完整的ExMobi客戶端應(yīng)該包含基座和應(yīng)用。
而為了方便開發(fā)調(diào)試,ExMobi客戶端存在兩種狀態(tài),一種是基座狀態(tài),一種是打包狀態(tài)。
基座狀態(tài)主要在開發(fā)調(diào)試時使用,安裝基座客戶端的時候,里面是沒有應(yīng)用的。客戶端安裝好之后,打開基座客戶端首先看到的就是基座,在基座的“設(shè)置”功能中配置好開發(fā)調(diào)試環(huán)境的IP和端口即可方便的安裝和卸載應(yīng)用,并對應(yīng)用進行開發(fā)調(diào)試,而不是像Native原生開發(fā)一樣每次都要編譯,方便了調(diào)試也節(jié)省了編譯的時間。
打包狀態(tài)為應(yīng)用開發(fā)完畢后將基座和應(yīng)用一起打包生成最后發(fā)布安裝包的狀態(tài)。打包客戶端實際上就是在打開客戶端的時候把基座隱藏起來直接看到應(yīng)用。打包客戶端可以使用ExMobi開發(fā)者門戶的云打包服務(wù)進行在線打包。
3.3Exnobi服務(wù)端
ExMobi服務(wù)端負責對ExMobi客戶端請求過來的數(shù)據(jù)進行處理,并把處理結(jié)果響應(yīng)給客戶端進行操作。所以,它主要的功能就是對數(shù)據(jù)的集成能力。
ExMobi服務(wù)端主要包含4大組件:ExMobi管理平臺(EMP)、基本核心引擎(BCS)、統(tǒng)一推送引擎(PNS)、統(tǒng)一文檔轉(zhuǎn)換引擎(DCS)。
EMP為ExMobi的管理平臺,對ExMobi應(yīng)用和客戶端的管理、終端用戶使用授權(quán)、統(tǒng)計報表展現(xiàn)、其他引擎和服務(wù)的管理等。
BCS為數(shù)據(jù)集成的服務(wù)引擎,主要包括:HTTP請求的模擬、Web Service集成、數(shù)據(jù)庫集成、標準接口集成、接口發(fā)布等。
PNS為統(tǒng)一推送引擎,實現(xiàn)與BCS的對接,通過UDP/TCPPush、二進制短信push、APNS/C2DM等通道實現(xiàn)應(yīng)用的統(tǒng)一推送。
DCS是文檔轉(zhuǎn)換引擎,可以對標準OFFICE文檔、壓縮包、圖片等格式進行支持。
4利用Exnobi開發(fā)及流程概述
利用ExMobi進行手機APP的開發(fā),其開發(fā)流程涉及用戶的需求分析,利用SQLite數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫對象,如表,主鍵,外鍵,索引等,通過定義表對象,并把業(yè)務(wù)數(shù)據(jù)存放數(shù)據(jù)庫中,同時利用Exmobi支持的Uixml(xml)來描述APP的業(yè)務(wù)uI,以及相關(guān)表單數(shù)據(jù),使用form0,selectfl和input button(普通按鈕)來設(shè)計uI進行數(shù)據(jù)的選擇和頁面數(shù)據(jù)的傳遞和交互。
對于ExMobi應(yīng)用插件開發(fā)者可使用ExMobi原生UI組件UIXML進行應(yīng)用開發(fā),UIXML是將原生UI類標簽化、場景化為類似HTML語法的一種標記語言,并可以使用CSS進行渲染,而UIXML中可以通過Js調(diào)用本地能力,所以使用UIXML進行開發(fā)可以像Web一樣開發(fā)原生App。
對于在ExMobi中使用HTML5進行應(yīng)用開發(fā)的開發(fā)者,則使用HTML5、CCS3進行界面展現(xiàn),而使用ExMobi的本地能力JS類來操作本地能力,達到WebApp的開發(fā)效果。流行HT—ML5框架可以任意使用,比如:AgileLite、JqueryMobile、SenchaTouch等技術(shù)。
而對于將原生能力集成到ExMobi中的開發(fā)者,ExMobi客戶端提供豐富的接口API,原生插件開發(fā)者可以將更多的原生能力集成到ExMobi中,以補充ExMobi本身能力的不足或者需要定制開發(fā)的能力,以滿足實際的開發(fā)需求。比如:百度地圖、支付寶、微信登錄、訊飛語音等。
利用ExMobi平臺的開發(fā)主要步驟簡述如下:
1)下載MBuilder
MBuilder是ExMobi應(yīng)用插件的IDE集成開發(fā)工具,它可以提升您的開發(fā)效率。
2)創(chuàng)建應(yīng)用插件
MBuilder中提供了多種創(chuàng)建應(yīng)用插件的方法。開發(fā)者可以選擇免費版和收費版,也可以選擇使用UIXML模板或HT—ML5模板(下載Agile Lite開源框架),甚至可以將自己的模板上傳發(fā)布后在MBuilder中使用。
3)代碼編寫
開發(fā)者在代碼階段會涉及到一些客戶端和服務(wù)端代碼的編寫??蛻舳酥饕莡I的布局(使用UIXML、HTML5、原生插件)、CSS的渲染以及JS邏輯的處理,而在服務(wù)端可以通過調(diào)用封裝好的Java類庫或者Tag Lib來實現(xiàn)與后端數(shù)據(jù)的集成、推送調(diào)用以及文檔轉(zhuǎn)換等豐富的能力。MBuilder中還提供完整和智能的代碼提示提高開發(fā)效率。
4)代碼調(diào)試
開發(fā)好的代碼可以通過兩種方式進行調(diào)試,一種是在PC模擬器調(diào)試;一種是在真機調(diào)試(Android和iOS)。Pc模擬器模擬了大部分ExMobi在手機能力,在PC模擬器上可以完成大部分功能的調(diào)試。真機調(diào)試可以直接將開發(fā)好的代碼編譯到移動終端上進行實際效果查看和調(diào)試,與實際開發(fā)效果一致。而且調(diào)試過程可以斷點、查看日志、分析報文等以幫助發(fā)現(xiàn)和分析問題。
5)應(yīng)用插件部署
在代碼調(diào)試階段實際應(yīng)用插件會自動部署(同步)到MBuilder中內(nèi)置的客戶端和服務(wù)端中。如果購買了ExMobi的企業(yè)版(產(chǎn)品分類),在開發(fā)中也用到了服務(wù)端的能力,則開發(fā)好的應(yīng)用插件需要部署到工程版的ExMobi服務(wù)端中方能進行后續(xù)的部分。工程版的ExMobi服務(wù)端部署好之后必須申請li—cerise授權(quán)方能使用。
6)應(yīng)用插件打包客戶端
應(yīng)用插件開發(fā)好之后,如果希望其成為一個獨立的安裝包形態(tài)(ipa或apk等),則需要對應(yīng)用插件進行打包成客戶端安裝包。有兩種方式可以打包客戶端,一種是在MBuilder中打包,一種是云打包(進人控制臺)。打包后的客戶端可以讓最終用戶進行安裝。
7)客戶端發(fā)布
打包后的客戶端可以提供統(tǒng)一的發(fā)布方式訪問。在工程版ExMobi服務(wù)端的應(yīng)用管理中只要將打包后的客戶端上傳上去即可在統(tǒng)一的下載頁面中進行下載。下載頁面提供PC瀏覽器訪問、手機瀏覽器訪問、二維碼掃描等多種途徑發(fā)布應(yīng)用客戶端提供給最終用戶下載使用。
5結(jié)論
移動APP開發(fā)發(fā)展快速,為客戶和商家所青睞,未來的市場格局,不僅要求企業(yè)能提供業(yè)務(wù)的在線服務(wù)能力,也要求商家開發(fā)方便易用的手機APP應(yīng)用,這涉及使用哪家平臺,傳統(tǒng)的行業(yè)通過外包方式進行APP開發(fā),具有IT基礎(chǔ)的科技創(chuàng)新類公司則可自己選擇一個移動APP平臺進行開發(fā),本文推薦的EXMOBI平臺就是一款開發(fā)周期短,可輕松集成支付功能,位置功能,語音功能等,結(jié)合行業(yè)需求和背景,輕松開發(fā)APP,使開發(fā)和維護成本大大降低。endprint