【譯】Hybrid or Native: 合適的纔是最好的

本文轉載自:衆成翻譯
譯者:文藺
連接:http://www.zcfy.cc/article/861
原文:http://www.telerik.com/blogs/hybrid-or-native-mobile-app-use-the-right-tool-for-the-job前端

譯者注:本文講到的 hybrid & native 可能和咱們一般理解的略有差別。文中 native 部分主要講到的是 NativeScript,這一點可能在一些開發者看來是有爭議的。關於 NativeScript,想起來@前端外刊評論 有一篇文章《使用 NativeScript 和 Angular2 構建跨平臺 APP》,能夠參閱。web

移動應用開發,什麼時候該用 hybrid,什麼時候又該用 native?一塊兒來學習它們的差別,看看哪款更適合你。apache

移動應用開發者的工具箱正在膨脹,比任何人期待的都更加多樣化了。從像 Xcode 和 Android Studio 這樣的純原生 (pure native) 解決方案,到 Telerik NativeScript和 React Native 這樣的原生 JavaScript 選項,再到 Kendo UI 和 Ionic 這樣基於 web 的框架,開始App 開發比之前任什麼時候候都容易。然而,隨着可選項的增長,「選擇悖論」 (paradox of choice) 出現了 —— 咱們驚呆了,看不懂了,居然有如此多的可選項。咱們真正想要的是,更少的選擇,更清晰的指南。在這篇文章中,我但願能讓您看清選擇,爲您指向一條康莊大道,建立成功的移動應用。瀏覽器

談論移動應用開發的工具、服務,好比說Telerik Platform by Progress提供的那些,選擇就變得簡潔多了:app

  • 想試試 hybrid ?咱們提供 Cordova/PhoneGap 開發,你可使用任何移動端 JavaScript 框架框架

  • 想用 native ?咱們支持 NativeScript 開發(附帶可選的 [Angular 2 集成])工具

使用 Telerik Platform,不須要 Mac,也不須要管理各類 SDK。你可使用到最佳的模擬、調試以及像消息推送、實時同步(LiveSync)、App Store發佈等等服務。佈局

hybrid native mobile web

Hybrid App 究竟是什麼?

個人同事 John Bristowe 在這篇博客中講到了這個,其中有關於 hybrid 的全面解釋。說得更清楚一點,Hybrid App 並非移動端網站!它是安裝在設備本地的應用,但使用 Web 技術(HTML5, CSS,JavaScript)編碼,在 WebView 中運行。WebView 是打包在移動應用中的瀏覽器。性能

Hybrid App 不管是看起來、感受起來仍是使用起來,都很像 Native App(多數狀況下... 往下看)。它能夠與設備的原生功能如地理定位、相機、通信錄等等交互。任何沒法使用的原生功能,一般都能用各類 Cordova 插件解決。學習

聽起來真棒,是吧?來看看 hybrid 的更多優弱勢:

Hybrid 強項

  • 徹底跨平臺:編碼一次,而後就能夠構建 iOS、Android 和/或 Windows Phone 應用

  • 代碼複用:能夠複製現有的大部分 Web App 代碼,將其轉換爲移動 App

  • 技能複用,學習曲線低:若是你有 JavaScript、HTML、CSS 相關知識的話,很快就能使用 Cordova 和移動 JavaScript 框架開發應用

  • 減小開發時間和成本:由於上述有點,能夠相對快速完成移動 App 開發並上線

  • 健全的生態系統: Cordova 是一個成熟的開源框架,Kendo UI 包含一個著名的(且開源的)移動框架

