WebApp開發WebApp開發是壹種框架App開發模式(HTML5APP框架開發模式),具有跨平臺的優勢。這種模式通常由“HTML5雲網站+APP應用客戶端”兩部分組成。app應用客戶端只需要安裝應用的框架部分,每次打開APP都會將應用數據呈現給手機用戶。
原生APP開發與WebAPP開發模式的區別WebAPP需要開發“html5雲網站”和“APP客戶端”。昆明天都網絡公司總結,這類APP應用有以下特點:(1)每次打開APP,都要通過APP框架從雲網站獲取UI和數據;(2)手機用戶如果不能上網,就無法訪問APP應用中的數據。
(3)框架式APP無法調用手機終端的硬件設備(語音、攝像頭、短信、GPS、藍牙、重力感應等。)(4)框架式APP的訪問速度受到手機終端上網的限制,每次使用都會消耗壹定的手機上網流量;(5)框架式APP應用的安裝包很小,只包含框架文件,而大量UI元素和數據內容只是存儲在雲端;(6)APP用戶每次都能訪問到最新的實時雲數據;(7)APP用戶無需頻繁更新APP,實現與雲端的實時數據交互;適用企業:電子商務、金融、新聞資訊、企業集團需要經常更新的APP應用。
NativeApp需要開發“雲服務器數據中心”和“App客戶端”。昆明天都網絡公司總結,這類APP應用有以下特點:(1)每次獲得最新的APP功能,都需要對APP應用進行升級;(native APP應用的安裝包比較大,包括UI元素、數據內容、邏輯框架;(3)手機用戶可以在不上網的情況下,在APP應用中訪問之前下載的數據。
(native APP可以調用手機終端的硬件設備(語音、攝像頭、短信、GPS、藍牙、重力感應等。)(APP應用更新新功能,涉及到每次提交到各個應用商店審核。
適用企業:遊戲、電子雜誌、管理應用、物聯網等不需要經常更新程序框架的APP應用。
WebApp和NativeApp的開發模式如何選擇?移動網絡無處不在。目前是唯壹支持各種設備接入的平臺。像桌面Web壹樣,移動Web支持各種標準協議。
移動Web也是開發者發布移動應用的唯壹平臺,將各種移動交互與桌面任務有效連接起來。NativeApp的開發可以充分利用設備的特性,這是Web瀏覽器往往做不到的,所以對於壹個產品本身來說,NativeApp是最好的選擇。
下面幾節將討論NativeApp的壹些主要功能。
什麽時候應該選擇NativeApp1?
沒有規定說開發者不能對壹個移動WebApp收取使用費,但是由於壹些原因,人們往往認為他們不能或者不應該對壹個WebApp收費。
由於歷史原因,移動設備上的付費服務遇到兩大障礙:2 .
支付方式在移動設備上輸入信用卡號相當麻煩,很多老式設備上也沒有安全保障。
典型的方式是,如果妳的應用需要收費,可以和運營商達成協議,讓運營商代妳收取服務費用。
這也意味著妳需要和多家運營商達成合作。
這通常是首選,因為很多手機用戶可能根本沒有信用卡,比如青少年。
另壹種方法是將用戶的信用卡信息保存在安全的網站上。
用戶可以通過登錄該網站購買應用服務。
這個過程並不是特別理想,因為這意味著用戶無法通過自己的移動設備直接購買服務。
三
強制分成移動運營商會有提成。
無論是通過運營商還是移動設備發布app,都為App提供了收費機制。
這些運營商和移動設備會提取壹部分收入,然後把剩下的交給應用開發者,這意味著開發者必須遵守他們的市場規則。
通常很難適應運營商的市場規律,這需要大量的人力資源。
相比之下,移動設備的市場規則要簡單得多,但也有很多困難。
阻礙運營商和移動設備開發商利益的應用和服務將被屏蔽。
以前,不是運營商和移動設備開發商運營的網站,如果收入過於顯眼,也難逃被關閉的命運,但最近,這樣的事情很少發生了。
如果妳想為妳的NativeApp收費,那麽妳必須接受壹個現實,妳必須遵守別人的市場規則,放棄壹部分收益。
四
開發遊戲如果妳想開發壹款手機遊戲(手機遊戲是移動市場最大的壹塊),那麽妳需要開發壹款NativeApp。
遊戲占用大量資源,需要使用很多設備API或者平臺API。
雖然有幾款遊戲是完全用Web技術開發的,有壹定的市場份額,但是和NativeApp的市場份額相比,還是微不足道的。
遊戲用戶對應用的視覺和操作效果要求很高。
移動Web雖然提供了壹些模擬體驗,但是還遠遠不能滿足用戶的需求。
在開發手機遊戲時,妳需要仔細考慮妳的應用需要支持哪些平臺。
好在有很多工具可以幫妳把遊戲推送到多個平臺,但是要完成這些任務還是需要大量的人力物力。
五
使用定位功能的下壹個功能是定位功能,可以通過GPS或者信號檢測來確定用戶當前的位置信息。
以前只能通過NativeApp的API查看用戶的位置信息,而現在W3本地化API已經嵌入到大多數主流的移動瀏覽器中。
安裝了WebKit的設備,如iPhone或Android,或者安裝了Opera或Mozilla瀏覽器的設備,都可以獲取用戶的位置信息。
我相信定位功能會給網絡技術帶來許多新的應用。
如果能夠合理使用網頁瀏覽器,網頁開發者就可以利用用戶的位置信息和其他內容開發出更有趣的應用。
雖然這在技術上並不難,但是受到隱私保護條例的限制。
我們把網絡瀏覽器看作是用戶進入萬維網的入口。
增加定位功能意味著將壹些敏感信息引入網站,可能會導致嚴重的後果。
但是,位置感知應用中顯示的位置信息必須經過用戶授權,用戶當然有權禁止應用發布自己的位置信息。
六
使用照相機可以為妳的應用提供豐富的可能性。
以前手機彩信(MultimediaMessagingService)是用來處理手機照片的。
換句話說,在妳拍下壹張照片後,妳需要使用MMS發送到壹個服務器,服務器將對照片進行相應的處理,並通知妳完成的結果。
這個過程非常耗時復雜,而且沒有可靠性保證。
通過訪問相機,NativeApp開發人員可以簡化拍照的過程。
用戶可以直接在客戶端對照片做壹些簡單的處理,只有在需要的時候才上傳照片到服務器,並且是通過可靠的HTTP傳輸的。
W3C正在開發訪問相機的API,但它還沒有正式集成到瀏覽器中。
在很多類型的手機app中,相機是非常有用的,比如快照應用,短片拍攝應用等等。相機可以用來捕捉許多重要的瞬間。
在不久的將來,我們可以看到這項技術已經在日本普及——只要用相機拍下壹個logo,應用程序就可以自動完成logo上的語言轉換。
七
使用傳感器現在,越來越多的移動設備添加了傳感器功能,它可以感應設備的物理速度和重力,並將感應到的數據結果發送到設備。
這種設備常用於感應設置是否翻轉,應用程序會根據接收到的信息自動調整畫面的方向。
傳感器可以用來幫助用戶提高與設備交互時的真實感;大多數移動設備都是手持的,應用程序可以根據設備的方向調整內容屏幕,例如翻轉屏幕或檢測物理移動,並可以據此猜測用戶的環境。
舉個簡單的例子:例如,如果用戶正在行走,傳感器可以檢測到壹個緩慢的移動或速度,這可以為用戶提供壹個大字體的用戶界面,從而使用戶更容易看到屏幕上的內容。
但是,開發者不能過分依賴傳感器,因為傳感器無法分辨哪些交互是有意的,哪些是無意義的。
每個移動交互都需要通過“傳輸測試”
在設計妳的交互時,妳必須考慮用戶在擁擠的汽車或火車中的場景。
考慮壹下,如果用戶在擁擠的地鐵裏或開車時,妳的應用程序是否能正確處理用戶晃動移動設備的情況。
通常,大多數開發者不會考慮這些因素。
壹定要為每個任務設計壹個備份方案,以應對特殊場景下的移動交互。
八
訪問文件系統如果妳的應用需要本地保存數據,那麽妳需要開發壹個NativeApp。
例如,您應該保存用戶的地址簿、電話或電子郵件信息,或者保存從其他設備獲得的數據。
訪問文件系統通常涉及安全性和用戶隱私保護。
惡意應用程序可能會修改或刪除您移動設備上的數據。
帶有病毒的應用程序可以通過使用移動設備上的網絡將病毒傳播到許多其他移動電話。在采用移動應用認證機制之前,這種事情經常發生。
另壹方面,移動設備越來越私密化,大量用戶的個人信息,以及用戶的好友信息和商業信息都存儲在移動設備上。
為這些私人信息開發應用程序是壹個好主意。
然而,也有壹些風險。使用存儲在移動設備上的數據可以為用戶提供更有針對性的服務。
開發人員必須記住,用戶的私人數據只有在獲得他們的授權後才能被訪問。
我們看到很多應用在沒有用戶授權的情況下使用了大量用戶的隱私數據,被誤認為是垃圾郵件或者釣魚應用,盡管這些應用本來就是在提供壹些非常有用的服務。
人們對妳的應用的誤解會影響妳的服務的推廣。如果運營商收到太多關於妳的應用的投訴,妳的服務可能會被終止,甚至其他應用也會受到牽連。
在訪問文件系統時,未經用戶授權,不要訪問任何用戶的私有數據,這壹點非常重要。
這壹點往往被大多數應用程序所忽略。
W3C正在為移動開發者開發相關的標準API,但工作尚未完成。
九
離線用戶需要開發NativeApp的最後壹個原因是用戶可能離線或者無法訪問移動網絡。
這種情況在城市可能很少發生,即使在農村,網絡覆蓋也逐漸普及。
但是,短期的網絡連接中斷仍然時有發生,您的應用程序應該考慮如何處理這種情況。
想想用戶通常在何時何地使用妳的應用。
如果是手機遊戲,那麽用戶很可能會在飛機上使用這個App。
追蹤地圖應用程序通常用於網絡覆蓋較差的偏遠地區。
移動旅行向導經常訪問國外網絡,並且經常需要支付漫遊和國際網絡費用。
這時候應用最好能為用戶提供離線服務,這樣才能保證用戶在不接入網絡的情況下仍然可以享受同樣的服務。
現在支持HTML5的瀏覽器也可以實現離線訪問,但對用戶來說可能不太明顯。
隨著越來越多的瀏覽器開始支持離線訪問,應用程序需要明確告訴用戶,當網絡連接中斷時,他們仍然可以訪問移動WebApps。
NativeApps通常假設網絡連接是可靠的。
App通常只考慮網絡狀況良好的情況,想當然地認為網絡是封閉的,網速足夠快。
移動設備從良好的網絡環境突然進入不良的網絡環境並不少見。
NativeApps應該在最差的網絡條件下測試。
例如,用戶在開始任務時可能仍然有完整的信號覆蓋,但在任務結束時可能沒有網絡信號。
安裝NativeApps時,用戶根本不考慮在線訪問或離線訪問——他們期望NativeApps在任何情況下都能正常工作。
而這也是開發者的責任。
什麽時候應該選擇WebApp?只要妳的應用不滿足前面提到的NativeApp的條件之壹,就不需要開發NativeApp,而應該選擇開發WebApp。
之前文章提到過,我是NativeApp的擁護者。我認為NativeApp有許多優秀的特性和巨大的市場潛力,但WebApps是開發移動內容、服務和應用程序的唯壹持久平臺。
NativeApp顯然不能為用戶提供更好的服務;反而會增加項目的成本,減少應用分發的渠道,增加app升級的復雜度,削弱開發者對應用的控制力和利潤,還可能給設備帶來麻煩。
NativeApp可以為開發者帶來短期收益,但風險較大,甚至可能影響移動市場的可持續發展。
移動WebApp的優勢在之前的文章中已經有所提及。
如果前面提到的功能是妳選擇NativeApp的唯壹理由,那麽如果妳能在手機瀏覽器上堵住這些障礙,妳還會堅持選擇NativeApp嗎?Palm的webOS已經開始解決上述壹些問題。
他們基於WebKit構建了全移動操作系統,將手機變成了網絡瀏覽器。
所謂的“NativeApps”其實就是壹個WebApps。
PhoneGap是壹個類似的項目。這個開源項目用於幫助開發者在iPhone、Android和BlackBerry設備上開發NativeApps,可以模擬設備上的功能(比如定位功能、文件系統)供WebApps調用。
這些代碼可以在各種設備的app stores中發布和銷售,但他們使用的常用代碼和設計可以享受。
隨著WebApp的開發,開發人員可以為低端移動瀏覽器開發應用程序的簡化版本。
只需要開發壹次,就可以部署在多個平臺上。對於擁有豐富移動開發經驗的程序員來說,說到“開發壹個功能豐富的應用”,首先想到的可能是NativeApp。
雖然這種想法仍然適用於許多設備,但有足夠的功能接口可供開發者在移動WebApps上調用。
這就使得WebApp不僅可以像NativeApp壹樣設計出豐富的功能和漂亮的界面,而且可以在各種平臺上移植,甚至不需要修改壹行代碼。
如今,在移動設備的發展中,移動WebApps的創新進入了前所未有的高潮期。
但更重要的是,有史以來第壹次,移動設備開發者決定為移動Web開發制定壹個標準,就像桌面Web上的標準壹樣。
不僅如此,那些支持移動WebApp創新功能的設備,或者支持第三方瀏覽器的移動設備,都受到消費者的歡迎。