如何開(kāi)發(fā)混合式app
一、Hybrid App概述
Hybrid App是移動(dòng)應(yīng)用的一種創(chuàng)新形式,融合了web-app與native-app的優(yōu)勢(shì)。它既保留了Native App的用戶友好交互體驗(yàn),又具備了Web App的跨平臺(tái)開(kāi)發(fā)優(yōu)勢(shì)。根據(jù)網(wǎng)頁(yè)語(yǔ)言與程序語(yǔ)言的混合程度,Hybrid App通??煞譃槎郪iew混合型、單View混合型以及Web主體型三種類(lèi)型。

二、多View混合型Hybrid App開(kāi)發(fā)
多View混合型應(yīng)用是Native View和WebView的獨(dú)立展示,交替出現(xiàn)的形式。這種應(yīng)用混合邏輯相對(duì)簡(jiǎn)單,通常在需要時(shí),將WebView作為一個(gè)獨(dú)立的View(Activity)運(yùn)行,完成相關(guān)展示操作。這種移動(dòng)應(yīng)用主體通常是Native App,Web技術(shù)起到補(bǔ)充作用。開(kāi)發(fā)難度與Native App相當(dāng)。
三、單View混合型Hybrid App開(kāi)發(fā)
單View混合型則是在同一View內(nèi)包含Native View和WebView,二者相互覆蓋(層疊)。這種Hybrid App開(kāi)發(fā)成本較高,難度也較大,但用戶體驗(yàn)較好。以百度搜索為代表,這種應(yīng)用類(lèi)型既可實(shí)現(xiàn)充分靈活性,又能實(shí)現(xiàn)較好的用戶體驗(yàn)。
四、Web主體型Hybrid App開(kāi)發(fā)

Web主體型的移動(dòng)應(yīng)用以WebView為主體,主要使用網(wǎng)頁(yè)語(yǔ)言編寫(xiě),并穿插Native功能。這種類(lèi)型的應(yīng)用體驗(yàn)可能存在缺陷,但開(kāi)發(fā)難度大幅降低,并基本可實(shí)現(xiàn)跨平臺(tái)。其中,國(guó)外的appMobi、PhoneGap和國(guó)內(nèi)的WeX5、AppCan和Rexsee等都屬于此類(lèi)中間件。其中,Rexsee不支持跨平臺(tái)開(kāi)發(fā),而WeX5則在性能上做了深度優(yōu)化,開(kāi)發(fā)的app具備完全的跨端運(yùn)行能力。
五、為何選擇Hybrid App開(kāi)發(fā)
隨著HTML5的實(shí)際開(kāi)發(fā)與性能體驗(yàn)問(wèn)題的出現(xiàn),Web App逐漸勢(shì)弱。而Native App雖然能提供優(yōu)秀的用戶體驗(yàn),但其開(kāi)發(fā)難度大、成本高、周期長(zhǎng)等問(wèn)題也日益突出。Hybrid App的出現(xiàn),融合了Web App的跨平臺(tái)開(kāi)發(fā)與Native App的體驗(yàn)和性能優(yōu)勢(shì),成為企業(yè)移動(dòng)開(kāi)發(fā)的首選。它不僅具備跨平臺(tái)開(kāi)發(fā)周期短、成本低的優(yōu)勢(shì),還能提供接近Native App的用戶體驗(yàn)。特別是像WeX5這樣的開(kāi)發(fā)工具,在揉合主流技術(shù)的基礎(chǔ)上,對(duì)性能做了深度優(yōu)化,開(kāi)發(fā)的app具備完全的跨端運(yùn)行能力。
Hybrid App中的Web主體型只要能夠解決用戶體驗(yàn)的問(wèn)題,就有可能成為最佳的移動(dòng)應(yīng)用解決方案。隨著技術(shù)的不斷進(jìn)步和市場(chǎng)的需求變化,Hybrid App開(kāi)發(fā)模式將持續(xù)受到關(guān)注與發(fā)展。Native App:企業(yè)應(yīng)用的疲憊狀態(tài)
一、開(kāi)發(fā)困境

