將前端網(wǎng)頁變成一個(gè)app在移動(dòng)端開發(fā)中已經(jīng)非常常見,可以將現(xiàn)有的網(wǎng)頁通過特定的技術(shù)和框架包裝成一個(gè)本地應(yīng)用程序來達(dá)到提升用戶體驗(yàn)的效果。這種轉(zhuǎn)換的方式是基于移動(dòng)開發(fā)所應(yīng)用的web技術(shù),主要是三種框架:Hybrid、React Native、Weex。
Hybrid(混合)應(yīng)用
Hybrid開發(fā)都是基于Web技術(shù),最大的優(yōu)點(diǎn)就是開發(fā)工作量相比原生應(yīng)用開發(fā)非常小,且開發(fā)周期比較短,可以大大縮短產(chǎn)品上線的時(shí)間。要實(shí)現(xiàn)將前端網(wǎng)頁轉(zhuǎn)化成Hybrid應(yīng)用的方式,就需要將原有的Web頁面,通過Javascript(JS)、CSS、HTML等基礎(chǔ)技術(shù)開發(fā)出一套適配于移動(dòng)端的Web頁面。Hybrid應(yīng)用的前端代碼采用Web標(biāo)準(zhǔn)的技術(shù),通過WebView標(biāo)簽嵌入至原生應(yīng)用中,再通過橋接技術(shù)實(shí)現(xiàn)Web和Native通信的功能。
當(dāng)然,Hybrid應(yīng)用并不是完全依賴Web技術(shù)來實(shí)現(xiàn)的。由于Hybrid應(yīng)用的前端代碼仍然是在WebView中運(yùn)行,因此我們可以使用原生語言(如Java、Objective-C)為WebView提供實(shí)現(xiàn)某些硬性要求的插件(如支付寶、微信等第三方組件)。
React Native
React Native是Facebook出品的一個(gè)跨平臺(tái)的開發(fā)框架,它可以讓前端工程師使用JavaScript和React去構(gòu)建iOS、Android原生應(yīng)用。由于應(yīng)用的業(yè)務(wù)部分是在本地運(yùn)行,因此用戶體驗(yàn)更加流暢。React Native采用的是Virtual Dom的模式,這使得應(yīng)用具有很高的性能表現(xiàn)。
將前端網(wǎng)頁轉(zhuǎn)化成React Native的應(yīng)用程序,需要在原有的前端代碼上,添加React組件。原理是利用React Native的框架,讓開發(fā)者在Web的環(huán)境中編寫出支持iOS和Android環(huán)境的應(yīng)用代碼,再使用React Native所提供的一些API和組件進(jìn)行Web和Native的數(shù)據(jù)通信。通過這種方式,前端開發(fā)者可以很方便地使用已有的Web知識(shí),輕松地實(shí)現(xiàn)對(duì)于移動(dòng)端系統(tǒng)的適配,并且不必考慮多種機(jī)型的兼容性問題。
Weex
Weex是由阿里巴巴推出的開源跨平臺(tái)移動(dòng)應(yīng)用框架,和React Native一樣,也可以將前端頁面轉(zhuǎn)換成原生應(yīng)用程序。使用Weex可以將Web頁面轉(zhuǎn)換成基于Native的應(yīng)用,運(yùn)行效率也非常高。
將前端網(wǎng)頁轉(zhuǎn)化稱為Weex的應(yīng)用程序,需要使用Vue.js或React.js框架,并且需要使用Weex提供的模板和組件,以及相關(guān)的API進(jìn)行程序開發(fā)。Weex支持我們?cè)谕粋€(gè)工程中開發(fā)出適用于iOS和Android系統(tǒng)的原生應(yīng)用。由于Weex以速度、效率、跨平臺(tái)為主要特點(diǎn),因此它可以實(shí)現(xiàn)iOS和Android兩個(gè)系統(tǒng)之間的代碼共享,降低開發(fā)成本和維護(hù)成本。
總結(jié)
以上所述的三種方法,都可以將前端網(wǎng)頁轉(zhuǎn)化成app應(yīng)用程序,都有其各自的優(yōu)缺點(diǎn)。但共同點(diǎn)是:它們都能夠節(jié)省開發(fā)成本,提升應(yīng)用程序的開發(fā)效率,提高應(yīng)用程序的執(zhí)行性能,適應(yīng)性能跨度也比較和平,同時(shí)也能夠使不熟悉原生開發(fā)的前端工程師,通過這些簡(jiǎn)便的框架和技術(shù),來實(shí)現(xiàn)對(duì)于移動(dòng)端應(yīng)用的開發(fā)。