在手機(jī)APP越來越普及的今天,如何選擇一個(gè)適合自己的推廣用APP已經(jīng)成為越來越多商家關(guān)注事情。而現(xiàn)在APP開發(fā)模式通常分為兩種,有Web APP與原生Native APP。到底什么情況適合選用哪種APP,本文將對(duì)此進(jìn)行分析說明。
一,兩種開發(fā)模式的簡(jiǎn)介
Native App開發(fā)
Native App開發(fā)即我們所稱的傳統(tǒng)APP開發(fā)模式(原生APP開發(fā)模式),該開發(fā)針對(duì)IOS、Android等不同的手機(jī)操作系統(tǒng)要采用不同的語言和框架進(jìn)行開發(fā),該模式通常是由“云服務(wù)器數(shù)據(jù)+APP應(yīng)用客戶端”兩部份構(gòu)成,APP應(yīng)用所有的UI元素、數(shù)據(jù)內(nèi)容、邏輯框架均安裝在手機(jī)終端上。
Web App開發(fā)
Web App開發(fā)即是一種框架型APP開發(fā)模式(HTML5APP 框架開發(fā)模式),該開發(fā)具有跨平臺(tái)的優(yōu)勢(shì),該模式通常由“HTML5云網(wǎng)站+APP應(yīng)用客戶端”兩部份構(gòu)成,APP應(yīng)用客戶端只需安裝應(yīng)用的框架部份,而應(yīng)用的數(shù)據(jù)則是每次打開APP的時(shí)候,去云端取數(shù)據(jù)呈現(xiàn)給手機(jī)用戶。
二,原生APP開發(fā)及Web APP開發(fā)模式的區(qū)別
Web APP需開發(fā)“html5云網(wǎng)站”和“APP客戶端”,這類型APP應(yīng)用呈現(xiàn)以下特點(diǎn):
(1)每次打開APP,都要通過APP框架向云網(wǎng)站取UI及數(shù)據(jù);
(2)手機(jī)用戶無法上網(wǎng)則無法訪問APP應(yīng)用中的數(shù)據(jù)。
(3)框架型的APP無法調(diào)用手機(jī)終端的硬件設(shè)備(語音、攝像頭、短信、GPS、藍(lán)牙、重力感應(yīng)等)
(4)框架型APP的訪問速度受手機(jī)終端上網(wǎng)的限制,每次使用均會(huì)消耗一定的手機(jī)上網(wǎng)流量;
(5)框架型APP應(yīng)用的安裝包小巧,只包含框架文件,而大量的UI元素、數(shù)據(jù)內(nèi)容剛存放在云端;
(6)APP用戶每次都可以訪問到實(shí)時(shí)的最新的云端數(shù)據(jù);
(7)APP用戶無須頻繁更新APP應(yīng)用,與云端實(shí)現(xiàn)的是實(shí)時(shí)數(shù)據(jù)交互;
適用企業(yè):電子商務(wù)、金融、新聞資訊、企業(yè)集團(tuán)需經(jīng)常更新內(nèi)容的APP應(yīng)用。
Native App(原生型APP)需要開發(fā)“云服務(wù)器數(shù)據(jù)中心”和“APP客戶端”,總結(jié)這類型的APP應(yīng)用呈現(xiàn)以下特點(diǎn):
(1)每次獲取最新的APP功能,需要升級(jí)APP應(yīng)用;
(2)原生型APP應(yīng)用的安裝包相對(duì)較大,包含UI元素、數(shù)據(jù)內(nèi)容、邏輯框架;
(3)手機(jī)用戶無法上網(wǎng)也可訪問APP應(yīng)用中以前下載的數(shù)據(jù)。
(4)原生型的APP可以調(diào)用手機(jī)終端的硬件設(shè)備(語音、攝像頭、短信、GPS、藍(lán)牙、重力感應(yīng)等)
(5)APP應(yīng)用更新新功能,涉及到每次要向各個(gè)應(yīng)用商店進(jìn)行提交審核。
適用企業(yè):游戲、電子雜志、管理應(yīng)用、物聯(lián)網(wǎng)等無需經(jīng)常更新程序框架的APP應(yīng)用。
到底該如何選擇Web App和Native App開發(fā)模式
移動(dòng)Web無所不在,移動(dòng)Web是目前唯一的支持各種設(shè)備訪問的平臺(tái),與桌面Web一樣,移動(dòng)Web支持各種標(biāo)準(zhǔn)的協(xié)議。移動(dòng)Web也是唯一一個(gè)可供開發(fā)者發(fā)布移動(dòng)應(yīng)用的平臺(tái),它將各種移動(dòng)交互與桌面任務(wù)有效地連接了起來;而開發(fā)Native App可以充分利用設(shè)備的特性,而這一點(diǎn)往往是Web瀏覽器做不到的,所以對(duì)一個(gè)產(chǎn)品本身而言,Native App是最佳的選擇。下面幾節(jié)將討論一下NativeApp的一些主要功能。
三,什么時(shí)候應(yīng)該選擇Native App
1.為應(yīng)用收費(fèi)
沒有任何地方規(guī)定開發(fā)者不能對(duì)一個(gè)移動(dòng)Web App收取使用費(fèi),但是由于某些原因,人們常常認(rèn)為不能或是不應(yīng)該對(duì)一個(gè)Web App收取費(fèi)用。由于歷史原因,導(dǎo)致移動(dòng)設(shè)備上付費(fèi)服務(wù)遭遇兩大阻力:
2.付款方式
在移動(dòng)設(shè)備上輸入信用卡號(hào)相當(dāng)麻煩,而且在許多老式設(shè)備上也沒有安全保障。一種典型的方式是,如果你需要對(duì)你的應(yīng)用收費(fèi),你可以與運(yùn)營(yíng)商達(dá)成協(xié)議,讓運(yùn)營(yíng)商代為為你的服務(wù)收費(fèi)。這也意味著,你需要和多個(gè)運(yùn)營(yíng)商達(dá)成合作。這通常是首選的方法,因?yàn)樵S多手機(jī)用戶可能根本就沒有信用卡,比如青少年。
另一種方法是將用戶的信用卡信息保存在一個(gè)安全的網(wǎng)站上。用戶可以通過登錄到該網(wǎng)站購(gòu)買應(yīng)用服務(wù)。這個(gè)過程不算特別理想,因?yàn)檫@意味著用戶不能直接通過他們的移動(dòng)設(shè)備購(gòu)買服務(wù)了。
3.強(qiáng)制分成
移動(dòng)運(yùn)營(yíng)商是會(huì)提成的。App無論是通過運(yùn)營(yíng)商還是通過移動(dòng)設(shè)備發(fā)布,他們都為應(yīng)用提供了一套收費(fèi)機(jī)制。這些運(yùn)營(yíng)商和移動(dòng)設(shè)備將會(huì)提取部分收益,然后將剩余的部分交給應(yīng)用開發(fā)商,這也意味著,開發(fā)人員必須遵守他們的市場(chǎng)規(guī)則。適應(yīng)運(yùn)營(yíng)商的市場(chǎng)規(guī)則通常是非常困難的,需要投入大量的人力資源。相比而言,移動(dòng)設(shè)備的市場(chǎng)規(guī)則則簡(jiǎn)單許多,但是也存在不少的困難。
妨礙運(yùn)營(yíng)商和移動(dòng)設(shè)備開發(fā)商利益的應(yīng)用以及服務(wù)都將受到阻擾。過去,那些不靠運(yùn)營(yíng)商和移動(dòng)設(shè)備開發(fā)商運(yùn)作的網(wǎng)站如果收入過于顯眼的話,都逃脫不了被關(guān)閉的命運(yùn),但是最近,這樣的事情鮮少發(fā)生了。
如果你想為你的Native App收費(fèi),那么你就必須接受這個(gè)現(xiàn)實(shí)——你必須遵守別人的市場(chǎng)規(guī)則,還得放棄部分收益。
4.開發(fā)游戲
如果你是想開發(fā)一個(gè)移動(dòng)游戲(移動(dòng)游戲是移動(dòng)市場(chǎng)上最大的一塊),那么你需要開發(fā)一個(gè)Native App。游戲?qū)Y源的占用很大,并且需要使用許多設(shè)備API或平臺(tái)API。雖然,現(xiàn)在有幾款完全使用Web技術(shù)開發(fā)的游戲占有了一定的市場(chǎng)份額,但是和 Native App市場(chǎng)的占有情況相比,還是微不足道的。游戲用戶對(duì)應(yīng)用的視覺和操作效果要求很高。移動(dòng)Web雖然提供了一些仿真體驗(yàn),但還遠(yuǎn)遠(yuǎn)不能滿足用戶的需求。
在開發(fā)移動(dòng)游戲時(shí),你需要慎重考慮你的應(yīng)用需要支持哪些平臺(tái)。幸運(yùn)的是,現(xiàn)在有許多工具能夠幫助你將你的游戲推向多個(gè)平臺(tái),但是完成這些工作,還是需要花費(fèi)大量的人力和物力。
5.使用定位功能
下一個(gè)功能就是定位功能,可以通過GPS或者是信號(hào)檢測(cè)確定用戶當(dāng)前的位置信息。以前只能通過Native App的APIs查看用戶的位置信息,但現(xiàn)在大多數(shù)主流移動(dòng)瀏覽器上都嵌入了W3C Geolocation API。像iPhone或Android這樣安裝了WebKit的設(shè)備,或是配置了Opera或Mozilla瀏覽器的設(shè)備,都可以獲取用戶的位置信息。
我相信定位功能會(huì)為Web技術(shù)帶來許多全新的應(yīng)用。如果能夠合理利用Web瀏覽器,Web開發(fā)商就能使用用戶的位置信息和其他內(nèi)容開發(fā)出更加有趣的應(yīng)用。雖然這在技術(shù)上沒有太大的困難,但卻受到隱私保護(hù)條例的限制。我們將Web瀏覽器當(dāng)做是用戶進(jìn)入World Wide Web的入口。加入定位功能,意味著在網(wǎng)站中引入了一些敏感信息,這有可能導(dǎo)致嚴(yán)重的后果。但是位置感知應(yīng)用中顯示的位置信息必須經(jīng)過用戶的授權(quán),用戶當(dāng)然有權(quán)禁止應(yīng)用發(fā)布自己的位置信息。
6.使用攝像頭
攝像頭可以為你的應(yīng)用提供豐富的可能性。以往移動(dòng)MMS(Multimedia Messaging Service)被用于處理移動(dòng)照片。換言之,你拍了一張照片后,需要使用MMS將它傳送給一個(gè)服務(wù)器,服務(wù)器對(duì)照片做出相應(yīng)的處理,并將處理完成的結(jié)果通知給你。這個(gè)過程是非常耗時(shí)的,而且相當(dāng)復(fù)雜,也沒有可靠性保障。
通過訪問攝像頭,Native App開發(fā)者能夠簡(jiǎn)化拍照的過程。用戶可以直接在客戶端對(duì)照片做一些簡(jiǎn)單的處理,只有在有需要的時(shí)候才將照片上傳給服務(wù)器,而且是通過可靠的HTTP傳輸。W3C正在開發(fā)一個(gè)訪問攝像頭的API,但現(xiàn)在還沒有將這部分工作正式整合到瀏覽器中。
在許多類型的移動(dòng)Apps中,攝像頭是非常有用的,比如快拍應(yīng)用、短片拍攝應(yīng)用等等,攝像頭可以用來捕捉許多重要的瞬間。不久的將來,我們可以看到——只要通過攝像頭拍攝某個(gè)標(biāo)識(shí),應(yīng)用程序就能自動(dòng)完成對(duì)標(biāo)識(shí)上的語言轉(zhuǎn)換工作——這個(gè)技術(shù)在日本已經(jīng)開始流行起來了。
7.使用感應(yīng)器
現(xiàn)在越來越來越多的移動(dòng)設(shè)備上都新增了感應(yīng)器功能,該裝置可以感知設(shè)備的物理速度以及重力,并將感知的數(shù)據(jù)結(jié)果傳送給設(shè)備。這個(gè)裝置常被用來感應(yīng)設(shè)置是否被翻轉(zhuǎn),應(yīng)用根據(jù)接受到的信息自動(dòng)調(diào)節(jié)畫面的方向。
感應(yīng)器可以用來幫助用戶提升與設(shè)備交互時(shí)的真實(shí)感;大多數(shù)移動(dòng)設(shè)備都是手持的,應(yīng)用能夠根據(jù)設(shè)備的方向調(diào)整內(nèi)容畫面,比如翻轉(zhuǎn)屏幕,或是檢測(cè)物理移動(dòng),并能據(jù)此猜測(cè)用戶所處的環(huán)境。舉一個(gè)簡(jiǎn)單的例子:比如用戶正在走路,那么感應(yīng)器能夠檢測(cè)到一個(gè)輕緩的移動(dòng)或是速度,這時(shí)可以為用戶提供一個(gè)大字體的用戶界面,從而使得用戶更容易看清屏幕上的內(nèi)容。
然而,開發(fā)者也不能過分依賴感應(yīng)器,因?yàn)楦袘?yīng)器無法區(qū)分究竟哪些交互是有意的,而哪些是沒有意義的。每個(gè)移動(dòng)交互都需要通過“傳輸測(cè)試”。設(shè)計(jì)你的交互時(shí)必須考慮用戶在一個(gè)擁擠的汽車或是火車上的場(chǎng)景。考慮一下如果用戶正身處擁擠的地鐵或是正在駕車時(shí),你的應(yīng)用能否正確處理用戶搖晃移動(dòng)設(shè)備的動(dòng)作。通常,大多數(shù)開發(fā)者都沒有考慮這些因素。確保為每個(gè)任務(wù)設(shè)計(jì)一個(gè)備用方案以處理特殊場(chǎng)景中的移動(dòng)交互。
8.訪問文件系統(tǒng)
如果你的應(yīng)用需要將數(shù)據(jù)保存在本地,那么你需要開發(fā)一個(gè)Native App。比如你要保存用戶的地址簿、電話或E-mail信息,或是保存從其他設(shè)備上獲取的數(shù)據(jù)。
訪問文件系統(tǒng)常常會(huì)涉及到安全和用戶隱私保護(hù)的問題。惡意應(yīng)用程序可能會(huì)修改你的移動(dòng)設(shè)備上的數(shù)據(jù)。一個(gè)攜帶病毒的應(yīng)用程序可以利用移動(dòng)設(shè)備上的關(guān)系網(wǎng)將病毒擴(kuò)散到許多其他的手機(jī)上,在采用移動(dòng)應(yīng)用認(rèn)證機(jī)制以前,這種事情是常常發(fā)生的。
另一方面,移動(dòng)設(shè)備正變得越來越私人化,移動(dòng)設(shè)備上保存了大量用戶的個(gè)人信息,以及用戶的朋友信息和商業(yè)信息。針對(duì)這些私人信息開發(fā)應(yīng)用是一個(gè)不錯(cuò)的想法。但是這也存在一定的風(fēng)險(xiǎn),使用保存在移動(dòng)設(shè)備上的數(shù)據(jù)可以為用戶提供更加有針對(duì)性的服務(wù)。
開發(fā)者必須謹(jǐn)記,只有在獲得用戶的授權(quán)后才能訪問用戶的私人數(shù)據(jù)。我們看到許多應(yīng)用在沒有得到用戶授權(quán)的情況下使用了大量的用戶私人數(shù)據(jù),而被誤認(rèn)為是垃圾信息或是釣魚應(yīng)用,即使這些應(yīng)用原本是在提供一些非常有用的服務(wù)。人們對(duì)你的應(yīng)用的誤解將會(huì)影響到你的服務(wù)的推廣,如果運(yùn)營(yíng)商收到過多關(guān)于你的應(yīng)用的投訴,那么你的服務(wù)可能將被終止,甚至?xí)窟B其他的應(yīng)用。
訪問文件系統(tǒng)時(shí)至關(guān)重要的一點(diǎn)就是在沒有獲得用戶授權(quán)的情況下,不要訪問任何用戶的私人數(shù)據(jù)。而這一點(diǎn),往往被大多數(shù)應(yīng)用忽略了。W3C正在為移動(dòng)開發(fā)商開發(fā)相關(guān)的標(biāo)準(zhǔn)API,但目前該工作尚未完成。