1. 程式人生 > >乾貨丨混合開發和原生開發的區別

乾貨丨混合開發和原生開發的區別

非技術從業者在對技術產品有所需求時,普遍對開發環節存在大量問題,如何選擇開發方式,是產品孵化環節的第一問題。
 

01

原生開發與混合開發的概念


原生開發即每個頁面、每個功能、每個效果、每個邏輯、每個步驟全部用程式碼寫出來,一層層,一段段全用程式碼寫出來,什麼叫全寫出來?就是一個個的程式碼敲出來。

原生APP開發模式針對IOS、Android等不同的手機作業系統要採用不同的語言和框架進行開發,是專門針對不同移動裝置而開發有針對性的版本,現在我們接觸的基本都是IOS、Android兩個版本,都是被直接安裝到裝置裡,APP應用所有的UI元素、資料內容、邏輯框架均安裝在手機終端上,需要在Android、IOS等移動平臺上利用官方提供的開發語言、開發類庫、開發工具進行App開發。比如android是利用java、eclipse、Android studio,IOS是利用Objective-C 和Xcode進行開發。原生應用由於利用的是官方提供的語言和工具並且能夠直接操控硬體裝置(比如多點觸控、NFC、讀取簡訊等),在應用效能上和互動體驗上應該是最好的,但是原生應用的可移植性比較差。原生App使用者一般也是通過應用商城者來獲取,如騰訊應用商城、The App Store等。


混合開發是結合原生和H5開發的技術,取長補短的一種開發模式,原生程式碼部分利用WebView外掛或者其它的框架為H5提供了一個容器,程式主要的業務實現、介面展示是利用H5相關的Web技術進行實現的。比如現在的京東、淘寶、今日頭條等都是利用的混合開發模式。

混合開發相當於一種框架開發,說白了就是網頁,該模式通常由“HTML5雲網站+APP應用客戶端”兩部份構成,APP應用客戶端只需安裝應用的框架部份,而應用的資料則是每次開啟APP的時候,去雲端取資料呈現給手機使用者,此種APP資料都儲存在雲端,使用者每次訪問都需要從雲端調取全部內容,這樣就容易導致反應慢,每開啟一個網頁或點一個按鈕都需要等半天。
 

02

原生開發和混合開發的優劣勢

(1)原生開發的優勢

  • APP響應速度快:大多資料都在本地所以省去緩衝載入調取資料的時間。

  • APP相容性高:每個地方都是精心設計的,程式碼也是最新的,像最堅固的房子,最合理的抗震防風性,所以相容性會更高不會閃退。

  • APP流暢性好:每個程式碼都是最新的,也是最合理的,所以不會卡頓。

  • APP安全性高:程式碼是最新的,每個地方是最新的設計,能防止病毒和漏洞。

  • APP功能可以自定:像蓋房子一樣,從0開始,前期設計好房子的構圖、尺寸、大小,那個地方想怎麼蓋,那個地方想怎麼裝修,都可以完美實現。

(2)原生開發的劣勢

  • 開發時間長:自己蓋房子,每個步驟都要考慮、每個地方都要設計,所以這樣會耽誤不少時間,短二三十天,長三五個月。

  • 費用相對較高:因為每個地方、每個步驟都是原創的,經過設計師設計的。 就像蓋房子的圖紙等,每個地方都是根據自己所想的打造的,所以相對價格會貴一些。

(3)混合開發的優勢

  • 時間短:基本都是模版拿來直接套上或打包成APP,會節省很大一部分時間。

  • 價格便宜:程式碼不需要重新寫,介面不用重新設計,都是固定的,可替換的地方很少,自己隨便都能換上,所以價格相對便宜。

  • 可遷移:因為是混合開發,更容易遷移

(4)混合開發的劣勢

  • 功能/介面無法自定:所有內容都是固定死的,所以想換一個介面,想增加一個功能,都是不可以的。

  • 載入緩慢/網路要求高:混合APP資料需要全部從伺服器調取,每個頁面都需要重新下載,所以開啟慢,網路佔用高,緩衝時間長,容易讓使用者反感。

  • 安全性比較低:程式碼都是以前的老程式碼,不能很好相容最新手機系統,且安全性較低,網路發展這麼快,病毒這麼多,如果不實時更新,定期檢查,容易產生漏洞,造成直接經濟損失。

03


針對不同的需求,該如何選擇開發模式呢?

(1)原生開發

適用於遊戲、電子雜誌、管理應用、物聯網等無需經常更新程式框架的APP應用企業

原生開發雖然有各種缺點,但是在目前所有的開發技術中原生是最成熟,有效,也是開發人數最多,開源庫最廣泛的。對APP要求各方面效能、響應要求高,人員充足,完整開發、測試流程,適合原生APP開發。