Hybrid 缺點

  • 感知性能問題: Hybrid App 在 WebView 中運行,因此會受到設備上 WebView 的性能的影響(尤爲 Android 有一堆問題)

  • 跨設備行爲差別: WebView 在各平臺(甚至不一樣版本)上不同,須要額外調整並優化代碼,確保 App 按照預期能在全部設備上運行

  • 大量圖形和過渡(heavy graphics and transitions)狀況下的性能問題: WebView 在處理大量圖形和過渡(特別是遊戲和其餘重 UI 的應用中)的時候,確定有各類問題

  • 特定平臺 UI 或特性須要額外開發:進軍特殊平臺的特性,一般須要額外編碼,或者在某些情形下使用插件,甚至須要本身來建立插件

  • 新版本平臺支持緩慢:新版移動平臺可使用的時候,在 Cordova 引入新版本及其特性的各類支持以前,須要等上幾個月

Native App 又是什麼?

Native App 是運行在設備本地的應用,使用的是真實的原生 UI 元素。不像 Hybrid App,Native App 無需犧牲性能,由於它運行在設備原生環境中!Native App 中沒有 WebView 礙事了。 Native App 也能完整訪問平臺上全部可用的 API(因此沒必要使用任何插件,雖然它們也有用)。

談到 Native App,最好也是最簡單的辦法是使用免費、開源的 NativeScript 框架。

nativescript architecture

爲何使用 NativeScript ?好吧,就像 hybrid 技術,它可讓你使用所掌握和喜好的 Web 技能(CSS 和 JavaScript/TypeScript),同時使用咱們的插件如 Telerik UI for NativeScript 達到平滑、優雅的用戶體驗。

這聽起來也挺好的吧? 也來看看 native 的優缺點細節:

Native 強項

  • 跨平臺:同 hybrid 同樣,使用 NativeScript 建立的應用,同一套代碼能夠在 iOS 和 Android 上運行

  • 代碼複用:仍是同樣,能夠將許多 JavaScript 業務邏輯拷到 NativeScript 應用中(固然得視狀況而定)

  • 技能複用:若是你會 JavaScript 和 CSS,或者理解 XML(UI 標記)的概念,那你已經具有理解 NativeScript 的基礎了

  • 跨平臺的原生 UI 和性能:由於應用使用的是原生組件,它們在任何地方都能跑起來

  • 利用現有的原生庫: NativeScript 提供包括 CocoaPods 這樣的原生庫的框架外支持

  • 新特性無縫支持:新的移動操做系統版本可用的時候,NativeScript 立刻就能提供支持

Native 弱勢

  • 相對較新: JavaScript Native 框架相對來講仍是比較新,所以社區還在製造資源、拓展文檔

  • 更陡峭的學習曲線: Hybrid 讓咱們使用 HTML,但 NativeScript 迫使咱們使用更多的原生應用概念如 原生 UI 元素。對不起,沒有 div 了,可是 NativeScript 佈局引擎理解起來很簡單

二者如何選擇?

這纔是關鍵問題,對吧?若是你想開發移動應用,並且有得選擇,而後 Telerik Platform 兩種方案都支持,你會怎麼選?這兒有一些問題是咱們聽到人們在選擇 hybrid 和 native 開發時的談論的:

性能對我很重要 —— 若是體驗很差客戶纔不會要!若是性能是關鍵(一般都這樣),那就使用 NativeScript 吧。

我只想盡快上線應用。不須要完美,也不須要 100% 原生。須要快速開發打樣 App?那 hybrid 可能最好的選擇。NativeScript 很酷的一點是,你甚至能夠直接從打樣 App 中複製大部分業務邏輯,放到 NativeScript App 中(它們都是 JavaScript)。

我想讓個人應用不會過期。我可等不及別人寫插件或者更新框架。和最新的移動平臺保持同步確實有點麻煩,這也是爲什麼 NativeScript 爲各類新操做系統發佈、API 升級提供快速支持。

須要給個人應用建立一個 Windows Phone 版本!截至如今,Windows Phone 只支持 hybrid(不過 NativeScript 團隊正在爲此努力)。

下一步

如今開始,在 Telerik Platform 上開始免費試用吧。咱們爲你提供即時可用的開發體驗,衆多關於 hybrid 和 native 的快速入門教程。祝你好運!

相關文章
相關標籤/搜索