移動(dòng)應(yīng)用開發(fā)者混合解決方案之爭
內(nèi)置移動(dòng)應(yīng)用開發(fā)昂貴且有時(shí)候是非常冗長的項(xiàng)目,大部分是因?yàn)閼?yīng)用要構(gòu)建在具體的移動(dòng)設(shè)備和操作系統(tǒng)上。但是內(nèi)置移動(dòng)應(yīng)用可以完全利用內(nèi)置的設(shè)備性能,比如指南針、相機(jī)和GPS,而且通常提供了比用HTML5 Web語言編寫應(yīng)用更好的性能。
另一方面,移動(dòng)應(yīng)用開發(fā)要比在基于Web的Html5、CSS3和JavaScript平臺(tái)更加快速且可負(fù)擔(dān)。此外,它們可以跨多個(gè)移動(dòng)平臺(tái)工作,提供一次編寫,即可以在任何地方(WORA)運(yùn)行的移動(dòng)應(yīng)用。但是通常缺少內(nèi)置應(yīng)用性能,而且還不能訪問所有設(shè)備內(nèi)的性能。
替代內(nèi)置和Web移動(dòng)應(yīng)用的一種方法就是混合移動(dòng)應(yīng)用,這種方式嘗試結(jié)合內(nèi)置和HTML5移動(dòng)應(yīng)用開發(fā)的優(yōu)勢,同時(shí)最小化各自的劣勢。此外,混合移動(dòng)應(yīng)用分布在像Apple App Store和Android Play這樣的應(yīng)用商店中,就像內(nèi)置移動(dòng)應(yīng)用,要比單純的HTML5移動(dòng)應(yīng)用更加易于使用??梢暂p松下載并在應(yīng)用商店隸屬的移動(dòng)設(shè)備上運(yùn)行。
要構(gòu)建一個(gè)混合移動(dòng)應(yīng)用,要像HTML5移動(dòng)應(yīng)用那樣編寫應(yīng)用核心,然后放置到內(nèi)置設(shè)備上包裝。運(yùn)行在內(nèi)置容器上的混合移動(dòng)應(yīng)用HTML5核心且利用移動(dòng)設(shè)備的瀏覽器引擎(非瀏覽器自身)來渲染HTML5并本地處理JavaScript。內(nèi)置包裝本質(zhì)上讓混合移動(dòng)應(yīng)用能夠訪問內(nèi)置設(shè)備性能,這些性能是禁止移動(dòng)設(shè)備瀏覽器進(jìn)入的。它起到了中間人和翻譯指令的作用,這樣開發(fā)者編寫的內(nèi)容移動(dòng)設(shè)備就能夠讀懂了。
HTML5應(yīng)用核心隨后可以被其他移動(dòng)設(shè)備重用。只有內(nèi)置包裝需要為每一個(gè)移動(dòng)設(shè)備和操作系統(tǒng)重新編寫。你可以通過使用來自PhoneGap和Appcelerator這樣的廠商的軟件自動(dòng)化生成包裝(又叫做容器),極大地減少開發(fā)時(shí)間。
在交付內(nèi)置移動(dòng)或者混合移動(dòng)應(yīng)用之前,要考慮用戶體驗(yàn)以及每一種開發(fā)選擇提供的東西能否滿足實(shí)現(xiàn)你的移動(dòng)應(yīng)用目標(biāo),達(dá)到了投資的水平。也要考慮上面指出的混合易用應(yīng)用的好處。
但是也要知道混合移動(dòng)應(yīng)用的缺點(diǎn),包括性能問題。沒有一個(gè)移動(dòng)設(shè)備瀏覽器完全支持HTML5,這種支持是不均勻的跨設(shè)備的。
編寫基于HTML5的混合移動(dòng)應(yīng)用核心通常被認(rèn)為是輕松且只需要很少的開發(fā)經(jīng)驗(yàn),但是這是不對(duì)的。這個(gè)過程仍舊需要開發(fā)者擁有HTML5、CSS3和JavaScript經(jīng)驗(yàn)。如果你的企業(yè)內(nèi)部就有Web應(yīng)用開發(fā)者,這項(xiàng)工作很簡單。但是如果沒有,就不容易了。
要想讓混合移動(dòng)應(yīng)用開發(fā)就像廣告上說的那么簡單的話通常要買入一個(gè)廠商的方法為基于HTML5的核心構(gòu)建容器。選擇一個(gè)符合你的移動(dòng)應(yīng)用目標(biāo)的容器廠商。由于很多容器廠商都是小公司,大多數(shù)是初創(chuàng)公司,要找到一個(gè)能長期生存的廠商。
開發(fā)部門應(yīng)該盡早認(rèn)證考慮為移動(dòng)應(yīng)用開發(fā)應(yīng)用HTML5。當(dāng)今伴隨著HTML5核心的混合移動(dòng)應(yīng)用開發(fā)可以在未來轉(zhuǎn)化成HTML5移動(dòng)Web應(yīng)用,而且不需要重寫。這種方法提供了一種進(jìn)入未來HTML5世界非常平緩的方式,且能夠獲得更多支持。