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

開發(fā)移動應(yīng)用程序的三種選擇:原生、HTML5或混合

譯文
移動開發(fā)
屏幕那么小,應(yīng)用程序那么大,我們所知道的生活再度顛倒了過來。在如今越來越社交化、開放化的環(huán)境下,移動應(yīng)用程序扮演著至關(guān)重要的角色,而且將重心由互聯(lián)網(wǎng)端應(yīng)用程序轉(zhuǎn)向移動設(shè)備端應(yīng)用程序。移動應(yīng)用程序不再是可有可無,而是必不可少。你需要一款移動應(yīng)用程序,但又該從哪里入手呢?

【51CTO譯文】屏幕那么小,應(yīng)用程序那么大,我們所知道的生活再度顛倒了過來。在如今越來越社交化、開放化的環(huán)境下,移動應(yīng)用程序扮演著至關(guān)重要的角色,而且將重心由互聯(lián)網(wǎng)端應(yīng)用程序轉(zhuǎn)向移動設(shè)備端應(yīng)用程序。移動應(yīng)用程序不再是可有可無,而是必不可少。你需要一款移動應(yīng)用程序,但又該從哪里入手呢?

許多因素在你的移動戰(zhàn)略中發(fā)揮作用,比如工作團隊的開發(fā)技能、所需的設(shè)備功能以及安全、離線功能和互操作性的重要性等等,這些因素必須統(tǒng)統(tǒng)考慮進來。***,這不只是你的應(yīng)用程序會有什么樣的功能,而是如何才能開發(fā)出成功的應(yīng)用程序。

與姑娘一樣,你可能需要在幾張床上試躺一下,看看床是太軟還是太硬,之后才能找到那張合適的床。而有時候根本就沒有稱心如意的選擇。每種開發(fā)場景都有其優(yōu)缺點,那些場景可能適合你的開發(fā)工具,也可能不適合。本文的初衷就是幫助你順利找到一種適合自己的方法來開發(fā)移動應(yīng)用程序。

雖然本文總體上探討的是移動應(yīng)用程序開發(fā),但具體來說針對期望開發(fā)與Salesforce.com、Force.com或 Database.com交互的移動應(yīng)用程序的開發(fā)人員。目前,Salesforce移動SDK支持開發(fā)人員構(gòu)建這三種類型的應(yīng)用程序:

原生應(yīng)用程序:原生應(yīng)用程序是某一個移動平臺(比如iOS或安卓)所特有的,使用相應(yīng)平臺支持的開發(fā)工具和語言(比如iOS平臺支持Xcode和Objective-C,安卓平臺支持Eclipse和Java)。原生應(yīng)用程序看起來(外觀)和運行起來(性能)是***的。

HTML5應(yīng)用程序:HTML5應(yīng)用程序使用標準的Web技術(shù),通常是HTML5、JavaScript和CSS。這種只編寫一次、可到處運行的移動開發(fā)方法構(gòu)建的跨平臺移動應(yīng)用程序可以在多個設(shè)備上運行。雖然開發(fā)人員單單使用HTML5和JavaScript就能構(gòu)建功能復(fù)雜的應(yīng)用程序,但截至本文截稿時仍然存在一些重大的局限性,具體包括會話管理、安全離線存儲以及訪問原生設(shè)備功能(攝像頭、日歷和地理位置等)。

混合應(yīng)用程序:混合應(yīng)用程序讓開發(fā)人員可以把HTML5應(yīng)用程序嵌入到一個細薄的原生容器里面,集原生應(yīng)用程序和HTML5應(yīng)用程序的優(yōu)點(及缺點)于一體。

原生移動應(yīng)用程序

簡而言之,原生應(yīng)用程序提供了***易用性、***特性以及***總體移動體驗。以下這些是只能通過原生應(yīng)用程序才能實現(xiàn)的功能:

•多點觸控:雙擊、縮放及其他組合的用戶界面(UI)手勢。

•快速圖形API:原生平臺為你提供了顯示最快速的圖形。如果你顯示只有寥寥幾個元素的靜態(tài)屏幕,這個功能可能不太重要,但如果你使用大量數(shù)據(jù),需要快速刷新,這項功能卻很重要。

