成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

開源式框架Xamarin與React Native大比拼

譯文
開發 前端
本文通過對Xamarin和React Native在市場份額、代碼編譯、SDK環境等方面進行比較,方便您理解它們的基本原理,并在實際項目中做出明智的選擇。

【51CTO.com快譯】有統計表明:目前,全球共有52.2億人正在使用著移動設備,其中有46.6億人會用設備來訪問各種移動應用。顯然,創建新的應用程序,已經成為了企業在激烈競爭中的標配。

[[384372]]

目前,可用于應用開發,特別是移動應用開發的技術與框架,可謂林林總總。其中最常見的當屬Xamarin和React Native。它們都支持跨平臺式開發,也都能夠提供“一次性編寫,各處部署(Write once and Deploy anywhere.)”的功能。不過,鑒于它們在市場份額、代碼編譯、SDK環境等方面的差異性,本文將通過對兩者進行比較,以方便您理解其基本原理,并在實際項目中做出明智的選擇。

什么是React Native?

React Native是基于JavaScript和JSX的開源式框架,由Facebook于2015年創建并啟用。其目的是為iOS和Android構建原生的應用程序。

其中,JSX代表了XML-Esque標記的合并,而且能夠在React Native框架中被使用。React可以將應用程序運行、并渲染到目標設備的原生平臺上。據此,各種應用程序將具有,與使用原生應用開發框架(如Java for Android或Objective-C for iOS)所構建出的應用,同等的性能。同時,React Native移動應用開發還允許開發者創建特定于某個平臺的組件版本。由于具有單獨代碼庫,因此這些組件可以在不同平臺上被共享使用。

統計顯示:截至2020年,全球有42%的開發人員正在使用React Native來構建,能夠在99%的移動設備上運行的應用程序。Facebook、Walmart、Bloomberg和instagram等明星企業都正在使用React Native,來開發其移動應用。

React Native的優勢

  • 可擴展的社區支持:全球開發愛好者們在React Native社區中分享了大量的知識,并提供著熱情的支持。該社區中的每個人也都可以免費訪問,那些可用于移動程序開發的大量免費組件。
  • 實時熱重載:React的實時重載功能,可以讓框架實時地編譯和讀取開發人員做出的更改。也就是說,它會在并不實際重載的情況下,驗證各項變更,并刷新整個應用程序。而熱重載則體現在為模擬器提供新的文件時,從一開始就能讀取整個文件,以更新各項變更。在此,它只會更新已更改的組件。
  • 代碼可重用性:React Native是減少代碼量的首選。它可以讓開發人員重用90%的代碼,以構建iOS和Android應用程序。此外,由于代碼只需少量修改,便可實現重用,因此React Native也節省了大量的開發時間。
  • 第三方插件支持:由于React Native不可能在同一個框架中包含所有的組件,所以開發人員在使用該JavaScript驅動型框架時,可以利用地圖、雙因素身份驗證等第三方功能,來渲染或增強React Native應用。
  • 提供最佳性能:應用程序的性能,以及提供更佳客戶體驗的能力,直接取決于構建應用的框架。由于開發人員可以利用React Native的原生模塊和組件,來構建應用,因此他們可以創建互不干擾的原生API和程序代碼。也就是說,他們能夠以較低的代碼量和較快的開發周期,來創建以性能為中心的應用程序。

什么是Xamarin?

