Flutter與React Native針對(duì)移動(dòng)開發(fā)的比較
譯文【51CTO.com快譯】就在幾年之前,我們還會(huì)看到各種移動(dòng)應(yīng)用程序需要在Android Studio里使用Java來(lái)進(jìn)行開發(fā)。然而,在Google推出了Kotlin之后,人們不再過(guò)于關(guān)注針對(duì)框架的開發(fā)了。
現(xiàn)如今,業(yè)界的開發(fā)人員普遍開始使用Flutter和React Native之類新的框架,來(lái)開發(fā)各種移動(dòng)應(yīng)用程序了。這些新生的框架不但能夠使得應(yīng)用程序的編寫過(guò)程更為容易,而且能夠給用戶帶來(lái)更多的跨平臺(tái)功能,并且能夠支持橫跨不同域的開發(fā)。
基本比較
簡(jiǎn)單而言,如果您需要在應(yīng)用程序中包含某些動(dòng)態(tài)功能的話,那么請(qǐng)使用React Native框架。它能夠支持比Flutter更多的第三方庫(kù)。鑒于Flutter是一個(gè)相對(duì)較新的框架,其社區(qū)仍然在不斷地發(fā)展和完善之中,因此您可能很難找到高質(zhì)量的在線使用教程。
而作為對(duì)比,React Native如今已經(jīng)穩(wěn)固了其市場(chǎng)占比,因此它擁有著比Flutter更為龐大的社區(qū),您可以從中獲得基于不同行業(yè)的各種在線幫助。此外,隨著那些經(jīng)驗(yàn)豐富的JavaScript開發(fā)人員在React Native社區(qū)中越來(lái)越活躍,他們更愿意、也更頻繁地將自己所掌握的先進(jìn)知識(shí)和技能分享出來(lái)。
就程序代碼的可重用性而言,F(xiàn)lutter允許用戶針對(duì)新的開發(fā)任務(wù),直接修改現(xiàn)有的代碼。然而,React Native的代碼可重用性則相對(duì)較為復(fù)雜。鑒于其現(xiàn)有的平臺(tái)樣式,該框架需要用戶付出更多的工作量。
框架開發(fā)人員
由Google推出的Flutter,自2017年面世以來(lái),其實(shí)用的功能、以及易于開發(fā)移動(dòng)應(yīng)用的特性,備受業(yè)界的歡迎。而React Native則是由Facebook于2015年開始研發(fā),2017年推出的產(chǎn)品。因此,如果您想通過(guò)諸如HTML、JavaScript和CSS等Web技術(shù),創(chuàng)建運(yùn)行在某個(gè)容器中的混合應(yīng)用程序,以供用戶手機(jī)上的兼容性網(wǎng)頁(yè)來(lái)訪問(wèn)的話,那么這兩個(gè)平臺(tái)都是您的好選擇。下面,我們將針對(duì)混合應(yīng)用程序的開發(fā),進(jìn)行兩種框架的優(yōu)勢(shì)比較。
哪個(gè)更穩(wěn)定?
眾所周知,我們?cè)跒榇笮晚?xiàng)目研發(fā)應(yīng)用程序時(shí),應(yīng)用本身的穩(wěn)定性是尤為重要的。與此同時(shí),應(yīng)用程序應(yīng)該能夠隨著用戶數(shù)的增加,持續(xù)保持其穩(wěn)定性。那么,就項(xiàng)目規(guī)模而言,大多數(shù)開發(fā)人員會(huì)針對(duì)大型項(xiàng)目推薦使用React Native來(lái)開發(fā)應(yīng)用,他們普遍認(rèn)為由Flutter開發(fā)的應(yīng)用程序不太適合于大型項(xiàng)目。
在我看來(lái),雖然React Native與Flutter在所支持的用戶數(shù)量方面不相上下,但是React Native的穩(wěn)定性的確見長(zhǎng)。這主要是因?yàn)椋潺嫶蟮纳鐓^(qū)能夠保障該框架的可持續(xù)改進(jìn),即使它的某些功能特性在某個(gè)特點(diǎn)應(yīng)用上碰到問(wèn)題時(shí),該社區(qū)也能很快找到彌補(bǔ)、甚至是替換方案。
語(yǔ)言
如前所述,這兩個(gè)框架都能夠支持混合式的應(yīng)用程序開發(fā)。因此,您完全可以使用相同的編程語(yǔ)言,來(lái)創(chuàng)建Android和iOS版本的應(yīng)用程序。具體說(shuō)來(lái),在跨平臺(tái)開發(fā)方面,React Native使用的是JavaScript,而Flutter則用到了Dart。由于支持JavaScript,而恰好業(yè)內(nèi)許多開發(fā)人員都具有此類經(jīng)驗(yàn),因此大家普遍認(rèn)為使用React Native框架開發(fā)起來(lái),會(huì)更加得心應(yīng)手。相比之下,Dart較為新穎,許多開發(fā)人員對(duì)它不甚了了。
界面上的比較
許多熟悉這兩個(gè)框架的人都一直認(rèn)為:由于用到了各種原生的組件,因此React Native提供了一個(gè)更新穎、更優(yōu)秀的用戶界面。而Flutter則需要依賴各種不同的部件集合(widget sets)。盡管Flutter的部件集合為用戶提供了自定義用戶界面的多重選擇,但是有時(shí)候這種自定義方式反而會(huì)影響用戶在使用中的直觀體驗(yàn)。
測(cè)試
在測(cè)試方面,由于Flutter為用戶界面提供了不同的內(nèi)置測(cè)試單元,因此它的優(yōu)勢(shì)較為明顯。相反,由于React使用的是JavaScript,因此它并沒有許多可用的官方測(cè)試工具。雖然您可以使用Jest測(cè)試工具,來(lái)進(jìn)行快照式的測(cè)試,但是如果您想通過(guò)測(cè)試用戶界面,來(lái)發(fā)現(xiàn)具體問(wèn)題的話,React并沒有提供合適的官方測(cè)試工具。當(dāng)然,您可以從Detox等非官方測(cè)試工具處獲得幫助,以測(cè)試那些由React Native構(gòu)建的應(yīng)用程序,不過(guò)此類測(cè)試的成功性并無(wú)保證。
相關(guān)的指南支持
下面,我們來(lái)比較一下兩者的在線文檔與指南。由于Flutter提供了完備的在線和離線式文檔,開發(fā)人員可以輕松地使用相關(guān)文檔來(lái)開發(fā)應(yīng)用程序,因此Flutter略勝一籌。而且,由于Flutter文檔提供了簡(jiǎn)化復(fù)雜任務(wù)的快捷方式,因此Flutter開發(fā)人員更容易在較短時(shí)間內(nèi),創(chuàng)建出自己的移動(dòng)應(yīng)用。
不可否認(rèn),React Native也提供了相應(yīng)的文檔,但其文檔的條理結(jié)構(gòu)程度遠(yuǎn)不及Flutter。
結(jié)論
綜上所述,我們得出了這樣的結(jié)論:如今,由于得到了來(lái)自世界各地開發(fā)人員、以及相關(guān)行業(yè)的支持,React Native無(wú)疑在移動(dòng)應(yīng)用開發(fā)領(lǐng)域得到了、而且還將被繼續(xù)廣泛地被運(yùn)用在不同的移動(dòng)開發(fā)項(xiàng)目中。不過(guò)正所謂:“江山代有人才出”,F(xiàn)lutter的社區(qū)規(guī)模也在持續(xù)增長(zhǎng),業(yè)界不少開發(fā)人員滿懷信心地認(rèn)為,F(xiàn)lutter必將成為移動(dòng)應(yīng)用開發(fā)的未來(lái)。
原文標(biāo)題:Comparison Between Flutter vs. React Native for Mobile App Development,作者:vibha Pareek
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】















 
 
 













 
 
 
 