自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

到底什么情況該選擇開發(fā)移動Web App?

移動開發(fā)
移動Web平臺具有以下一些優(yōu)點:容易學(xué)習(xí),開發(fā)成本低、標準化、使用方便、易于發(fā)布。我將這些優(yōu)點歸結(jié)為無處不在原則:通常開發(fā)簡單而且市場廣泛的東西往往能夠取得成功。

[[84830]]

移動Web無所不在

移動Web是目前唯一的支持各種設(shè)備訪問的平臺,與桌面Web一樣,移動Web支持各種標準的協(xié)議。移動Web也是唯一一個可供開發(fā)者發(fā)布移動應(yīng)用的平臺,它將各種移動交互與桌面任務(wù)有效地連接了起來。

移動Web平臺具有以下一些優(yōu)點:容易學(xué)習(xí),開發(fā)成本低、標準化、使用方便、易于發(fā)布。我將這些優(yōu)點歸結(jié)為無處不在原則:通常開發(fā)簡單而且市場廣泛的東西往往能夠取得成功。

“高質(zhì)量”也是成功的關(guān)鍵因素之一,而這一點移動Web這些年還沒能做得很好。移動Web在許多方面還存在一些困難,如解決設(shè)備的多樣性就是提升移動Web質(zhì)量的一個重大挑戰(zhàn)。但是,移動Web遇到的困難遠沒有Native Apps遭遇的挑戰(zhàn)來得復(fù)雜。另外,這些挑戰(zhàn)將在這幾年的時間里得到有效的解決。

眾所周知,我是移動Web的擁護者;然而,我也是第一個承認Native App重要性的人。開發(fā)Native App可以充分利用設(shè)備的特性,而這一點往往是Web瀏覽器做不到的,所以對一個產(chǎn)品本身而言,Native App是最佳的選擇。

下面幾節(jié)將討論一下Native App的一些主要功能。

什么時候應(yīng)該開發(fā)一個Native App

1.為應(yīng)用收費

沒有任何地方規(guī)定開發(fā)者不能對一個移動Web App收取使用費,但是由于某些原因,人們常常認為不能或是不應(yīng)該對一個Web App收取費用。由于歷史原因,導(dǎo)致移動設(shè)備上付費服務(wù)遭遇兩大阻力:

2.付款方式

在移動設(shè)備上輸入信用卡號相當麻煩,而且在許多老式設(shè)備上也沒有安全保障。一種典型的方式是,如果你需要對你的應(yīng)用收費,你可以與運營商達成協(xié)議,讓運營商代為為你的服務(wù)收費。這也意味著,你需要和多個運營商達成合作。這通常是首選的方法,因為許多手機用戶可能根本就沒有信用卡,比如青少年。

另一種方法是將用戶的信用卡信息保存在一個安全的網(wǎng)站上。用戶可以通過登錄到該網(wǎng)站購買應(yīng)用服務(wù)。這個過程不算特別理想,因為這意味著用戶不能直接通過他們的移動設(shè)備購買服務(wù)了。

3.強制分成

移動運營商是會提成的。App無論是通過運營商還是通過移動設(shè)備發(fā)布,他們都為應(yīng)用提供了一套收費機制。這些運營商和移動設(shè)備將會提取部分收益,然后將剩余的部分交給應(yīng)用開發(fā)商,這也意味著,開發(fā)人員必須遵守他們的市場規(guī)則。適應(yīng)運營商的市場規(guī)則通常是非常困難的,需要投入大量的人力資源。相比而言,移動設(shè)備的市場規(guī)則則簡單許多,但是也存在不少的困難。

妨礙運營商和移動設(shè)備開發(fā)商利益的應(yīng)用以及服務(wù)都將受到阻擾。過去,那些不靠運營商和移動設(shè)備開發(fā)商運作的網(wǎng)站如果收入過于顯眼的話,都逃脫不了被關(guān)閉的命運,但是最近,這樣的事情鮮少發(fā)生了。

如果你想為你的Native App收費,那么你就必須接受這個現(xiàn)實——你必須遵守別人的市場規(guī)則,還得放棄部分收益。

開發(fā)游戲

如果你是想開發(fā)一個移動游戲(移動游戲是移動市場上最大的一塊),那么你需要開發(fā)一個Native App。游戲?qū)Y源的占用很大,并且需要使用許多設(shè)備API或平臺API。雖然,現(xiàn)在有幾款完全使用Web技術(shù)開發(fā)的游戲占有了一定的市場份額,但是和Native App市場的占有情況相比,還是微不足道的。游戲用戶對應(yīng)用的視覺和操作效果要求很高。移動Web雖然提供了一些仿真體驗,但還遠遠不能滿足用戶的需求。

