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