Angular2, NativeScript 和 React Native比較[翻譯]

圖片描述

在開發階段,跨平臺開發App面臨一個很重要的決定,究竟是應該使用原生技術開發應用仍是使用hybird或者基於web的技術。這些問題將會影響着大量的開發工做-也就是說,最近選擇繼續使用原生的方法開發應用意味着讓你的開發團隊同時使用 Objective C/Swift (iOS)和 Java (Android )開發功能。這對於開發原生的應用並無什麼能夠討論的。下面咱們將看到用javascript經過使用React Native或者使用Angular2和NativeScript聯合去開發跨平臺的原生應用。咱們能夠看一下這兩種方式都提供哪些方法,而後去比較二者,但願能給開發者選擇技術方式有必定的啓發。javascript

爲何選擇Native?

Native App 比hybird和基於H5的應用有不少優勢。首先,Native 應用更接近設備底層,意味着原生應用代碼的執行效率比hybird框架高。另外,Native應用還可讓你使用不少hybird框架用不了的特性,你可使用更多特定的平臺下不少特性,特別是與硬件結合的部分能夠在一組源代碼中完成,而不用在hybird應用中包含自定義的模塊或者非web的組件。這些特性能提供一個良好的用戶體驗,因此使用Native方式開發應用變更愈來愈流行。經過使用native組件的框架,咱們能夠減小原生app開發的花費。java

React Rective

在2015年3月,Facebook推出了React Native,容許開發者使用相同的javascript代碼運行在iOS或者Android上的框架。React是一組具備最小的外部反作用和對DOM依賴的一系列函數。React可以將使用DOM做爲主要的渲染模型,這種設計模式使得替換本地組件變得簡單,而不是使用原來的那種web視圖和HTML組件的方式。所以,使用相同的代碼應用能夠在iOS上使用UIAlertView上使用AlertDialog 實現警告彈窗,而不用寫任何額外的代碼去支持UI視圖。這些特性都使得React專一於速度和髒渲染相結合,你能夠用一個代碼庫快速構建跨平臺的移動應用。react

AngularJS 2 + NativeScript

Telerik的團隊最初集成Angular開發了Kendo UI庫。它做爲一個跨平臺的開發工具,爲開發hybord應用和H5應用提供了一個一致性的跨平臺UI體驗。當Telerik開始使用NativeScript來提供真正的跨平臺應用時,他發現Angular 1.x對DOM的緊耦合的依賴性在用Angular開發應用建立native UI映射時呈現的問題。然而,隨着Angular2的到來,一切都變了。Angular2對DOM的鬆耦合容許NativeScript開發者和React Native同樣的機制-抽象視圖和組件渲染,這使得DOM再也不是必需的。Angular2很容易和NativeScript集成,容許你開發同樣風格的native app運行在全部的手機平臺。web

二者比較

在比較React Native和NativeScript 這兩個以解決native開發爲重心的解決方案時,關鍵是看它們是怎麼樣從相同的代碼構建應用的。NativeScript 採用了總體性的解決方案,真正實現了"一次編寫,處處運行"。這意味着許多UI元素會下降級別,由於NativeScript嘗試在多個平臺間能夠透明和可重複的方式管理這些UI組件。隨着Angular2的加入,你能夠經過Angular核心的UI指令的優勢去建立跨平臺的應用,這些指令能夠比在多個應用之間建立UI組件更具備一致性。react-native

在辯論的另外一方是React Native,它選擇擁抱-而不是隱藏其多平臺的性質。這意味着雖然您能夠以平臺無關的方式編寫React Native代碼,但你也能夠訪問特定平臺的UI控件。另外一方面,React的目標是抽象業務邏輯,同時支持每一個平臺之間的UI呈現固有的差別,而NativeScript專一於建立一個單一的開發體驗而與平臺無關。React的重點放在高性能的渲染和執行上,你能夠很輕鬆的建立高性能的跨平臺應用,這些應用能夠在相同的代碼庫上運行而且隨意使用特色平臺的組件。使用哪一種方式應該依據你的應用綜合考慮,相對通用的數據驅動的應用程序可能更歡NativeScript,由於它的UI一般不足以知足以平臺爲中心的應用。儘管是這樣,在web應用中使用Angular2來驅動的應用架構也會比React Native有不少性能優點。無論怎麼樣,使用Angular2和NativeScript須要去使用傳統的Angular架構去構建你的代碼,可是React Native能夠沒必要如此。另外,使用NativeScript和Angular2構建應用,會嚮應用程序的管道中引入附加的依賴關係,這個問題不像React Native那樣明顯,它能夠處理React框架中的全部跨平臺功能。設計模式

結論

跨平臺開發已經在迅速的發展,最近跨平臺和原生開發框架的激增只會繼續這種勢頭。選擇React Native和Angular2結合NativeScript,換一種方式說,就像選擇React和Angular框架自身。React被設計做爲一個快速輕量的渲染框架在大型應用中使用,React Native延續了這種設計設計的模式。另外一方面,Angular是一個有意識的應用程序開發框架,它具備開發應用程序的「正確方法」,Angular 2和NativeScript的集成進一步減小了小型的設備集成的費用。所以,二者之間的選擇在很大程度上是相同的。你的應用是集中在大量的渲染複雜UI和傳統元素嗎?若是是,React Native比較適合你。可是,若是有一個聲明式用戶界面模式的單一跨平臺代碼庫的應用程序架構,那麼結合Angular2和NativeScript能夠幫助你實如今採用Angular用於Web應用程序,同時保持相似的開發模式和程序體系結構。架構

原文連接app

相關文章
相關標籤/搜索