Native App及Hybrid App優缺點介紹!

候鳥之戀發表於2022-04-15

Native App

在說 Hybrid App 之前不得不先講到 Native App,這是最為傳統的一種移動端開發技術。

iOS 和安卓中官方的開發語言是 oc/swift、java/kotlin,使用這些開發出來的 App 一般稱之為原生應用。

 

優點:

原生應用一般體驗較好,效能比較高,可以提前把資源下載到本地,開啟速度快。

除此之外,原生應用可以直接呼叫系統攝像頭、通訊錄、相簿等功能,也可以訪問到本地資源,功能強大。

一般需要開發 App,原生應用應該是首選。

 

缺點:

原生應用最大的缺點就是不支援動態化更新,這也是很多大廠不完全使用原生開發的原因。

考慮一下,如果線上出現嚴重問題,那該怎麼辦呢?

首先客戶端開發修復了 bug 之後,就需要重新發版、提交應用商店稽核,這一流程走下來往往需要好幾天的時間。gendan5.com/tagslist/%E5%AE%9E%E7%89%A9%E9%92%AF%E9%87%91/

如果釋出了新版 App,使用者該怎麼去更新呢?答案是沒法更新。他們只能重新去下載整個 App,但實際上可能只更新了一行文案,這樣就得不償失了。

除此之外,最麻煩的地方在於要相容老版本的 App。比如我們有個列表頁原本是分頁載入的,介面返回分頁資料。產品說這樣體驗不好,我們需要換成全量載入,那介面就需要做成全量的。

但介面一旦換成了全量的,老版本的客戶端裡面依然是分頁請求介面的,這樣就會出現問題。因此,介面不得不根據不同版本進行相容。

 

Hybrid App

Hybrid App 是介於 Native 和 Web 之間的一些開發模式,一般稱作混合開發。

簡單來說 Hybrid 就是套殼 App,整個 App 還是原生的,也需要下載安裝到手機,但是 App 裡面開啟的頁面既可以是 Web 的,又可以是原生的。

H5 頁面會跑在 Native 的一個叫做 WebView 的容器裡面,我們可以簡單理解為在 App 裡面開啟了一個 Chrome 瀏覽器,在這個瀏覽器裡面開啟一個 Tab 去載入線上或者本地的 H5 頁面,這樣還可以實現開啟多 WebView 來載入多個頁面。

 

優勢:

Hybrid App 同時擁有 Native 和 Web 的優點,開發模式比較靈活。既可以做到動態化更新,有 bug 直接更新線上 H5 頁面就行了。 也可以使用橋接(JS Bridge)來呼叫系統的攝像頭、相簿等功能,功能就不僅僅侷限於瀏覽器了。

由於 H5 的優勢,Hybrid 也支援跨平臺,只要有 WebView,一套程式碼可以很容易跨iOS、安卓、Web、小程式、快應用多個平臺。

缺點

缺點主要還是 Web App 的那些缺點,載入速度比較慢。

同時,因為受制於 Web 的效能,在長列表等場景依然無法做到和原生一樣的體驗。

當然載入速度是可以最佳化的,比如離線包。可以提前下載打包好的 zip 檔案(包括 JS、CSS、圖片等資原始檔)到 App 裡面,App 自己解壓出來 JS 和 CSS 等檔案。這樣每次訪問的是 App 本地的資源,載入速度可以得到質的提升。

如果檔案有更新,那麼客戶端就去拉取遠端版本,和本地版本進行對比,如果版本有更新,那就去拉取差量部分的檔案,用二進位制 diff 演算法 patch 到原來的檔案中,這樣可以做到熱更新。

但是成本也比較高,不僅需要在服務端進行一次檔案差分,還需要公司內部提供一套熱更新發布平臺。

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70014563/viewspace-2887350/,如需轉載,請註明出處,否則將追究法律責任。

相關文章