Native App的開(kāi)發(fā)、更新、維護(hù)周期長(zhǎng),對(duì)于正處于移動(dòng)信息化摸索期的企業(yè)來(lái)說(shuō),難以快速響應(yīng)市場(chǎng)需求和變化。盡管對(duì)有專(zhuān)業(yè)開(kāi)發(fā)團(tuán)隊(duì)的互聯(lián)網(wǎng)公司而言,推陳出新已屬挑戰(zhàn),在企業(yè)應(yīng)用中的困境更為顯著。無(wú)論是自主開(kāi)發(fā)還是選擇外包,企業(yè)都將面臨時(shí)間成本、穩(wěn)定性、體驗(yàn)等多重壓力。
二、技術(shù)團(tuán)隊(duì)的壓力
Native App的開(kāi)發(fā)保障需要較高技術(shù)水平的團(tuán)隊(duì)。企業(yè)通過(guò)外包形式開(kāi)發(fā)一兩款A(yù)pp,往往需要花費(fèi)數(shù)十萬(wàn)的費(fèi)用。維護(hù)更新的預(yù)算同樣不菲,這一點(diǎn)常常超出企業(yè)的預(yù)期。App若不及時(shí)更新,將難以滿足用戶持續(xù)發(fā)展的需求,甚至被市場(chǎng)淘汰。應(yīng)用更新成為了企業(yè)移動(dòng)信息化的一大瓶頸。
Web App:金玉其外敗絮其中
隨著HTML5技術(shù)的興起,Web App似乎注入了新的活力。其本質(zhì)功能仍無(wú)法與Native App相媲美,用戶體驗(yàn)的弊端也眾所周知。許多企業(yè),包括世界500強(qiáng)的航空、金融公司,都曾嘗試Web App的開(kāi)發(fā),但投入與回報(bào)不成比例,用戶并不買(mǎi)賬。在iOS、Android系統(tǒng)主導(dǎo)的桌面入口形態(tài)下,讓用戶打開(kāi)瀏覽器訪問(wèn)某個(gè)網(wǎng)址的方式并不人性化,導(dǎo)致大量用戶流失。從2012年下半年開(kāi)始,企業(yè)逐漸放棄了Web App的嘗試。

Hybrid App:企業(yè)移動(dòng)開(kāi)發(fā)的新主流
Hybrid App兼具Native App良好的用戶交互體驗(yàn)優(yōu)勢(shì)和Web App跨平臺(tái)開(kāi)發(fā)的優(yōu)勢(shì)。一些市場(chǎng)主流移動(dòng)應(yīng)用,如工商銀行、百度搜索、街旁、東方航空等,都是基于Hybrid App的方式開(kāi)發(fā)。Hybrid App通常是基于第三方跨平臺(tái)移動(dòng)應(yīng)用引擎框架進(jìn)行開(kāi)發(fā),如PhoneGap、Titanium和AppCan等。這些引擎框架使用HTML5和Javascript作為編程語(yǔ)言,調(diào)用引擎封裝的底層功能,如照相機(jī)、傳感器、通訊錄、二維碼等。與Web App最大不同的是,Hybrid App真正調(diào)用的是與Native App一樣的底層功能。由于其使用了瀏覽器技術(shù),因此具有跨平臺(tái)的特性,開(kāi)發(fā)成本接近Web App,而開(kāi)發(fā)效率遠(yuǎn)高于Native App。
企業(yè)級(jí)移動(dòng)開(kāi)發(fā)的Hybrid App時(shí)代
很多企業(yè)開(kāi)始采用Hybrid App技術(shù)進(jìn)行移動(dòng)應(yīng)用開(kāi)發(fā)。一方面,Hybrid App開(kāi)發(fā)簡(jiǎn)單;另一方面,它可以形成一種開(kāi)發(fā)的標(biāo)準(zhǔn)。企業(yè)可以封裝大量的Native Plugin(如支付功能插件)供Javascript調(diào)用,并在今后的項(xiàng)目中盡可能復(fù)用,從而大幅降低開(kāi)發(fā)時(shí)間和成本。Hybrid App的標(biāo)準(zhǔn)化給企業(yè)移動(dòng)應(yīng)用的開(kāi)發(fā)、維護(hù)、更新都帶來(lái)了極高的便捷性。這不僅提高了企業(yè)的效率,也為企業(yè)節(jié)省了大量的成本,無(wú)疑是當(dāng)前及未來(lái)一段時(shí)間內(nèi)企業(yè)移動(dòng)開(kāi)發(fā)的最優(yōu)選擇。Hybrid App開(kāi)發(fā)趨勢(shì)及與Web技術(shù)對(duì)比解析
一、Hybrid App開(kāi)發(fā)的盛行趨勢(shì)

