現(xiàn)如今是一個瘋狂的移動化主宰的世界,企業(yè)和開發(fā)人員都在拼命努力跟上面向消費者的移動應(yīng)用程序開發(fā)的需求,并隨之調(diào)整企業(yè)服務(wù)和數(shù)據(jù)。而這對于企業(yè)而言尤其是一個相當棘手的問題。據(jù)Gartner的調(diào)研數(shù)據(jù)顯示,到2017年底,企業(yè)對于移動應(yīng)用程序的需求將大幅增長,其至少是IT所能夠交付滿足的五倍。
問題不僅僅只在于需求的暴漲。而是在于開發(fā)人員們需要選擇合適的技術(shù)以便構(gòu)建移動應(yīng)用程序。今天,企業(yè)構(gòu)建移動應(yīng)用程序有三大選擇:為每種平臺構(gòu)建原生態(tài)應(yīng)用程序(iOS,Android和Windows Phone);構(gòu)建移動Web應(yīng)用程序,可以使用HTML5,CSS和JavaScript技術(shù)在瀏覽器上運行;或采用一種混合的方法,通過構(gòu)建移動Web應(yīng)用程序,然后將其放在native wrapper,使其能夠像原生態(tài)應(yīng)用程序一樣在不同的設(shè)備上運行。
每種方法都各有其優(yōu)缺點。因此,讓我們一起來分析一下每種技術(shù),然后再來看如何在它們之間進行選擇吧。
原生態(tài)應(yīng)用程序
原生態(tài)應(yīng)用程序是在特定的移動平臺上運行的——包括iOS,Android或Windows Phone。其代碼是直接為特定的硬件所編寫的,并不能直接從平臺移植到平臺。用于構(gòu)建原生態(tài)應(yīng)用程序的開發(fā)工具通常由平臺主提供。例如,iOS應(yīng)用程序的打造通常使用蘋果的Xcode。谷歌的安卓系統(tǒng)官方開發(fā)平臺是安卓工作室。而Windows Phone則是其Visual Studio。
原生態(tài)應(yīng)用程序可以充分利用所有設(shè)備的內(nèi)置硬件的優(yōu)勢,包括傳感器、全球定位系統(tǒng)(GPS)、圖形加速等等。因為每款應(yīng)用程序都是專門為每款設(shè)備所特定編寫的,其提供了高性能,這對于游戲而言尤其重要,同時對圖形和媒體應(yīng)用程序也相當有用。他們通過每家供應(yīng)商的商店提供:蘋果App Store、Google Play和Windows應(yīng)用商店。他們使用通用的控件,并讓每臺設(shè)備都有共同的外觀和感覺,這樣就很容易讓用戶能夠快速地上手了解并使用。
當前,人才市場對于具備編寫原生態(tài)應(yīng)用程序技能的開發(fā)人員可謂供不應(yīng)求,這些人才的薪酬水平相當可觀。而這些成本費用并非只是應(yīng)用程序的最初成本。應(yīng)用程序開發(fā)完之后還需要定期的維護和bug修復(fù),還需要定期更新。因此,高成本往往是持續(xù)性的。
這種情況對于為一種平臺編寫應(yīng)用程序已經(jīng)夠糟的了。但是,如果您企業(yè)還想為兩大主要平臺編程應(yīng)用程序,其費用勢必會增加一倍,而如果您企業(yè)還想有針對Windows Phone的應(yīng)用程序,其成本將增加兩倍。如果您想要一個手機網(wǎng)站,您企業(yè)還需要組建一支單獨的移動Web開發(fā)團隊。
利用HTML 5、CSS和JavaScript構(gòu)建的Web應(yīng)用程序
基于Web的應(yīng)用是是利用HTML 5,CSS和JavaScript技術(shù)所構(gòu)建的Web站點。不同于原生態(tài)的應(yīng)用程序,他們不是作為一款應(yīng)用程序被下載到移動設(shè)備上。相反,用戶是通過移動瀏覽器運行它們來瀏覽網(wǎng)頁的。請記住,我們現(xiàn)在談?wù)摰牟皇庆o態(tài)網(wǎng)頁。這些是全面的應(yīng)用程序,具有交互性等您所期望的功能特點。網(wǎng)絡(luò)應(yīng)用程序也可以使用一些移動硬件,如GPS,雖然這方面的支持往往受到傳感器的限制。
較之原生態(tài)的應(yīng)用程序,其更容易構(gòu)建,因為其使用的是與構(gòu)建非移動網(wǎng)頁相同的技術(shù)。而招聘到Web開發(fā)人員比要比原生態(tài)的應(yīng)用程序開發(fā)人員更容易,前者在人才庫中有大量的應(yīng)聘者可供企業(yè)選擇。
當您企業(yè)在構(gòu)建Web應(yīng)用程序,只需要維護一個代碼庫。而不必建立多款獨立的原生態(tài)的應(yīng)用程序,然后必須對每款不同的原生態(tài)的應(yīng)用程序分別進行開發(fā)、維護和更新。其部署也非常簡單,通過一個Web服務(wù)器即可。應(yīng)用程序不需要進行編譯或通過蘋果、谷歌和微軟的應(yīng)用程序商店的審核,畢竟,這一審核過程有時會相當麻煩。所以,構(gòu)建Web應(yīng)用程序要比原生態(tài)的應(yīng)用程序要更快更便宜。此外,用戶也不必要必須下載一款應(yīng)用程序才能使用,他們只需要打開一個網(wǎng)頁即可。
但這也存在著一些缺點。Web應(yīng)用程序的性能表現(xiàn)不及原生態(tài)的應(yīng)用程序,雖然現(xiàn)如今已經(jīng)有了快速的多核心移動處理器,這在瀏覽靜態(tài)頁面時得到了相當大的改善。然而,對于一些游戲,或者圖形和媒體豐富的應(yīng)用程序而言,這仍然是一個問題。Web應(yīng)用程序并不總是能夠很好的利用每臺設(shè)備上的傳感器。他們也沒有權(quán)限訪問設(shè)備上的聯(lián)系人列表和其他類型的數(shù)據(jù)。因為Web應(yīng)用程序不是通過應(yīng)用程序商店下載的,新的用戶找到他們可能也很困難,因為大量用戶已經(jīng)習(xí)慣了通過應(yīng)用程序商店找到他們想要的應(yīng)用程序。它們的接口也可能不像原生態(tài)的應(yīng)用程序的接口,其可能是對某些用戶關(guān)閉的。
混合應(yīng)用程序
混合應(yīng)用程序是一個利用HTML 5,CSS和JavaScript構(gòu)建的Web網(wǎng)頁,然后將其放在native wrapper,使其能夠像原生態(tài)應(yīng)用程序一樣在不同的設(shè)備上運行。其能夠像一款原生態(tài)應(yīng)用程序一樣從應(yīng)用程序商店被下載到一款設(shè)備上。其可以充分利用大部分內(nèi)置到每種平臺的傳感器和其他功能(但不一定是所有),如通知。就像一款原生態(tài)應(yīng)用程序一樣,其會有一個圖標在主屏幕上,用戶只需點擊即可運行它。
與Web應(yīng)用程序一樣,混合應(yīng)用程序的性能表現(xiàn)也不及原生態(tài)應(yīng)用程序,雖然快速的移動處理器已經(jīng)使得該問題比以往好了很多。但這一點對于某些游戲,特別是對于那些圖形和媒體豐富的應(yīng)用程序仍然很重要。
對于混合應(yīng)用程序,您企業(yè)往往只需先像往常一樣使用HTML 5,CSS和JavaScript技術(shù)建立一個網(wǎng)頁。在此之后,使用一款平臺,如開源的Apache Cordova或Adobe的PhoneGap(基于Cordova)把代碼放到原生態(tài)應(yīng)用程序。當然也有各種各樣的完整的開發(fā)環(huán)境讓您企業(yè)采用HTML 5,CSS和JavaScript或其他語言編寫代碼,然后將代碼轉(zhuǎn)換,以便像原生態(tài)應(yīng)用程序一樣運行。這種方法的主要優(yōu)點是,您企業(yè)不必為多種平臺雇傭多樣的開發(fā)人員。Web開發(fā)人員可以利用他們的技能來編寫移動網(wǎng)頁,然后利用相應(yīng)的工具將其轉(zhuǎn)換為原生態(tài)應(yīng)用程序。而這種方式的一個缺點則是導(dǎo)致所生成的應(yīng)用程序往往并不像原生應(yīng)用程序,沒有與原生應(yīng)用程序相同的接口和控制。
做出決策
那么,您企業(yè)應(yīng)該怎樣做呢---采用原生應(yīng)用程序,使用HTML 5,或部署混合的方法?為了做出決策,您需要花費很長的時間來研究您企業(yè)的移動需求,資源和時間表,說Forrester的分析師Michael Facemire表示說。他曾就這方面的主題與人合作撰寫了許多報告,包括“Web, Hybrid, And Native Mobile Apps All Have Their Place。”
“首先,想想清楚您企業(yè)想要打造怎樣的應(yīng)用程序。”他說。“到底是一款B2C的應(yīng)用程序,或是B2B抑或是B2E(business-to-employee)的應(yīng)用程序?“
他說,“就目前而言,大量的關(guān)注重心都集中在了B2C的原生應(yīng)用程序方面。”因為大部分企業(yè)均認為其較之Web應(yīng)用程序或混合的方法能夠提供更好的用戶體驗。而用戶體驗對于那些想要在移動領(lǐng)域展示 其“領(lǐng)導(dǎo)力”的品牌而言尤為重要,他說。此外,他認為,消費者已經(jīng)習(xí)慣了從應(yīng)用程序商店尋找他們喜歡的新的應(yīng)用程序,這使得原生應(yīng)用程序較之基于Web的應(yīng)用程序更能夠方便的為消費者所發(fā)現(xiàn)。
然而,對于B2B和B2E的應(yīng)用程序,他建議企業(yè)要么采用基于Web的應(yīng)用程序,要么采取混合的方法。“HTML 5可以滿足任何商家和企業(yè)的需要,所以采用混合或Web應(yīng)用程序是較為切實的方法。”他說。“這樣做會降低成本,使升級和維護更容易。”
根據(jù)Forrester針對開發(fā)人員的調(diào)查研究顯示,在2014年,31%的開發(fā)人員編寫的都是原生應(yīng)用程序;27%的編寫的是基于Web的應(yīng)用程序;22%的編寫的是混合應(yīng)用程序;12%的使用的是“跨平臺”的方式,在該方式中,他們在諸如Xamarin的一款平臺編寫代碼,而其不是基于HTML 5的。Facemire認為企業(yè)只將一種方法作為公司的規(guī)范會是一個錯誤。他說:“如果您企業(yè)只構(gòu)建原生應(yīng)用程序,移動Web網(wǎng)站,或混合應(yīng)用程序都是非常短視的。這應(yīng)該與您企業(yè)發(fā)展的需求相匹配。一家企業(yè)可能希望為他們的消費者構(gòu)建原生的應(yīng)用程序,但同時在企業(yè)內(nèi)部使用移動Web網(wǎng)絡(luò),如公司名錄。”
Web應(yīng)用程序會超越原生應(yīng)用程序嗎?
Adobe公司的移動副總裁Matt Asay也認同F(xiàn)acemire的觀點,并表示如果只有企業(yè)內(nèi)部員工使用的話,構(gòu)建原生應(yīng)用程序就是在浪費時間和金錢。
他說:“我很難想象您企業(yè)為什么會在這種情況下建立一款原生應(yīng)用程序。利用企業(yè)內(nèi)部的應(yīng)用程序,您企業(yè)不是市場上競爭,也不是在與其他基于消費者的應(yīng)用程序爭取消費者。所有這些費用都是沒有理由的。”
Asay認為,在一般情況下,原生應(yīng)用程序是一個過渡階段,最終幾乎所有的應(yīng)用程序?qū)⑹腔赪eb的。所以,他說,這就是企業(yè)的開發(fā)工作應(yīng)該關(guān)注的領(lǐng)域。
“作為一個行業(yè),我們認為應(yīng)用程序是唯一的事情,我們已經(jīng)忘記了網(wǎng)絡(luò),”他說。“隨著時間的推移,這將改變。我們開始從桌面臺式機上開發(fā)原生應(yīng)用程序,并隨著時間的推移遷移大多數(shù)應(yīng)用程序到Web上。而在移動領(lǐng)域,您會看到同樣的事情發(fā)生,Web網(wǎng)絡(luò)會比原生apps更重要。”Matt Asay說。
他認為,其中一個原因是,創(chuàng)建一款應(yīng)用程序,被人們發(fā)現(xiàn),并從App Store上下載近乎是不可能的。“如果您是一家獨立的發(fā)行商,您的應(yīng)用程序從大量同質(zhì)的應(yīng)用程序中脫穎而出的機會基本上小于零。”他說。“正因為如此,獨立開發(fā)者會更好的去開發(fā)一個基于Web的應(yīng)用程序。”
人們可以通過多種方式得到基于Web的應(yīng)用程序。他們可以直接在自己的瀏覽器中鍵入網(wǎng)址;從他們?yōu)g覽器的書簽上訪問,或者可以將其在他們的電腦主屏幕上建立快捷方式,其圖標看起來像一個原生應(yīng)用程序。
至于知名品牌,他認為,人們已經(jīng)知道這些品牌的網(wǎng)址,所以沒有必要創(chuàng)建一個應(yīng)用程序,以建立知名度和品牌意識。他還表示,對于在線零售商來說,移動網(wǎng)絡(luò)是優(yōu)于應(yīng)用程序的。
“一家年銷售額達幾億美元的主要零售商的移動部門負責人告訴我說,該公司90%的移動流量都是來自Web網(wǎng)絡(luò),而不是該公司的原生應(yīng)用程序。既然如此,他為什么要花如此多的時間和金錢,繼續(xù)建立一款原生應(yīng)用程序呢?“
使用通用的API
Tom Dale是一款JavaScript開發(fā)框架Ember.js的共同創(chuàng)作者,他認為,未來肯定會有一種方式是面向未來的移動開發(fā)的,使企業(yè)不必在原生應(yīng)用程序開發(fā),移動Web開發(fā),或混合開發(fā)之間做出全有或全無的決定。他說,企業(yè)應(yīng)該建立一個能夠被所有開發(fā)方法通用的API。
“以一家初創(chuàng)型科技公司為例,其規(guī)模小,而且沒有市場。通常他們將從開發(fā)iOS應(yīng)用程序或者Android應(yīng)用程序開始。”他說。“對于這樣的應(yīng)用程序,您企業(yè)需要在后端建立一個API。因此以這樣一種方式建立一個API,其能夠為由原生應(yīng)用程序、移動網(wǎng)頁、混合應(yīng)用程序,甚至一款桌面應(yīng)用程序所用是很有意義的。”
他同意Asay所說的,最終大多數(shù)移動開發(fā)將遷移到移動網(wǎng)絡(luò)并遠離原生應(yīng)用程序和混合應(yīng)用程序。原生應(yīng)用程序的優(yōu)勢最終將消失,他說。
原生應(yīng)用程序具備能夠訪問所有傳感器的優(yōu)勢。但在某些時候,移動設(shè)備并沒有內(nèi)置新的傳感器。這些技術(shù)會變成熟,然后基于Web的應(yīng)用程序?qū)②s上,并能同時訪問所有傳感器。,他說。
對于開發(fā)人員們來說,最后的發(fā)展情況將如何?目前,原生應(yīng)用程序最適合正在構(gòu)建面向消費者的應(yīng)用程序的企業(yè),他們需要自己的設(shè)計和界面那個從大量同類產(chǎn)品中脫穎而出,并希望其具有頂級的性能,例如,游戲行業(yè)?;赪eb的應(yīng)用程序是最適合企業(yè)構(gòu)建內(nèi)部使用的應(yīng)用程序,B2B和內(nèi)部應(yīng)用程序?;旌蠎?yīng)用程序則處于前面兩者之間,能夠使應(yīng)用程序看起來有點像原生應(yīng)用程序,但卻是使用Web標準構(gòu)建的。