在開發(fā)移動游戲時,你需要慎重考慮你的應(yīng)用需要支持哪些平臺。幸運的是,現(xiàn)在有許多工具能夠幫助你將你的游戲推向多個平臺,但是完成這些工作,還是需要花費大量的人力和物力。

4.使用定位功能

下一個功能就是定位功能,可以通過GPS或者是信號檢測確定用戶當前的位置信息。以前只能通過Native App的APIs查看用戶的位置信息,但現(xiàn)在大多數(shù)主流移動瀏覽器上都嵌入了W3C Geolocation API。像iPhone或Android這樣安裝了WebKit的設(shè)備,或是配置了Opera或Mozilla瀏覽器的設(shè)備,都可以獲取用戶的位置信息。

我相信定位功能會為Web技術(shù)帶來許多全新的應(yīng)用。如果能夠合理利用Web瀏覽器,Web開發(fā)商就能使用用戶的位置信息和其他內(nèi)容開發(fā)出更加有趣的應(yīng)用。雖然這在技術(shù)上沒有太大的困難,但卻受到隱私保護條例的限制。我們將Web瀏覽器當做是用戶進入World Wide Web的入口。加入定位功能,意味著在網(wǎng)站中引入了一些敏感信息,這有可能導(dǎo)致嚴重的后果。但是位置感知應(yīng)用中顯示的位置信息必須經(jīng)過用戶的授權(quán),用戶當然有權(quán)禁止應(yīng)用發(fā)布自己的位置信息。

5.使用攝像頭

攝像頭可以為你的應(yīng)用提供豐富的可能性。以往移動MMS(Multimedia Messaging Service)被用于處理移動照片。換言之,你拍了一張照片后,需要使用MMS將它傳送給一個服務(wù)器,服務(wù)器對照片做出相應(yīng)的處理,并將處理完成的結(jié)果通知給你。這個過程是非常耗時的,而且相當復(fù)雜,也沒有可靠性保障。

通過訪問攝像頭,Native App開發(fā)者能夠簡化拍照的過程。用戶可以直接在客戶端對照片做一些簡單的處理,只有在有需要的時候才將照片上傳給服務(wù)器,而且是通過可靠的HTTP傳輸。W3C正在開發(fā)一個訪問攝像頭的API,但現(xiàn)在還沒有將這部分工作正式整合到瀏覽器中。

在許多類型的移動Apps中,攝像頭是非常有用的,比如快拍應(yīng)用、短片拍攝應(yīng)用等等,攝像頭可以用來捕捉許多重要的瞬間。不久的將來,我們可以看到——只要通過攝像頭拍攝某個標識,應(yīng)用程序就能自動完成對標識上的語言轉(zhuǎn)換工作——這個技術(shù)在日本已經(jīng)開始流行起來了。

6.使用感應(yīng)器

現(xiàn)在越來越來越多的移動設(shè)備上都新增了感應(yīng)器功能,該裝置可以感知設(shè)備的物理速度以及重力,并將感知的數(shù)據(jù)結(jié)果傳送給設(shè)備。這個裝置常被用來感應(yīng)設(shè)置是否被翻轉(zhuǎn),應(yīng)用根據(jù)接受到的信息自動調(diào)節(jié)畫面的方向。

感應(yīng)器可以用來幫助用戶提升與設(shè)備交互時的真實感;大多數(shù)移動設(shè)備都是手持的,應(yīng)用能夠根據(jù)設(shè)備的方向調(diào)整內(nèi)容畫面,比如翻轉(zhuǎn)屏幕,或是檢測物理移動,并能據(jù)此猜測用戶所處的環(huán)境。舉一個簡單的例子:比如用戶正在走路,那么感應(yīng)器能夠檢測到一個輕緩的移動或是速度,這時可以為用戶提供一個大字體的用戶界面,從而使得用戶更容易看清屏幕上的內(nèi)容。

然而,開發(fā)者也不能過分依賴感應(yīng)器,因為感應(yīng)器無法區(qū)分究竟哪些交互是有意的,而哪些是沒有意義的。每個移動交互都需要通過“傳輸測試”。設(shè)計你的交互時必須考慮用戶在一個擁擠的汽車或是火車上的場景??紤]一下如果用戶正身處擁擠的地鐵或是正在駕車時,你的應(yīng)用能否正確處理用戶搖晃移動設(shè)備的動作。通常,大多數(shù)開發(fā)者都沒有考慮這些因素。確保為每個任務(wù)設(shè)計一個備用方案以處理特殊場景中的移動交互。

