開發者視角:移動云應用VS.本地應用
目前,對于哪一種應用程序更好——是本機應用程序還是移動云計算應用程序,還有著很大的爭議。為了深入地分析這個問題,就讓我們從開發的角度來好好分析一下這兩種應用程序之間的區別。
一個本機應用程序是直接安裝在移動設備上的,而開發人員將為每一種移動設備開發一個單獨的應用程序版本。本機應用程序有可能會保存在移動設備的外部存儲器上,或者可以從公共的或私有的應用程序商店下載后安裝在移動設備上。
本機應用程序是針對特定設備及其操作系統而開發的。而與本機應用程序相關的數據也被存儲在設備上,當然也有可能其相關數據并沒有被存儲在設備上而是由本機應用程序進行遠程訪問的。基于以上本機應用程序的非聯網特點,互聯網連接可能并不是這種應用程序所必須的。
本機應用程序有能力使用特定設備的硬件與功能,這就意味著本機應用程序能夠充分利用移動設備上的***技術,例如全球定位系統(GPS)和相機等。這一點可以被認為是本機應用程序優于移動云計算應用程序的地方。
移動云計算應用程序與基于網絡的應用程序非常類似。他們主要的相似之處在于移動云計算應用程序和網絡應用程序都在移動設備之外的服務器上運行,都需要使用移動設備上的瀏覽器進行顯示并使用應用程序用戶界面(UI)。此外,它們都以支持多個移動設備為目標,而不是像本機應用程序那樣只支持一個特定的移動設備。
移動云計算應用程序并不需要在移動設備上進行下載和安裝等操作。用戶通過遠程設備上的瀏覽器窗口就可以查看移動云計算應用程序的界面。移動應用程序是在移動云計算上運行的,那么使用這樣的應用程序就一定需要互聯網連接了。當數據在移動設備和移動云計算應用程序之間進行傳輸時,通常會通過HTTP使用到JSON。
移動云計算應用程序可以來源于重新編寫本機應用程序(即需要使應用程序能夠在移動云計算中運行);客戶專為移動設備而開發的應用程序,或從外部下載至云計算的第三方應用程序。一些企業為他們的應用程序同時提供了本機版和移動云計算版。
移動云應用和本地應用的區別
本地應用程序和移動云計算應用程序之間的外觀差別是顯而易見的。它們之間一些明顯的、影響開發的差異包括:
• 移動應用程序環境:移動云計算服務器或移動設備
• 外觀和使用體驗:對于移動本地應用程序,它是在本地移動設備上運行的;對于移動云計算應用程序,它是模擬的。本地應用程序提供了通知,例如iOS通知,而移動云計算應用程序本身并不支持通知。
• 訪問設備上的功能:本地應用程序可直接訪問設備上的硬件與功能,例如GPS、相機、運動以及聲音。移動云應用則可能需要通過應用程序編程接口(API)才能間接地訪問這些功能。
• 用戶界面速度:通常來說,由于移動云計算應用程序是通過移動設備瀏覽器來顯示用戶界面的,所以本機應用程序的速度更快。本地應用程序界面運行在移動設備上,從而消除了任何與瀏覽器有關的資源開銷。
選擇開發移動云計算應用程序而不是本地應用程序往往是因為開發人員更愿意以犧牲功能的代價使應用程序更易于移植到不同的設備上。
本地應用與移動云應用的開發
對于本地應用程序來說,每一個移動應用程序開發平臺(例如iOS和Android)都使用了它自己的開發流程并擁有各自的本機編程語言,例如Java (Android)、Objective-C (iOS) 以及 Visual C++ (Windows Mobile)。
本地應用程序通常都有應用程序開發工具,例如Apple公司的iOS軟件開發套件、Google公司的Android開發工具以及微軟公司的.NET Compact Framework (.NET CF)。Sybase和PhoneGap則為本機應用程序提供了其他的開發工具。與之相反,移動云計算應用程序的開發工具并不依賴于任何的移動設備操作系統。
移動云計算應用程序使用HTML5、CSS3以及JavaScript這樣的編程語言,而在服務器端使用如C++這樣編程語言或根據開發人員喜好使用網絡應用程序框架,如PHP、Rails以及Python。
對于本地應用程序和移動云計算應用程序來說,工具和框架都可以幫助開發部署在多操作系統平臺和網絡瀏覽器的軟件。
Apple公司的開發平臺還能幫助本機應用程序的開發人員使用iOS通知功能以便于發出聲音警告或在屏幕上顯示一個可視警告或一段文字警告。移動云計算應用程序可以訪問移動設備上數量有限的本地功能和信息。這種訪問通常是通過API方式實現的。
移動應用程序需要考慮的問題
在創建一個移動應用程序前,有很多問題需要考慮。其中包括:
• 你計劃支持多少種移動設備平臺?
• 你是否有“使用你自己設備”(BYOD)的策略?
• 你是否需要使用設備上的軟硬件功能?
• 安全性的重要程度如何?
• 這樣一個應用程序的設計目的是什么?
• 數據與系統集成的重要性如何?
如果跨平臺兼容性是一個問題,那么肯定會在公司內實施一個BYOD策略,所以移動云計算應用程序就是一個更為合適的選擇了。但是,如果你需要一個使用眾多設備現有功能的業務應用程序,那么本機應用程序則可能是正確的選擇了。
安全性是移動設備的***弱點。它們的便攜性和尺寸使得它們比筆記本電腦更易于丟失或被盜。本機應用程序會遠程訪問業務數據,然后就把相關業務數據留在了設備上,這樣一來,如果設備丟失或被盜,這就有意無意地帶來了較大的風險。移動云計算應用程序的數據都保存在移動云計算中,并不在移動設備上。因此,如果一個使用移動云計算應用程序的設備丟失或被盜,它所帶來的安全性風險要小得多。
如果你正在為內部使用或客戶使用而開發移動業務應用程序,同時你開發的應用程序還需要支持眾多種類的移動設備,那么移動云計算應用程序就是一個好的選擇。如果你對開發銷售移動應用程序感興趣,那么本機應用程序則是個好選擇,因為它可以被放在客戶經常光顧的一個或多個應用程序商店中。
當移動業務應用程序訪問數據庫(這也是最常見的)時,你需要把你的應用程序和你目前的系統集成在一起。這類似于把第三方客戶資源管理或企業資源規劃產品與你現有系統的其它部分進行集成,這并不是一個簡單的活。當數據整合是必須的時,移動云計算應用程序是***的選擇,因為你的移動應用程序和你的系統其他部分都在相同的云計算中運行,而不是在遠程移動設備上運行(用不支持云計算的編程語言編寫)。