Native App、Web App 仍是Hybrid App?(轉)

1、什麼是Native App?html

Native App即原生應用,即咱們通常所稱的客戶端,是針對不一樣手機系統單獨開發的本地應用,如需使用須要先下載到手機並安裝,下載Native App的最多見方法是訪問應用程序商店,如蘋果的App Store、安卓市場、Google Play等。在技術實現上通常採用針對操做系統的特定語言進行編寫,如:使用Objective-c開發IOS應用,使用Java+Android開發android應用。android

Native App的優勢:web

  • 能夠在應用商店輕易地找到而且能在手機主屏幕上生成相應的圖標
  • 能夠利用系統API及平臺特性,訪問手機的提供的功能(GPS,相機等)
  • 可訪問本地資源,支持離線工做,節省用戶的流量成本
  • 可針對不一樣平臺提供不一樣的體驗,針對平臺特性去作用戶體驗優化
  • 與系統高度切合,可得到更快的運行速度和性能,並支持豐富的圖形和動畫。

Native App的缺點:瀏覽器

  • 開發成本高,須要針對不一樣平臺須要不一樣的技術背景進行開發
  • 維護成本高,用戶必須手動下載更新,歷史版本又不能不維護
  • 未知的上線時間,須要經過應用商店的審覈

Native App最大的優點就是可使用操做系統開發商提供的API。這些API能夠分爲兩大類:低級API和高級API。服務器

  • 低級API:應用程序能直接與觸摸屏或鍵盤進行聯繫、渲染圖形、鏈接至網絡、處理從麥克風收到的音頻、經過揚聲器或麥克風播放聲音,或者接收來自攝像頭的圖像或視頻。應用程序能訪問全球定位系統(GPS)、接收方位信息,固然還能夠讀寫固態硬盤上的文件,或者訪問現有和未來會有的其餘任何硬件元件。
  • 高級API:提供對我的移動體驗來講很重要的較高級服務,這類服務包括瀏覽Web,管理日曆、聯繫人資料和相冊等,固然還包括打電話或收發文本消息的功能。

操做系統提供的另外一組重要的API是GUI工具包。每一種移動操做系統都隨帶各自的一組用戶界面組件,好比按鈕、輸入區、滑塊、菜單、菜單欄、對話框及其餘。可使用這些組件的應用程序繼承了該特定移動操做系統的外觀和感受,一般會帶來很是流暢的用戶體驗。網絡

2、什麼是Web App?app

Web App又叫Web應用,簡單的說就是一個觸屏版的網站。Web應用徹底用HTML、JavaScript和CSS等Web技術開發,經過移動設備的瀏覽器來訪問,缺點是這些基於瀏覽器的應用沒法調用系統API來實現一些高級功能,也不適合高性能要求的場合。工具

Web App的優勢:性能

  • 開發成本低,使用現有的Web開發技術便可
  • 適用範圍廣,覆蓋全部智能手機,跨平臺和終端
  • 方便、快捷地部署,無需用戶安裝
  • 用戶總能訪問到最新版本,迭代更新容易
  • 可被搜索引擎收錄並帶來流量

Web App的缺點:優化

  • 瀏覽體驗短時間內還沒法超越原生應用
  • 不支持離線模式(HTML5將會解決這個問題)
  • 消息推送不夠及時
  • 調用本地文件系統的能力弱
  • 較差的和較慢的性能體驗(大部分須要連接互聯網)
  • 支持圖形和動畫效果較差
  • 不適用於應用商店及沒有靠下載應用盈利機會
  • 限制用戶使用功能(好比,相機、GPS等)

移動Web App是一種頗有但願的趨勢。爲了牢牢抓住這個趨勢,幫助開發者構建客戶端用戶界面,已開發出愈來愈多的JavaScript工具包,好比Sencha Touch和jQuery Mobile,它們建立的用戶界面在外觀和感受上與Native App大同小異。二者都徹底在移動設備的瀏覽器裏面執行,充分利用了現代移動瀏覽器所提供的最新JavaScript、CSS和HTML5特性。

3、什麼是Hybrid App?

Hybrid App又叫混合應用,是一種介於Native App、Web App之間的App,它雖然看上去是一個Native App,但只是一個UI WebView,裏面訪問的是一個Web App。Hybrid App實質是僞造一個瀏覽器的apk/ipa原生程序,並運行了一個Web APP。Hybrid App兼具「Native App良好用戶交互體驗的優點」和「Web App跨平臺開發的優點」。它可使web開發人員能夠幾乎零成本的轉型成移動應用開發者,而且相同的代碼只需針對不一樣平臺進行編譯就能實如今多平臺的分發,而相較於Web App,開發者能夠經過包裝好的接口,調用大部分經常使用的系統API。

Hybrid App的優勢:

  • 支持多平臺訪問
  • 手機功能均可訪問
  • 適用於應用商店
  • 部分支持離線功能

Hybrid App的缺點:

  • 未知的部署時間
  • 用戶體驗不如本地應用
  • 性能速度較慢(需連接網絡)
  • 該技術還沒有發展成熟,依然是一門新技術

Hybrid開發方法結合了Native開發和Web技術。藉助這種方法,開發者就能使用跨平臺Web技術,開發應用程序的大部分代碼,又能夠在須要時直接訪問Native API。App的Native代碼部分使用操做系統的API來建立嵌入式HTML渲染引擎,該引擎在瀏覽器和設備的API之間充當了橋樑。這座橋樑讓Hybrid App得以充分利用現代設備所提供的所有特性。App的Web部分多是駐留在服務器上的網頁,也多是一組HTML、JavaScript、CSS和媒體文件,封裝到App代碼中,存儲在設備本地。放置在服務器上的HTML代碼讓開發者沒必要經歷提交和批准過程,把Web代碼封裝到App裏面能夠提升性能和可訪問性。

若是企業使用Hybrid開發方法,就能集二者之所長。一方面,Native讓開發者能夠充分利用現代移動設備所提供的所有不一樣的特性和功能。另外一方面,使用Web語言編寫的全部代碼均可以在不一樣的移動平臺之間共享,使得開發和平常維護過程變得集中式、更簡短、更經濟高效。

4、Native App、Web App和Hybrid App的比較

Native開發方法在性能和設備訪問方面很出色,但成本和更新方面有缺點。Web方法更新起來簡單得多,成本較低,也更容易,可是目前功能有限,也沒法得到使用Native API調用所能得到的那種出色的用戶體驗。Hybrid開發方法提供了折中方案:在許多狀況下,它集二者之所長,若是開發者面向多種操做系統更是如此。

app-dev

從上面的表格中能夠看出,沒有哪種開發方法老是提供全部的優勢。每一種開發方法有天生的侷限性,沒有哪種方法可以知足現代移動企業的全部要求、應對複雜狀況。選擇一種合適的方法取決於企業的具體要求,可能取決於諸多因素,好比預算、時間表、內部資源、目標市場、所需的應用程序功能、IT基礎設施及其餘許多方面。可是有一點很清楚:現在的大多數公司顯然在兩個方面之間做取捨:一是用戶體驗和應用程序功能,另外一是開發成本和產品上市時間。問題就變成了選擇一種合適的開發方法,能兼顧企業的要求和其在預算和產品上市時間方面的限制。

轉載:標點符 » Native App、Web App 仍是Hybrid App?

相關文章
相關標籤/搜索