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