•流暢動畫:與快速圖形API有關(guān)的是實現(xiàn)流暢動畫的功能。這在動畫、高度交互的報表或者轉(zhuǎn)換照片和聲音的計算密集型算法中顯得尤為重要。

•內(nèi)置部件:攝像頭、地址簿、地理位置及設(shè)備的其他原生功能可以無縫地整合到移動應(yīng)用程序中。另一個重要的內(nèi)置部件是加密的存儲裝置,這方面稍后會有詳細介紹。

•易于使用:原生平臺是人們耳熟能詳?shù)钠脚_,所以如果你在這個熟悉的平臺上添加人們期望的所有原生功能,也就擁有了一款使用起來完全更容易的應(yīng)用程序。

•說明文檔:市面上僅僅介紹iOS和安卓開發(fā)的圖書就有2500多本,Stackoverflow等網(wǎng)站上還有不計其數(shù)的文章、博文和詳細的技術(shù)帖子。

原生應(yīng)用程序通常使用集成開發(fā)環(huán)境(IDE)開發(fā)而成。IDE提供了用于構(gòu)建、調(diào)試、項目管理和版本控制的工具,還提供了專業(yè)開發(fā)人員需要的其他工具。雖然iOS和安卓應(yīng)用程序是使用不同的IDE和語言開發(fā)而成的,不過開發(fā)環(huán)境方面卻有頗多相似之處,沒有必要深入鉆研兩者的差異。簡而言之,設(shè)備需要什么樣的工具,你就使用什么工具。

你之所以需要這些工具,是因為原生應(yīng)用程序開發(fā)起來比較困難。同樣,需要的開發(fā)經(jīng)驗也要比其他開發(fā)場景來得豐富;你根本不能剪貼拷貝Objective-C,就指望可行。確實,開發(fā)團隊的技術(shù)專長是個重要的考量因素。如果你是名專業(yè)開發(fā)人員,恐怕早已通曉成熟可靠的API和框架、通過已構(gòu)建的部件輕松實現(xiàn)的特效,或者將代碼都放在一個地方的好處。說實話,這年頭技能嫻熟的原生iOS或安卓開發(fā)人員如同搖滾明星,自然可以提出搖滾明星般的要求。

雖然我們從開發(fā)的角度來探討原生應(yīng)用程序,不過別忘了還有一個更重要的角度:最終用戶。如果你在物色某款應(yīng)用程序,可以在應(yīng)用程序商店中找到。如果你開始運行應(yīng)用程序,它會立即啟動。如果你使用應(yīng)用程序,可以獲得快速的性能以及一致的平臺外觀感覺。如果你的應(yīng)用程序需要更新,它會告訴你需要更新。原生應(yīng)用程序為你提供了期望從制造你手頭設(shè)備的公司獲得的一切,好像應(yīng)用程序的用途就是這樣。

HTML5移動應(yīng)用程序

如果你剛接觸移動應(yīng)用程序開發(fā),那你動作確實有些晚了。不過,就基于Web的移動應(yīng)用程序而言,我們?nèi)蕴幱谠缙陔A段。當(dāng)然,諸多瀏覽器在過去的好多年變得越來越好,可是底層技術(shù)卻基本上沒有發(fā)生太大的變化。

但這可能是件好事。HTML5移動應(yīng)用程序大致上來說就是個網(wǎng)頁或一系列網(wǎng)頁,旨在可以在尺寸極小的屏幕上打開。因此,HTML5應(yīng)用程序與設(shè)備無關(guān),可以用任何一種現(xiàn)代的移動瀏覽器來打開。又由于你的內(nèi)容放在網(wǎng)上,它易于搜索,這可能是個巨大的好處,具體就要看應(yīng)用程序的性質(zhì)了(比如購物類應(yīng)用程序)。

如果你開發(fā)過Web應(yīng)用程序,自然也會喜歡上HTML5,用起來會如魚得水。如果你剛接觸Web開發(fā),技術(shù)門檻比較低;相比原生開發(fā)或混合開發(fā),它更容易上手。遺憾的是,每種移動設(shè)備對于可用屏幕尺寸和分辨率似乎都有各自的認識和理解,所以另外多了一種負擔(dān):在不同的設(shè)備上進行測試。瀏覽器不兼容問題在安卓設(shè)備上來得尤其常見,所以瀏覽器方面要小心。

