移動端應(yīng)用程序前端開發(fā)框架研究
引言
隨著數(shù)字技術(shù)的快速發(fā)展,越來越多的公司建立了自己的電子商務(wù)平臺,以期在不受地域限制的情況下吸收更多的全球客戶。與傳統(tǒng)零售銷售的穩(wěn)定數(shù)字相比,電子商務(wù)的規(guī)模呈現(xiàn)爆發(fā)式的增長,研究顯示了一個(gè)可以想象的未來,即到2021年,電子商務(wù)的總銷售額占比將達(dá)到72.9%。因此,在電子商務(wù)激烈的全球競爭中,建立合適的移動商務(wù)解決方案十分必要。
然而,一個(gè)問題的出現(xiàn)總是會帶來接二連三的相關(guān)問題。移動設(shè)備有多種類型,包括iPhone操作系統(tǒng))ios)、Android、黑莓等,每個(gè)移動平臺都提供不同的開發(fā)環(huán)境來構(gòu)建移動項(xiàng)目,開發(fā)人員需要在不同的平臺中保持相同的移動應(yīng)用程序的一致性,因此跨平臺開發(fā)工具能大大降低開發(fā)移動應(yīng)用程序的成本。我們將研究不同的移動開發(fā)平臺,收集必要的信息,并以行業(yè)標(biāo)準(zhǔn)評估適用解決方案。
1原生開發(fā)
目前主流的移動開發(fā)平臺主要有三個(gè),一個(gè)是蘋果的ios系統(tǒng),一個(gè)是谷歌開源的安卓系統(tǒng),另外一個(gè)是黑莓系統(tǒng)。如果開發(fā)團(tuán)隊(duì)希望在主要的移動平臺中構(gòu)建原生的應(yīng)用程序,他們需要在不同的官方開發(fā)環(huán)境中各自開發(fā)。雖然三大移動平臺都支持C++,并且有許多接近的開發(fā)流程,但在每個(gè)軟件開發(fā)工具包)sDK)中都有許多獨(dú)特的工具或特性,如ios平臺的ARKit和安卓平臺的ARCore,盡管這兩個(gè)開發(fā)工具均為AR增強(qiáng)現(xiàn)實(shí)的開發(fā)包,但二者有完全不一樣的特性和開發(fā)方法,而這些差異導(dǎo)致開發(fā)人員不能簡單地將代碼移植到另一個(gè)平臺。由于平臺的標(biāo)準(zhǔn)不同,簡單的促銷功能都需要開發(fā)人員在不同平臺的前端構(gòu)建三次代碼。因此,針對不同系統(tǒng)的本機(jī)應(yīng)用程序開發(fā)將帶來不便和更高的成本。
2HTML5開發(fā)
考慮到開發(fā)成本,很多公司開始尋找更好的解決方案,讓開發(fā)工作更有效率。事實(shí)上,由于近年來HTML的快速發(fā)展,HTML5包含了更強(qiáng)大的功能,如豐富的UI組件和響應(yīng)式開發(fā),所有現(xiàn)代移動設(shè)備都支持HTML5,兼容性強(qiáng)大,沒有任何系統(tǒng)限制[2]。因此,基于HTML5的應(yīng)用程序被列為潛在的跨平臺解決方案。
為了開發(fā)基于HTML5的應(yīng)用程序,開發(fā)團(tuán)隊(duì)需要考慮如何使web應(yīng)用程序看起來像本機(jī)原生應(yīng)用程序。毫無疑問,桌面網(wǎng)站和移動應(yīng)用程序最大的區(qū)別在于交互方式,即"點(diǎn)擊"
和"觸摸"。在HTML5中,高級Javascript支持將桌面"點(diǎn)擊"操作轉(zhuǎn)換為移動"觸摸"平臺[3]。
雖然HTML5在大多數(shù)交互方面可以盡可能地模擬本機(jī)應(yīng)用程序,但由于移動系統(tǒng)制造商的政策,web應(yīng)用程序不能被授予對應(yīng)用程序編程接口)API)的完全訪問權(quán),這是一個(gè)明顯的缺陷。研究顯示,盡管web應(yīng)用程序允許訪問一些關(guān)鍵API,如攝像頭、麥克風(fēng)、地理位置、付款等基礎(chǔ)功能,但一些高級功能,如AR/VR、傳感器、藍(lán)牙訪問權(quán)等等,web應(yīng)用程序仍無法獲得。簡而言之,web應(yīng)用程序不能滿足需要應(yīng)用移動端高級API的需求。因此,如果一個(gè)移動商務(wù)需要應(yīng)用程序共享消費(fèi)者的聯(lián)系或者增強(qiáng)現(xiàn)實(shí)的功能,以便增強(qiáng)消費(fèi)者的互動性和社交性,web應(yīng)用程序就不適合開發(fā)此類應(yīng)用程序。
3混合開發(fā)
如果一個(gè)開發(fā)環(huán)境可以結(jié)合HMTL5中的兼容性以及沒有API訪問障礙的本地應(yīng)用程序語言,其將是一個(gè)合適的應(yīng)用程序開發(fā)解決方案。實(shí)際上,當(dāng)今有許多混合應(yīng)用程序出現(xiàn),其中AdobePhoneGap就是一個(gè)混合體移動應(yīng)用程序開發(fā)框架和組合,用于構(gòu)建應(yīng)用程序的本機(jī)和混合代碼[4]。
混合應(yīng)用程序依然是基于web前端技術(shù),如HTML、Css和Java腳本,PhoneGap正是使用HTML5進(jìn)行頁面的展示和渲染。然而,之前的研究已經(jīng)表明web平臺對訪問移動設(shè)備的API有限制。因此,PhoneGap采用了一個(gè)巧妙的方法解決這個(gè)問題,它使用本地應(yīng)用程序語言開發(fā)不同的插件以訪問大多數(shù)移動設(shè)備API,包括聯(lián)系人、網(wǎng)絡(luò)、指南針、AR功能等,那么web應(yīng)用程序使用PhoneGap的插件和混合應(yīng)用程序?qū)⒂蒆TML形式呈現(xiàn)。這個(gè)工作原理讓混合應(yīng)用與HTML5得以兼容且?guī)缀跄芡耆@得授權(quán)訪問本機(jī)移動API[5]。但由于能使用這些移動API的前提是PhoneGap已經(jīng)開發(fā)出了對應(yīng)的插件,所以一旦開發(fā)者需要訪問移動平臺最新推出的API,而PhoneGap還沒有研發(fā)出對應(yīng)的插件,就會造成應(yīng)用程序開發(fā)的滯后性。
4結(jié)語
雖然混合應(yīng)用程序平衡了本機(jī)和web應(yīng)用程序之間的利弊,選擇開發(fā)解決方案仍然取決于許多不同的情況。如果應(yīng)用程序只需要簡單的內(nèi)容顯示功能,因?yàn)榛旌匣虮緳C(jī)開發(fā)成本比純web高得多,所以這類簡單應(yīng)用更適合采用web應(yīng)用程序。與web應(yīng)用程序相比,本機(jī)開發(fā)需要更全面的技術(shù)和成本方面的考慮。如果公司擁有多平臺的專業(yè)開發(fā)人員和充裕的資本,應(yīng)該考慮原生開發(fā),因?yàn)樗麄儸F(xiàn)有的團(tuán)隊(duì)技術(shù)實(shí)力允許采用本地開發(fā)方法。另一個(gè)需要采用原生開發(fā)的需求是應(yīng)用程序需要高質(zhì)量的用戶界面實(shí)時(shí)響應(yīng),而當(dāng)前的HTML5技術(shù)不足以滿足用戶的需求,例如聊天或游戲應(yīng)用,而混合開發(fā)也不一定能滿足實(shí)時(shí)響應(yīng)的游戲需求,唯有原生開發(fā)才可以完美地滿足這類型需求。
簡而言之,移動商務(wù)應(yīng)用程序應(yīng)該具有最大限度滿足消費(fèi)者多樣化需求的特點(diǎn)?;旌祥_發(fā)將web應(yīng)用程序與本機(jī)開發(fā)的優(yōu)點(diǎn)結(jié)合起來,從而具備了足夠的兼容性。而HTML5技術(shù)近年來不斷發(fā)展。不管是哪個(gè)移動平臺,HTML5都會在未來占據(jù)移動設(shè)備的重要位置。
本文提供了三種不同的開發(fā)應(yīng)用程序的本地方案,目前,移動商務(wù)開發(fā)需在成本、平臺差異化、開發(fā)周期和開發(fā)環(huán)境等方面取得一個(gè)平衡。另外還列出了開發(fā)的其他兩種解決方案,包括web應(yīng)用程序和混合應(yīng)用程序。通過分析比較可以得出這樣的結(jié)論:web方法不適合開發(fā)需要大量訪問不同API的移動程序:而混合開發(fā)方法可以將原生開發(fā)和web應(yīng)用程序結(jié)合,是移動商務(wù)的合適解決方案。PhoneGap是混合構(gòu)建應(yīng)用程序的開發(fā)環(huán)境,使用HTML5渲染引擎,帶有PhoneGap插件訪問移動API,PhoneGap的工作原理允許其訪問大部分的移動API。未來的研究將更多地討論混合開發(fā)方法的利弊,分析它們的工作原理和測試運(yùn)行機(jī)制優(yōu)化的可能性,借此研究未來開發(fā)移動應(yīng)用程序的發(fā)展趨勢。