![]() |
VOOZH | about |
現如今是一個瘋狂的移動化主宰的世界,企業和開發人員都在拼命努力跟上面向消費者的移動應用程序開發的需求,並隨之調整企業服務和數據。而這對於企業而言尤其是一個相當棘手的問題。據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的應用程式將趕上,並能同時訪問所有傳感器。,他說。
對於開發人員們來說,最後的發展情況將如何?目前,原生應用程式最適合正在構建面向消費者的應用程式的企業,他們需要自己的設計和界面那個從大量同類產品中脫穎而出,並希望其具有頂級的性能,例如,遊戲行業。基於Web的應用程式是最適合企業構建內部使用的應用程式,B2B和內部應用程式。混合應用程式則處於前面兩者之間,能夠使應用程式看起來有點像原生應用程序,但卻是使用Web標準構建的。