由Microsoft創建的Xamarin,目前在開發社區中的占有率僅為14%(2019年曾為26%,https://www.statista.com/statistics/869224/worldwide-software-developer-working-hours/)。雖然與React Native相似,但是Xamarin更適合.Net的開源平臺。

Xamarin的主要功能是:維持共享代碼和平臺代碼之間的通信。Xamarin通過使用獨立于平臺的工具和代碼庫,來擴展.Net開發者平臺的各項功能。同時,Xamarin可以使用底層平臺所提供的全部功能。也就是說,當應用程序運行在Android上時,它會利用特定于平臺的各項功能,來提供預期的用戶體驗。該特性同樣適用于運行在iOS設備上的應用程序。此外,Xamarin還能夠用到基礎平臺的硬件加速功能。

Xamarin的優勢

  • 一種技術棧:作為具有內置多項技術的生態系統,Xamarin能夠讓開發人員一次性構建多平臺的應用程序。例如:使用在.Net框架上運行的C#語言,開發人員可以實現96%的代碼重用。當然,他們也可以用到.Net和Visual Studio。
  • 共享代碼:Xamarin旨在通過通用的代碼庫,方便用戶開發出可以運行在不同平臺上的應用。同時,應用之間可以共享相同的業務邏輯、數據庫訪問、以及網絡通信。而開發人員唯一需要更改的只是用戶界面,以保證應用在每個平臺上,都具有原生的觀感。
  • 原生性能:與其他跨平臺的開發工具相比,Xamarin能夠提供高度原生、且無與倫比的應用性能。在圖像加載速度方面,Xamarin只比原生應用慢14%。
  • Xamarin Forms可提供流暢的用戶體驗:Xamarin.Forms具有100%的可重用代碼API組件和元素庫。開發人員可以使用內置的Xamarin.iOS,來自定義各種元素。當然,它在Android平臺上也同樣適用。
  • 代碼庫數量的增加:過去Xamarin沒有廣泛的代碼庫,可供開發人員使用。如今,Microsoft開發團隊正在持續構建各種常見的用例和組件。例如:Xamarin能夠提供雙因素認證(2FA)之類,可以被直接插入使用的代碼庫。

開發人員該如何選擇?

通過上述介紹,我們不能發現,雖然兩者有著相似的功能,但是React Native比Xamarin具有更大的開發人員基礎。下面,我們從各項原始特性出發,幫您梳理出它們各自不同的適用場景。

編譯

它們的跨平臺開發功能--Just-in-time(JIT),能夠使開發人員在運行時(runtime)中,編譯字節碼或源代碼。不過,在Android允許JIT之處,iOS不允許JIT限制任何形式的跨平臺應用開發框架。

  • React Native:由于JIT在iOS上是不允許的,因此源代碼中的任何更改,都會要求開發人員退回到Android代碼處進行更改。它們只有在完成之后,方可作為iOS應用被運行。
  • Xamarin:為了繞過此問題,Xamarin針對代碼的編譯,計算了提前時間(Ahead-of-time,AOT)。AOT編譯器的任務是,分析字節碼,并用機器語言對其進行編譯,然后對所選擇的路徑執行相同的操作。這樣雖然可以減少啟動時間,提高應用程序的性能,但是也增加了文件的大小。同時,由于Xamarin在默認情況下已啟用了JIT,因此您可以先配置AOT,再使用它。

性能

無論是原生的,還是由Xamarin開發的移動應用,都需要通過出色的性能,給用戶留下良好的印象,并與之進行流暢的互動。

  • React Native:React Native中的Native Thread、JavaScript Thread、以及連接它們的中介網橋(mediator bridge),都能起到性能提升的作用。其中Native Thread通過網橋向JavaScript Thread發送信號。不過,由于JavaScript Thread可以處理的消息數量有限,因此在消息數增多時,應用程序的UI會出現滯后。我們可以通過使用為此目的構建的特定第三方庫(例如Proguard),以更快的速度優化字節碼。
  • Xamarin:雖然Xamarin.Forms的性能指標不及原生框架,但是作為彌補,Xamarin能夠以較低的成本和更少的時間,來完成諸如處理API請求、序列化、反序列化、圖像保存、以及加載等簡單的開發任務。此外,由于Xamarin.Forms包含了Xamarin.Android和Xamarin.iOS,因此它們都能夠讓開發者自定義共享代碼庫,進而為用戶提供原生的觀感和體驗。可以說,在某些操作中,Xamarin.Android甚至能夠表現出比原生框架更好的性能。總的說來,Xamarin不但能夠提高性能,還能夠匹配原生框架的各項指標。

應用架構

應用架構是指那些能夠構建出合理的編程模式與結構的開發框架。可以說,更強大、更快捷、更穩定的基礎架構,往往可以讓開發人員以最小的代價,來解決各類復雜的開發問題。

  • React Native:React Native體系架構由React、JavaScript(JSC)、Bridge和Native Side四個關鍵組件組成。那些習慣了使用單向數據流,和最新版JavaScript的開發人員,可以輕松地使用它。對于iOS React Native移動應用的開發而言,JavaScript Core為運行時(runtime)分離了所有的代碼;而對于Android來說,則需要將它們捆綁到應用程序的內部。雖然將代碼捆綁在一起,的確可以帶來更好的原生性能,但是此舉的代價是性能問題,隨著應用本身體積的增大,滯后很可能會逐漸產生。
  • Xamarin:Xamarin支持不同的架構模式,其中包括:MVVM(模型、視圖、視圖和模型),MVC(模型、視圖和控制器)、業務外觀、單例(Singleton)、異步等。Xamarin對于那些習慣了使用ASP.NET、MVC、Web Forms、以及其他相關模型與視圖工具的開發人員而言,非常容易上手。同時,Xamarin MVP非常適合那些由該框架構建的原生應用。當然,為了充分利用Xamarin,開發人員也可以采用MVVM模式。

可見,這兩種框架在應用體系架構方面,表現得同樣出色。

社區支持與協助

社區支持對于初學者與資深開發人員之間的問答、共享、以及相互學習,都是至關重要的。

  • React Native:雖說React Native是一個較新的框架,但是Facebook為其打造了龐大且可擴展的社區支持。目前,該社區擁有2200多個專業的開發人員和19800個實時項目。同時,它擁有專用的Discord頻道和論壇,可幫助開發人員每天了解到該框架的最新信息。
  • Xamarin:Xamarin在開發社區方面根基較深。它在120個國家/地區擁有約140萬名開發人員。與React Native類似,它也是一個開源的網絡,因此各類貢獻者可以通過協同努力,來彼此學習和成長。不過,與React Native的開放式社區不同,Xamarin提供了Xamarin BlogXamarin Q&A兩種官方渠道。當然,其他類型的社區支持還有:Stack Overflow和Reddit。

用戶體驗

使最終用戶滿意,通常是開發人員的終極目標。因此,對于移動端應用來說,用戶的體驗往往決定了軟件產品的成敗。

  • React Native:在響應Android和iOS不斷變化的原生元素需求方面,React Native的反應較慢。React Native主要提供的是包括React Virgin和Shoutem在內的,現成的UI工具包,可幫助開發人員創建各種原生的UI組件。其中,諸如:分頁、快速輪播、活動標記等內在元素,可以協助開發人員改善橫跨不同平臺的用戶體驗。
  • Xamarin:Xamarin允許用戶分別為Android和iOS自定義應用元素和組件。同時,它允許開發者使用原生的API和SDK,來進一步增強用戶體驗。此外,它通過利用原生的UI和硬件加速,來極大地“催化”Xamarin移動應用的開發。

因此,對于希望提供更好的用戶體驗的開發者而言,Xamarin可能更為可取。

小結

綜上所述,Xamarin在許多方面都超過了React Native。不過有趣的是,React Native的使用率仍遠高于Xamarin。其根本原因在于:開發人員的編程語言掌握能力上。根據 2018年的統計數據(,世界上有1,070萬名JavaScript開發人員,和620萬名C#開發人員。

客觀地說,到底選擇哪種框架,實際上完全取決于,您是要通過簡單的UI來構建應用程序,還是要構建具有類似原生的UI,并可以利用平臺硬件來增強性能的軟件產品。如果您的目標是前者,那么請選擇Xamarin;如果是后者,則請考慮React Native。

原文標題:Xamarin vs React Native: Pick the Right Platform in 2021,作者: Himanshu Patel

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

 

責任編輯:華軒 來源: 51CTO
相關推薦

2014-01-07 17:08:02

Java開源框架

2025-01-22 10:27:53

開發框架

2023-05-26 15:53:48

MidjourneyAI圖像

2010-04-21 12:54:46

Unix內核

2019-08-27 09:00:00

敏捷開發開發方法項目

2009-10-13 14:46:00

思科認證

2011-01-19 11:10:30

2010-03-18 14:54:46

主流無線技術

2009-07-02 18:50:43

2010-07-14 13:38:51

Perl開發工具

2020-08-04 17:06:40

Merging Rebasing Git

2010-09-08 15:41:28

SIP協議棧

2010-08-25 16:12:34

職場

2017-09-10 14:29:03

眼力

2011-11-08 10:29:44

2021-03-15 21:07:17

IT行業薪酬薪水

2010-05-28 11:09:51

SVN功能

2024-12-31 11:28:14

2023-11-14 09:00:00

向量數據庫ChromaMilvus

2019-11-21 09:39:30

EMonitorCAT監控
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久精品无码一区二区三区 | 成人高潮片免费视频欧美 | 国产一级免费视频 | 在线观看中文字幕视频 | 在线观看av网站永久 | 精品国产免费一区二区三区演员表 | 亚洲午夜视频 | 毛片免费观看 | 欧美a区| 国产成人精品免费 | 中文无码日韩欧 | 国产精品亚洲精品日韩已方 | 日韩欧美字幕 | 作爱视频免费观看 | 免费观看一级特黄欧美大片 | 国产精品一区二区在线 | 91极品视频 | 久久久这里只有17精品 | 免费在线看黄视频 | 国产成人精品久久二区二区91 | 中文字幕不卡视频在线观看 | 精品视频一区二区 | 97久久久| 黄色片在线 | 日韩精品在线观看视频 | caoporn国产 | 欧美综合国产精品久久丁香 | 一二三四在线视频观看社区 | www.久| 久久久久久久一区二区三区 | 亚洲精品国产偷自在线观看 | 欧美一级欧美三级在线观看 | 一区二区三区四区在线 | 久久精品国产精品青草 | 精品久久一区二区三区 | 亚洲欧美一区二区三区国产精品 | 成人国产精品久久 | 日本又色又爽又黄的大片 | 亚洲一区二区三区免费在线观看 | 欧美一区二区三区在线观看视频 | 超碰在线97国产 |