7.訪問文件系統(tǒng)

如果你的應(yīng)用需要將數(shù)據(jù)保存在本地,那么你需要開發(fā)一個Native App。比如你要保存用戶的地址簿、電話或E-mail信息,或是保存從其他設(shè)備上獲取的數(shù)據(jù)。

訪問文件系統(tǒng)常常會涉及到安全和用戶隱私保護的問題。惡意應(yīng)用程序可能會修改或是刪除你的移動設(shè)備上的數(shù)據(jù)。一個攜帶病毒的應(yīng)用程序可以利用移動設(shè)備上的關(guān)系網(wǎng)將病毒擴散到許多其他的手機上,在采用移動應(yīng)用認證機制以前,這種事情是常常發(fā)生的。

另一方面,移動設(shè)備正變得越來越私人化,移動設(shè)備上保存了大量用戶的個人信息,以及用戶的朋友信息和商業(yè)信息。針對這些私人信息開發(fā)應(yīng)用是一個不錯的想法。但是這也存在一定的風險,使用保存在移動設(shè)備上的數(shù)據(jù)可以為用戶提供更加有針對性的服務(wù)。

開發(fā)者必須謹記,只有在獲得用戶的授權(quán)后才能訪問用戶的私人數(shù)據(jù)。我們看到許多應(yīng)用在沒有得到用戶授權(quán)的情況下使用了大量的用戶私人數(shù)據(jù),而被誤認為是垃圾信息或是釣魚應(yīng)用,即使這些應(yīng)用原本是在提供一些非常有用的服務(wù)。人們對你的應(yīng)用的誤解將會影響到你的服務(wù)的推廣,如果運營商收到過多關(guān)于你的應(yīng)用的投訴,那么你的服務(wù)可能將被終止,甚至?xí)窟B其他的應(yīng)用。

訪問文件系統(tǒng)時至關(guān)重要的一點就是在沒有獲得用戶授權(quán)的情況下,不要訪問任何用戶的私人數(shù)據(jù)。而這一點,往往被大多數(shù)應(yīng)用忽略了。

W3C正在為移動開發(fā)商開發(fā)相關(guān)的標準API,但目前該工作尚未完成。

8.離線用戶

最后一個需要開發(fā)Native App的理由就是,用戶有可能是離線的或者無法接入移動網(wǎng)絡(luò)。這在城市可能很少發(fā)生,即使是在農(nóng)村,網(wǎng)絡(luò)的覆蓋也已經(jīng)逐步普及了。但是短暫的網(wǎng)絡(luò)連接中斷還是時常發(fā)生的,你的應(yīng)用程序應(yīng)該考慮如何處理這種情景。

想想用戶通常在什么時候,在哪里會使用你的App。如果是一個移動游戲,那么用戶很可能在飛機上使用這個App。跟蹤地圖應(yīng)用常在偏遠且網(wǎng)絡(luò)覆蓋不佳的地方使用。移動旅游向?qū)СT谝粋€國外的網(wǎng)絡(luò)中訪問,往往需要支付漫游和國際網(wǎng)絡(luò)費用。這時,應(yīng)用程序最好能夠為用戶提供離線服務(wù),保證用戶在不接入網(wǎng)絡(luò)的情況下,仍然能享受同等的服務(wù)。

現(xiàn)在支持HTML5的瀏覽器也能實現(xiàn)脫機訪問功能,但對用戶來說可能不太明顯。隨著越來越多的瀏覽器都開始支持脫機訪問,應(yīng)用需要明確地告訴用戶網(wǎng)絡(luò)連接中斷時,他們?nèi)匀豢梢栽L問移動Web Apps。

Native Apps常常假設(shè)網(wǎng)絡(luò)連接是可靠的。App通常只考慮了網(wǎng)絡(luò)狀況良好的情景,想當然地認為網(wǎng)絡(luò)是封閉的,并且網(wǎng)速足夠快。移動設(shè)備從網(wǎng)絡(luò)良好的環(huán)境突然進入一個網(wǎng)絡(luò)糟糕的環(huán)境并不少見。Native Apps應(yīng)該在網(wǎng)絡(luò)狀況最差的情況下測試。比如用戶啟動任務(wù)時可能還是全信號覆蓋,而在任務(wù)結(jié)束時可能已經(jīng)完全沒有網(wǎng)絡(luò)信號了。

用戶在安裝Native Apps時,根本不會考慮是在線訪問還是離線訪問——他們期望的是不管在任何狀況下,Native Apps都能正常工作。而這也是開發(fā)者的職責。

什么時候應(yīng)該開發(fā)一個Web App