(2)需求分析

  • 開發遊戲

  • 如果你是想開發一個移動遊戲(移動遊戲是移動市場上最大的一塊),那麼你需要開發一個Native App。遊戲對資源的佔用很大,並且需要使用許多裝置API或平臺API。雖然,現在有幾款完全使用Web技術開發的遊戲佔有了一定的市場份額,但是和Native App市場的佔有情況相比,還是微不足道的。遊戲使用者對應用的視覺和操作效果要求很高。移動Web雖然提供了一些模擬體驗,但還遠遠不能滿足使用者的需求。

  • 使用攝像頭

  • 攝像頭可以為你的應用提供豐富的可能性。以往移動MMS(Multimedia Messaging Service)被用於處理移動照片。換言之,你拍了一張照片後,需要使用MMS將它傳送給一個伺服器,伺服器對照片做出相應的處理,並將處理完成的結果通知給你。這個過程是非常耗時的,而且相當複雜,也沒有可靠性保障。 通過訪問攝像頭,Native App開發者能夠簡化拍照的過程,使用者可以直接在客戶端對照片做一些簡單的處理。

  • 訪問檔案系統

  • 如果你的應用需要將資料儲存在本地,那麼你需要開發一個Native App。比如你要儲存使用者的地址簿、電話或E-mail資訊,或是儲存從其他裝置上獲取的資料。 訪問檔案系統常常會涉及到安全和使用者隱私保護的問題。惡意應用程式可能會修改或是刪除你的移動裝置上的資料。一個攜帶病毒的應用程式可以利用移動裝置上的關係網將病毒擴散到許多其他的手機上,在採用移動應用認證機制以前,這種事情是常常發生的。 另一方面,移動裝置正變得越來越私人化,移動裝置上儲存了大量使用者的個人資訊,以及使用者的朋友資訊和商業資訊。針對這些私人資訊開發應用是一個不錯的想法。但是這也存在一定的風險,使用儲存在移動裝置上的資料可以為使用者提供更加有針對性的服務。 開發者必須謹記,只有在獲得使用者的授權後才能訪問使用者的私人資料。我們看到許多應用在沒有得到使用者授權的情況下使用了大量的使用者私人資料,而被誤認為是垃圾資訊或是釣魚應用,即使這些應用原本是在提供一些非常有用的服務。人們對你的應用的誤解將會影響到你的服務的推廣,如果運營商收到過多關於你的應用的投訴,那麼你的服務可能將被終止,甚至會牽連其他的應用。

  • 離線使用者

  • 最後一個需要開發Native App的理由就是,使用者有可能是離線的或者無法接入行動網路。這在城市可能很少發生,即使是在農村,網路的覆蓋也已經逐步普及了。但是短暫的網路連線中斷還是時常發生的,你的應用程式應該考慮如何處理這種情景。 Native Apps常常假設網路連線是可靠的。App通常只考慮了網路狀況良好的情景,想當然地認為網路是封閉的,並且網速足夠快。移動裝置從網路良好的環境突然進入一個網路糟糕的環境並不少見。Native Apps應該在網路狀況最差的情況下測試。比如使用者啟動任務時可能還是全訊號覆蓋,而在任務結束時可能已經完全沒有網路訊號了。 使用者在安裝Native Apps時,根本不會考慮是線上訪問還是離線訪問——他們期望的是不管在任何狀況下,Native Apps都能正常工作。而這也是開發者的職責。

(3)混合開發

適用於媒體網站/內容交付平臺等企業,美團、愛奇藝、微信等知名移動應用,都是採用Hybrid App開發模式。

(4)需求分析


折中考慮——如果企業使用 Hybrid 開發方法,就能集Native 和web兩者之所長。一方面,Native 讓開發者可以充分利用現代移動裝置所提供的全部不同的特性和功能。另一方面,使用 Web 語言編寫的所有程式碼都可以在不同的移動平臺之間共享,使得開發和日常維護過程變得集中式、更簡短、更經濟高效。


內部技能——許多企業都擁有Web 開發技能。如果選擇 Hybrid 開發方法,在合適解決方案的支援下,Web 開發者只要僅僅運用 HTML、CSS 和 JavaScript 等 Web 技能,就能構建 App,同時提供 Native 使用者體驗。


考慮未來——HTML5的可用性和功能都在迅速改進。許多分析師預測,它可能會成為開發前端 App 的預設技術。如果用 HTML 來編寫 App 的大部分程式碼,並且只有在需要時才使用 Native 程式碼,公司就能確保他們今天的投入在明天不會變得過時,因為 HTML 功能變得更豐富,可以滿足現代企業一系列更廣泛的移動要求。

齒輪易創是一家為企業提供一體化技術解決方案的創新型網際網路公司,在企業需要技術產品賦能時,從解決方案、產品設計、產品開發、測試上線等全流程為企業解決實際問題,幫助企業網際網路轉型,資訊化打破技術壁壘。網際網路時代,目前齒輪易創已為包括亞馬遜、印象筆記、格理集團、Visa等200+企業提供軟體定製服務,為2000+企業提供產品諮詢。想要了解更多,請登陸齒輪易創官(chilunyc.com)。

(來源:齒輪易創)

(文章均為原創,轉載請標明出處。)