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