只要你的應(yīng)用程序不滿足之前提到的Native App條件之一,那么你就沒有必要開發(fā)一個Native App,而應(yīng)該選擇開發(fā)一個Web App。正如文章之前提到的,我是一個Native App的擁護者,我認為Native App有許多優(yōu)秀的特質(zhì),并且具有很大的市場潛力,但是Web Apps是唯一一個經(jīng)久不衰的移動內(nèi)容、服務(wù)、應(yīng)用開發(fā)平臺。

Native App并不能明顯地為用戶提供更好的服務(wù);它反而會增加項目的成本,減少了應(yīng)用發(fā)布的渠道,增加了App升級的復(fù)雜度,削弱了開發(fā)者對應(yīng)用的控制和利潤,并且可能會給設(shè)備帶來麻煩。Native App可以為開發(fā)者帶來短期的效益,但這是有一定風險的,甚至可能會影響到移動市場的可持久發(fā)展。

移動Web App的優(yōu)勢在前文中已經(jīng)提到過了。如果上一節(jié)提到的幾點功能是促成你選擇Native App的唯一原因,那么如果能夠在移動瀏覽器上屏蔽這些障礙,你是否還會堅持選擇Native App呢?Palm的webOS已經(jīng)著手解決了上述的部分問題。他們基于WebKit構(gòu)建了一個全移動操作系統(tǒng),將手機變成了一個Web瀏覽器。所謂的“Native Apps”實際上就是一個Web Apps。

PhoneGap也是一個類似的項目,這個開源項目用于幫助開發(fā)者在iPhone、Android以及BlackBerry設(shè)備上開發(fā)Native Apps,并且能夠模擬設(shè)備上的功能(如定位功能和文件系統(tǒng))供Web Apps調(diào)用。這些代碼可以在各個設(shè)備的應(yīng)用商店中發(fā)布并且出售,但是他們使用的通用代碼和設(shè)計是可以共享的。由于開發(fā)的是一個Web App,開發(fā)者可以為低端的移動瀏覽器開發(fā)一個簡化版的應(yīng)用。只用開發(fā)一次,就可以部署在多個平臺上了,

對于那些有著豐富的移動開發(fā)經(jīng)驗的程序員來說,一提到“要開發(fā)一個功能豐富的應(yīng)用”時,可能首先想到的就是Native App。雖然在很多設(shè)備上,這一想法仍然適用,但是現(xiàn)在移動Web Apps上也提供了足夠豐富的功能接口供開發(fā)者調(diào)用。這使得Web App不僅可以像Native App一樣被設(shè)計得功能豐富界面絢麗,而且還能在各個平臺上遷移,甚至不用修改一行代碼。

現(xiàn)在在移動設(shè)備開發(fā)中,移動Web Apps的創(chuàng)新進入了前所未有的高潮時期。但更重要的是,這是有史以來第一次,移動設(shè)備開發(fā)商決定共同制定一個移動Web開發(fā)的標準,就像是桌面Web上的標準一樣。不僅如此,那些支持移動Web App創(chuàng)新功能的設(shè)備或是支持第三方瀏覽器的移動設(shè)備都受到消費者的歡迎。

所以與其問自己“我為什么要開發(fā)一個Web App?”,還不如直接問自己“我為什么不開發(fā)一個Web App呢?”。

責任編輯:張葉青 來源: 技術(shù)博客
相關(guān)推薦

2011-12-11 11:51:28

2011-12-28 15:24:21

2012-04-25 09:24:40

Android

2021-04-13 13:18:11

數(shù)字貨幣加密貨幣區(qū)塊鏈

2023-05-18 08:38:13

Java鎖機制

2013-01-24 10:52:16

CIO企業(yè)移動開發(fā)

2012-10-10 08:44:18

NativeWebHybrid

2014-02-14 14:36:00

2024-07-05 10:19:59

2012-02-20 10:26:11

Web Apps

2021-08-13 07:56:11

App移動應(yīng)用

2021-11-08 15:17:15

變量Defer 失效

2023-11-23 23:52:06

options請求瀏覽器

2020-07-14 14:40:05

激光噴墨打印

2016-09-29 09:22:01

移動WebHtml5

2021-11-03 07:27:32

移動管理設(shè)備

2014-12-09 09:13:46

BaaS云備份備份即服務(wù)

2011-07-07 13:19:38

Web

2013-09-04 14:49:10

移動Web前端開發(fā)設(shè)計理念

2017-11-14 06:10:15

機器學(xué)習(xí)編程語言數(shù)據(jù)科學(xué)
點贊
收藏

51CTO技術(shù)棧公眾號