“只要編寫一次、可到處運行”的HTML5方法的一個重要部分是,就原生應(yīng)用程序而言,分發(fā)和支持要容易得多。需要開發(fā)修正版或添加功能特性?完成后可以為所有用戶統(tǒng)一部署。就原生應(yīng)用程序而言,開發(fā)和測試周期比較長,之后消費者通常必須登錄到商店、下載新版本,才能獲得***修正版。

在過去的一年,HTML5已全然成為一種非常流行的構(gòu)建移動應(yīng)用程序的方式?,F(xiàn)在市面上有多種UI框架,可以解決開發(fā)人員都不想再次面對的一些最復(fù)雜的問題。iScroll在模擬快速滾動方面做得非常出色。JQuery Mobile和Sencha Touch提供了優(yōu)雅精致的移動組件,插件即便沒有數(shù)千個,至少也有數(shù)百個,它們提供了從輪播到超復(fù)雜控件的各種特性。

所以,既然HTML5應(yīng)用程序開發(fā)更容易、支持更容易,覆蓋最廣泛的設(shè)備種類,那么這些應(yīng)用程序又輸在哪里呢?我們已經(jīng)探討了原生開發(fā)的主要好處,所以我們只重申一點:你無法訪問設(shè)備上的原生部件。用戶也無法獲得原生應(yīng)用程序那樣熟悉的外觀感覺,也無法使用熟悉的組合手勢。不過各方面在取得長足進展,瀏覽器一直在支持越來越多的功能。

***一批瀏覽器支持硬件加速的CSS3動畫特性,為滑動面板提供了流暢動畫效果,還提供了屏幕之間的轉(zhuǎn)場效果,不過即便如此,還是無法與原生應(yīng)用程序的功能和靈活性相提并論。如今,根本不可能捕獲多點觸控輸入事件(確定何時多個手指在屏幕上),也不可能使用懸浮、然后落到正確位置的側(cè)滑按鈕和照片來獲得路徑風(fēng)格的那種優(yōu)雅精致。

不過,重大局限性在于離線存儲和安全,對企業(yè)移動應(yīng)用程序來說更是如此。雖然你可以通過將文件緩存在設(shè)備上,貌似實現(xiàn)離線功能,但這根本不是一種很好的解決辦法。雖然底層數(shù)據(jù)庫可能經(jīng)過加密,但是其不如用開發(fā)者證書保護每個應(yīng)用程序的原生鑰匙鏈加密方法來得充分分隔。此外,如果從桌面端啟動帶驗證機制的Web應(yīng)用程序,每當(dāng)應(yīng)用程序被發(fā)送到后臺,它都需要用戶輸入登錄憑據(jù)。這對用戶來說是個糟糕的體驗。通常來說,在原生平臺上實現(xiàn)哪怕微不足道的安全措施對Web移動開發(fā)人員來說也是很復(fù)雜的任務(wù)。因此,要是安全至關(guān)重要,這個因素可能會決定你選擇哪一種移動技術(shù)。

混合移動應(yīng)用程序

混合開發(fā)集原生和HTML5兩者的優(yōu)點(及缺點)。我們定義的混合應(yīng)用程序是一種Web應(yīng)用程序,主要使用HTML5和JavaScript構(gòu)建而成,然后封裝在細薄的原生容器里面,可通過容器來訪問原生平臺功能。PhoneGap是***的構(gòu)建混合移動應(yīng)用程序的容器。

總的來說,混合應(yīng)用程序集兩者之所長。如果現(xiàn)有的Web開發(fā)人員在優(yōu)化JavaScript,處理CSS從而設(shè)計漂亮布局以及編寫可在任何平臺上運行的兼容HTML代碼方面已成為行家里手,現(xiàn)在就能構(gòu)建功能復(fù)雜的移動應(yīng)用程序,并不犧牲很酷的原生功能。在某些情況下,原生應(yīng)用程序開發(fā)人員可以為圖像處理之類的任務(wù)編寫插件,但在這種情況下,很多問題隱藏在細節(jié)中。

在iOS上,嵌入式Web瀏覽器或UIWebView與Safari瀏覽器不一樣。雖然區(qū)別不大,但它們會在調(diào)試時帶來棘手問題。這就是為什么有必要使用克服了所有局限性的流行框架。