Hybrid App開(kāi)發(fā)在當(dāng)今的企業(yè)移動(dòng)開(kāi)發(fā)領(lǐng)域已經(jīng)形成一股風(fēng)潮。許多企業(yè)在面對(duì)移動(dòng)信息化的轉(zhuǎn)型時(shí),都面臨著諸多選擇和困惑。從投入成本、用戶體驗(yàn)以及維護(hù)難度等多個(gè)角度綜合考慮,Hybrid App已經(jīng)被眾多企業(yè)視為首選的移動(dòng)應(yīng)用開(kāi)發(fā)模式。現(xiàn)如今,像IBM的Worklight、AppCan的MEAP以及SAP的SUP平臺(tái)等主流解決方案,幾乎都將Hybrid App作為核心開(kāi)發(fā)方案。
二、Webapp、混合app與套殼app的差異解析
當(dāng)我們談?wù)撘苿?dòng)應(yīng)用的不同開(kāi)發(fā)方式時(shí),Webapp、混合app(Hybrid App)和套殼app(Shell App)是經(jīng)常出現(xiàn)的術(shù)語(yǔ)。那么它們之間有何區(qū)別呢?
Webapp主要是基于HTML、CSS和JavaScript的傳統(tǒng)前端網(wǎng)頁(yè)項(xiàng)目。用戶通過(guò)瀏覽器訪問(wèn)特定的網(wǎng)址即可使用,不需要下載和安裝任何應(yīng)用。而混合app則結(jié)合了原生開(kāi)發(fā)和Web技術(shù),呈現(xiàn)出的是原生UI界面。大部分代碼為原生編寫(xiě),部分頁(yè)面則可以利用React Native、Weex或Flutter等技術(shù)實(shí)現(xiàn)跨平臺(tái)開(kāi)發(fā)。例如,閑魚(yú)的安卓客戶端中,大部分功能采用Java實(shí)現(xiàn),部分商品頁(yè)面則選擇使用Flutter技術(shù)。手機(jī)淘寶安卓客戶端也是類(lèi)似的結(jié)構(gòu)。
套殼app則主要依賴(lài)WebView來(lái)展示W(wǎng)eb內(nèi)容,移動(dòng)端的功能大多在Web中實(shí)現(xiàn),通過(guò)調(diào)用原生WebView進(jìn)行展示。值得注意的是,如果應(yīng)用主要的功能在原生平臺(tái)上實(shí)現(xiàn),而網(wǎng)頁(yè)內(nèi)容僅作為輔助功能的話,它不能被歸類(lèi)為混合app?;旌蟖pp的核心特點(diǎn)是以原生UI作為主要呈現(xiàn)形式。至于mui,它更多的是一個(gè)移動(dòng)端框架或庫(kù),與上述三種類(lèi)型不完全相同。從定義上看,它可能更接近高級(jí)的套殼app。

三、選擇最適合的開(kāi)發(fā)方式
在選擇移動(dòng)應(yīng)用的開(kāi)發(fā)方式時(shí),開(kāi)發(fā)者應(yīng)根據(jù)項(xiàng)目的實(shí)際需求、團(tuán)隊(duì)的技能儲(chǔ)備以及長(zhǎng)遠(yuǎn)的戰(zhàn)略考量做出明智的決策。雖然Hybrid App具有許多優(yōu)勢(shì),但每種技術(shù)都有其獨(dú)特的適用場(chǎng)景和局限性。理解它們之間的區(qū)別和優(yōu)劣,是做出正確決策的關(guān)鍵。無(wú)論是Webapp、混合app還是套殼app,都有其獨(dú)特的價(jià)值和應(yīng)用場(chǎng)景。只有深入理解并合理運(yùn)用各種技術(shù),才能為企業(yè)帶來(lái)最大的價(jià)值。
四、用戶體驗(yàn)與開(kāi)發(fā)成本的綜合考量
在選擇開(kāi)發(fā)方式時(shí),除了技術(shù)實(shí)現(xiàn)的難易程度外,還需要考慮用戶體驗(yàn)和開(kāi)發(fā)成本的因素。原生應(yīng)用雖然在性能和用戶體驗(yàn)上具有優(yōu)勢(shì),但開(kāi)發(fā)成本和維護(hù)成本相對(duì)較高。而Hybrid App則在兩者之間找到了一個(gè)平衡點(diǎn),既保證了用戶體驗(yàn),又降低了開(kāi)發(fā)成本。開(kāi)發(fā)者需要根據(jù)項(xiàng)目的具體情況進(jìn)行權(quán)衡和選擇。
五、未來(lái)展望與總結(jié)

隨著技術(shù)的不斷進(jìn)步和移動(dòng)應(yīng)用的普及,未來(lái)的移動(dòng)應(yīng)用開(kāi)發(fā)將更加多樣化和復(fù)雜化。Hybrid App作為一種折中的解決方案,將繼續(xù)在移動(dòng)開(kāi)發(fā)中占據(jù)一席之地。隨著更多的新技術(shù)和新框架的出現(xiàn),開(kāi)發(fā)者將有更多的選擇余地和更大的發(fā)揮空間。無(wú)論是選擇Webapp、混合app還是套殼app,開(kāi)發(fā)者都應(yīng)保持對(duì)新技術(shù)的學(xué)習(xí)和探索,以適應(yīng)不斷變化的市場(chǎng)需求和技術(shù)環(huán)境。