如果你想要開發一款App,那麼選用什麼技術一定是你首要考慮的問題。其次採用什麼語言也是需要考慮的。是使用Java,還是Kotlin。是使用object-c,還是採用Swift。是原生開發還是混生開發,這些問題都是我們在開發App之前需要深思熟慮的。
flutter vs react native
如果我們想要進行跨平臺開發,那麼Flutter和React Native一定是我們最優先考慮的。因為目前看來,Flutter和React Native的運行效率是那些混生開發無法比擬的,因此它們就是當下最適合跨平臺開發的技術。
react是2015年發布的,flutter是2018年發布的,因此,目前react的社區是比flutter的社區更強大些。不過在亞洲地區,flutter還是有著很大的用戶社區的,似乎谷歌的產品在亞洲都有著不錯的口碑。
React Native的開發語言是JavaScript,因此如果你是前端開發人員,並且有接觸過react框架的話,那麼react native的開發對你來說會變得非常容易上手。
Flutter採用的是Dart語言,Dart是面向對象的、類定義的、單繼承的語言,Dart2是強類型的語言,對於物聯網,移動端開發非常適合,而且Dart語言上手也相對比較容易。
前面我們提到React Native是使用JavaScript開發的,因此上手起來會比較容易。Flutter是採用dart語言開發,因此開發之前,我們需要先學習下這個語言,相比較而言,React 比Flutter入手更快一些。
無論是React Native和Flutter都是支持熱加載的,這對於我們平時的開發調試是非常友好的,我們可以所改即所得。
flutter
React Native編寫之後會打包成bundle文件,Flutter會直接生成二進位文件,不過兩者的開發都需要android和ios jdk的支持才行。
在理論上 Flutter 的設計性能是強於 React Native 的,這是框架設計的理念導致的,Flutter 在少了 OEM Widget 之後,直接與 CPU / GPU 交互的特性,決定了它先天性能的優勢。
react native
不過React Native相比較ionic等混生應用,還是有著出色的性能體驗的。
Flutter採用一切皆widget思想,所有的一切都是可以組件化的,非常適合定製跨平臺組件。也就是說使用Flutter可以一份代碼可以讓android,和ios有著一樣的用戶UI。
Recat Native採用的是使用原生UI繪製,有些時候如果我們想要擁有一樣的用戶UX,我們可能需要使用第三方插件才能實現。
目前來看,React Native仍然佔據著大部分市場,而且和Flutter相比,它的坑可能更少些,不過從未來來看,作為依靠android爸爸的Flutter會更有發展前途。