你知道,原生應(yīng)用程序安裝在設(shè)備上,而HTML5應(yīng)用程序駐留在Web服務(wù)器上,所以你可能會想:混合應(yīng)用程序?qū)⑵湮募鎯υ谠O(shè)備上還是存儲在服務(wù)器上?沒錯,實際上有兩種方式來部署混合應(yīng)用程序。

•本地:你可以將HTML和JavaScript代碼包裝成移動應(yīng)用程序二進制代碼,采用類似原生應(yīng)用程序結(jié)構(gòu)的方式。在這種場景下,你使用REST API,在設(shè)備和云端之間來回轉(zhuǎn)移數(shù)據(jù)。

•服務(wù)器:另外,你可以從服務(wù)器來部署標準的Web應(yīng)用程序(可采用可選的緩存機制,以提高性能),只要將容器用作UIWebview上面那層細薄的外殼。

Netflix有一款很酷的應(yīng)用程序,它使用了一樣的代碼庫以便在所有設(shè)備上運行UI:平板電腦、手機、智能電視、DVD播放機、冰箱和汽車。雖然大多數(shù)人不知道該應(yīng)用程序是如何部署的,也并不關(guān)心,但下面這一點很吸引你:他們可以迅速更改界面,或者進行A/B測試,確定***的用戶交互。視頻解碼和流式傳送這些基本工作交給了原生層,以獲得***性能,所以這是一款運行快速、看似原生的應(yīng)用程序,確確實實集兩者之眾長。

結(jié)束語

移動開發(fā)領(lǐng)域在不斷變化。每過半年,就會出現(xiàn)一種新的移動操作系統(tǒng),其獨特的功能特性只有通過原生API才能訪問。之后不久,容器將那些功能特性引入到混合應(yīng)用程序,而互聯(lián)網(wǎng)每過幾年就會迎來巨大飛越?;谀壳暗募夹g(shù),本文中介紹的其中一種開發(fā)場景勢必會適合你的要求。不妨用下面這張表對此作一個總結(jié):

 

原生

HTML5

混合

應(yīng)用程序特性

 

圖形

原生API

HTML、Canvas和SVG

HTML、Canvas和SVG

性能

快速

慢速

慢速

原生外觀和感覺

原生

模擬

模擬

分發(fā)

應(yīng)用程序商店

Web

應(yīng)用程序商店

設(shè)備訪問

 

攝像頭

通知

聯(lián)系人和日歷

離線存儲

安全的文件存儲

共享式SQL

安全的文件系統(tǒng)和共享式SQL

地理位置

手勢

 

滑動

縮放

連接

在線和離線

主要是在線

在線和離線

開發(fā)技能

ObjectiveC和Java

HTML5、CSS和JavaScript

HTML5、CSS和JavaScript

英文原文:https://developer.salesforce.com/page/Native,_HTML5,_or_Hybrid:_Understanding_Your_Mobile_Application_Development_Options

布加迪編譯

責(zé)任編輯:閆佳明 來源: 51CTO譯文
相關(guān)推薦

2015-01-12 12:11:10

移動應(yīng)用原生混合

2015-10-13 11:49:06

移動·開發(fā)技術(shù)周刊

2011-05-11 12:59:18

HTML5

2012-02-23 10:28:43

AppCanHTML5移動應(yīng)用

2014-12-22 15:02:48

HTML5移動應(yīng)用開發(fā)

2011-12-12 10:08:39

jQuery MobiHTML5

2011-11-02 11:06:50

2016-05-27 15:44:12

H5LeanCloudWex5

2013-10-09 09:10:28

移動應(yīng)用開發(fā)NativeHybrid

2012-05-28 14:13:26

HTML5Web AppNative App

2015-02-05 10:11:44

HTML5Application

2012-02-20 13:45:26

HTML5移動開發(fā)程序

2015-10-27 18:06:23

原生HTML5混合

2015-10-09 09:00:57

原生HTML 5混合

2014-03-18 09:20:17

HTML5移動開發(fā)

2015-02-05 09:56:53

2011-07-12 09:25:45

HTML 5

2010-10-15 09:39:22

MeeGoQt

2011-02-22 10:23:43

2011-12-06 10:10:59

云計算移動應(yīng)用
點贊
收藏

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