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