摘要:當(dāng)開始使用來提供真正的跨平臺應(yīng)用時,他發(fā)現(xiàn)對的緊耦合的依賴性在用開發(fā)應(yīng)用創(chuàng)建映射時呈現(xiàn)的問題。的重點(diǎn)放在高性能的渲染和執(zhí)行上,你可以很輕松的創(chuàng)建高性能的跨平臺應(yīng)用,這些應(yīng)用可以在相同的代碼庫上運(yùn)行并且隨意使用特點(diǎn)平臺的組件。
在開發(fā)階段,跨平臺開發(fā)App面臨一個很重要的決定,到底是應(yīng)該使用原生技術(shù)開發(fā)應(yīng)用還是使用hybird或者基于web的技術(shù)。這些問題將會影響著大量的開發(fā)工作-也就是說,最近選擇繼續(xù)使用原生的方法開發(fā)應(yīng)用意味著讓你的開發(fā)團(tuán)隊同時使用 Objective C/Swift (iOS)和 Java (Android )開發(fā)功能。這對于開發(fā)原生的應(yīng)用并沒有什么可以討論的。下面我們將看到用javascript通過使用React Native或者使用Angular2和NativeScript聯(lián)合去開發(fā)跨平臺的原生應(yīng)用。我們可以看一下這兩種方式都提供哪些方法,然后去比較兩者,希望能給開發(fā)者選擇技術(shù)方式有一定的啟發(fā)。
為什么選擇Native?Native App 比hybird和基于H5的應(yīng)用有很多優(yōu)點(diǎn)。首先,Native 應(yīng)用更接近設(shè)備底層,意味著原生應(yīng)用代碼的執(zhí)行效率比hybird框架高。另外,Native應(yīng)用還可以讓你使用很多hybird框架用不了的特性,你可以使用更多特定的平臺下很多特性,特別是與硬件結(jié)合的部分可以在一組源代碼中完成,而不用在hybird應(yīng)用中包含自定義的模塊或者非web的組件。這些特性能提供一個良好的用戶體驗(yàn),所以使用Native方式開發(fā)應(yīng)用變動越來越流行。通過使用native組件的框架,我們可以減少原生app開發(fā)的花費(fèi)。
React Rective在2015年3月,F(xiàn)acebook推出了React Native,允許開發(fā)者使用相同的javascript代碼運(yùn)行在iOS或者Android上的框架。React是一組具有最小的外部副作用和對DOM依賴的一系列函數(shù)。React能夠?qū)⑹褂肈OM作為主要的渲染模型,這種設(shè)計模式使得替換本地組件變得簡單,而不是使用原來的那種web視圖和HTML組件的方式。因此,使用相同的代碼應(yīng)用可以在iOS上使用UIAlertView上使用AlertDialog 實(shí)現(xiàn)警告彈窗,而不用寫任何額外的代碼去支持UI視圖。這些特性都使得React專注于速度和臟渲染相結(jié)合,你可以用一個代碼庫快速構(gòu)建跨平臺的移動應(yīng)用。
AngularJS 2 + NativeScriptTelerik的團(tuán)隊最初集成Angular開發(fā)了Kendo UI庫。它作為一個跨平臺的開發(fā)工具,為開發(fā)hybord應(yīng)用和H5應(yīng)用提供了一個一致性的跨平臺UI體驗(yàn)。當(dāng)Telerik開始使用NativeScript來提供真正的跨平臺應(yīng)用時,他發(fā)現(xiàn)Angular 1.x對DOM的緊耦合的依賴性在用Angular開發(fā)應(yīng)用創(chuàng)建native UI映射時呈現(xiàn)的問題。然而,隨著Angular2的到來,一切都變了。Angular2對DOM的松耦合允許NativeScript開發(fā)者和React Native一樣的機(jī)制-抽象視圖和組件渲染,這使得DOM不再是必需的。Angular2很容易和NativeScript集成,允許你開發(fā)一樣風(fēng)格的native app運(yùn)行在所有的手機(jī)平臺。
兩者比較在比較React Native和NativeScript 這兩個以解決native開發(fā)為重心的解決方案時,關(guān)鍵是看它們是怎么樣從相同的代碼構(gòu)建應(yīng)用的。NativeScript 采用了整體性的解決方案,真正實(shí)現(xiàn)了"一次編寫,到處運(yùn)行"。這意味著許多UI元素會降低級別,因?yàn)镹ativeScript嘗試在多個平臺間可以透明和可重復(fù)的方式管理這些UI組件。隨著Angular2的加入,你可以通過Angular核心的UI指令的優(yōu)點(diǎn)去創(chuàng)建跨平臺的應(yīng)用,這些指令可以比在多個應(yīng)用之間創(chuàng)建UI組件更具有一致性。
在辯論的另一方是React Native,它選擇擁抱-而不是隱藏其多平臺的性質(zhì)。這意味著雖然您可以以平臺無關(guān)的方式編寫React Native代碼,但你也可以訪問特定平臺的UI控件。另一方面,React的目標(biāo)是抽象業(yè)務(wù)邏輯,同時支持每個平臺之間的UI呈現(xiàn)固有的差異,而NativeScript專注于創(chuàng)建一個單一的開發(fā)體驗(yàn)而與平臺無關(guān)。React的重點(diǎn)放在高性能的渲染和執(zhí)行上,你可以很輕松的創(chuàng)建高性能的跨平臺應(yīng)用,這些應(yīng)用可以在相同的代碼庫上運(yùn)行并且隨意使用特點(diǎn)平臺的組件。使用哪種方式應(yīng)該依據(jù)你的應(yīng)用綜合考慮,相對通用的數(shù)據(jù)驅(qū)動的應(yīng)用程序可能更歡NativeScript,因?yàn)樗腢I通常不足以滿足以平臺為中心的應(yīng)用。盡管是這樣,在web應(yīng)用中使用Angular2來驅(qū)動的應(yīng)用架構(gòu)也會比React Native有很多性能優(yōu)勢。不管怎么樣,使用Angular2和NativeScript需要去使用傳統(tǒng)的Angular架構(gòu)去構(gòu)建你的代碼,但是React Native可以不必如此。另外,使用NativeScript和Angular2構(gòu)建應(yīng)用,會向應(yīng)用程序的管道中引入附加的依賴關(guān)系,這個問題不像React Native那樣明顯,它可以處理React框架中的所有跨平臺功能。
結(jié)論跨平臺開發(fā)已經(jīng)在迅速的發(fā)展,最近跨平臺和原生開發(fā)框架的激增只會繼續(xù)這種勢頭。選擇React Native和Angular2結(jié)合NativeScript,換一種方式說,就像選擇React和Angular框架自身。React被設(shè)計作為一個快速輕量的渲染框架在大型應(yīng)用中使用,React Native延續(xù)了這種設(shè)計設(shè)計的模式。另一方面,Angular是一個有意識的應(yīng)用程序開發(fā)框架,它具有開發(fā)應(yīng)用程序的“正確方法”,Angular 2和NativeScript的集成進(jìn)一步減少了小型的設(shè)備集成的費(fèi)用。因此,兩者之間的選擇在很大程度上是相同的。你的應(yīng)用是集中在大量的渲染復(fù)雜UI和傳統(tǒng)元素嗎?如果是,React Native比較適合你。但是,如果有一個聲明式用戶界面模式的單一跨平臺代碼庫的應(yīng)用程序架構(gòu),那么結(jié)合Angular2和NativeScript可以幫助你實(shí)現(xiàn)在采用Angular用于Web應(yīng)用程序,同時保持類似的開發(fā)模式和程序體系結(jié)構(gòu)。
原文鏈接
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/81540.html
摘要:本文轉(zhuǎn)載自眾成翻譯譯者文藺鏈接原文譯者注本文講到的可能和我們通常理解的略有差異。文中部分主要講到的是,這一點(diǎn)可能在一些開發(fā)者看來是有爭議的。談到,最好也是最簡單的辦法是使用免費(fèi)開源的框架。需要快速開發(fā)打樣那可能最好的選擇。 本文轉(zhuǎn)載自:眾成翻譯譯者:文藺鏈接:http://www.zcfy.cc/article/861原文:http://www.telerik.com/blogs/h...
摘要:在考慮宇航員的生命安全時,輕微的打嗝或者服務(wù)中斷都會釀成生死事故。也許最大的挑戰(zhàn)來自谷歌主導(dǎo)的簡稱。在最近的開發(fā)者峰會,以及今年的會議上,谷歌都為安排了大量討論。由微軟提供,是廣受歡迎的編輯器,到月份已經(jīng)獲得了超過五百萬用戶。 譯者:安冬 (滬江Web前端開發(fā)工程師)本文原創(chuàng)翻譯,轉(zhuǎn)載請注明作者及出處。原文地址:http://developer.telerik.com/... 技術(shù)世界...
摘要:在,是當(dāng)之無愧的王者,贏得了與之間的戰(zhàn)爭,攻陷了的城池。于月發(fā)布了版本,這一版本為了更好的表現(xiàn)加入了渲染方式。前端框架這個前端框架清單可能是年疲勞的元兇之一。的創(chuàng)建者,目前在工作為尋找構(gòu)建簡單性和自主配置性之間的平衡做了很大的貢獻(xiàn)。 春節(jié)后的第一篇就從這個開始吧~本文已在前端早讀課公眾號上首發(fā) 原文鏈接 JavasScript社區(qū)在創(chuàng)新的道路上開足了馬力,曾經(jīng)流行過的也許一個月之后就過...
摘要:今天偶爾再打開的官網(wǎng),發(fā)現(xiàn)首頁部分多出了這一選項(xiàng)可見官方對于與的結(jié)合是非常的支持的。,這個模板是目前最穩(wěn)定和多功能的模板,可以使用單文件組件,,。但是不管怎樣,與的結(jié)合是一件很酷的事情,也希望它能夠快速發(fā)展起來。 What is NativeScript? NativeScript 是一個可以讓你用Typescript或JavaScript開發(fā)原生ios或android app的開源框...
閱讀 3657·2021-11-25 09:43
閱讀 650·2021-09-22 15:59
閱讀 1754·2021-09-06 15:00
閱讀 1777·2021-09-02 09:54
閱讀 696·2019-08-30 15:56
閱讀 1189·2019-08-29 17:14
閱讀 1847·2019-08-29 13:15
閱讀 888·2019-08-28 18:28