2020年爲什麼選擇Flutter?

Flutter 是什麼?

Flutter 是來自谷歌的一個出色的跨平臺框架,可用來爲移動、桌面和 Web 平臺構建應用程序。它於 2018 年 12 月正式發佈,僅用了不到一年的時間就在 GitHub 和 StackOverflow 上獲得了比 React Native 更高的知名度。所有這些熱度背後都是有一個很好的理由來支撐的,這篇文章就會具體解釋這個原因。

爲什麼又要出一個框架?

當我向軟件產業的從業者介紹 Flutter 時,他們通常會問我的第一個問題是“爲什麼有人會用它,而不是 React Native 或者其他 SDK 呢?”答案很簡單:它在所有方面都比其他任何競爭者都更加出色。當然人們想要聽更詳細的解釋,這是很自然的事情。

除非有人找出了更好的方法,否則我們往往看不到自己手頭工具和資源的侷限;即便有人拿出了更好的選擇,我們自己的偏見和先入爲主的觀念也可能讓我們難以擺脫“舊路子”,很難去擁抱更強大、更靈活的事物。軟件這個領域中也是這樣的。比如說,只用過 PHP 的人們會爭辯說 PHP 是如此偉大的語言,列出一二三四條理由,可他們並不瞭解除了簡單的 Web 服務器以外,還存在着龐大的由不同設備和系統組成的生態系統。並非所有事物都是一個網站,所以我強烈支持業界使用專門爲應用程序開發而打造的工具集,而不是從前端 Web 生態系統移植而來的工具。

Flutter 的優勢

與其他選項相比,Flutter 有着一些明顯的優勢。這些優勢融入了基礎語言和 SDK 的設計中,以解決其他技術的常見問題和缺陷。想要知道你爲什麼要爲下一個項目選擇 Flutter?或者當你擔任某種領導角色時,爲什麼應該允許開發人員使用它?下面簡單分析並列出幾條理由:

1.Dart 語言

很多語言都在標準化的泥潭中苦苦掙扎,搞出來很多不同的版本,各個版本的語言特性也各自不同(許多開發人員都分不清它們之間的區別);相比之下,Dart 語言從一開始就被設計爲構建客戶端應用程序的絕佳工具,並已針對 UI 開發工作做了調整和優化。這裏沒有互相競爭的標準,不會胡亂拼接一些本應是行業標準的語言特性,沒有奇怪的語言怪癖或幾十種互相之間完全不兼容的設計模式,也不需要額外堆砌一大幫本應是標準特性的功能(Redux 這個那個?)。

Dart 有着乾淨且極爲強大的語法,促進且鼓勵了強大的應用程序架構和設計,更不用說團隊一致性、標準化、長壽命、易於維護,以及許多現有的跨平臺工具往往缺失的特性。它與其他流行語言(例如 C#、Java 和 TypeScript)相似,這意味着有相關經驗的開發人員很容易快速上手並開始使用 Dart。

2. 開發人員的廣泛採用

在短短的一年時間裏,Flutter 在 GitHub 和 StackOverflow 上都取得了比 React Native(之前最流行的框架)更高的流行度。對你的應用程序來說,這意味着有更多的資源可供學習,可以找到更多熟練的開發人員來開發你的應用,並且技術本身的迭代速度更快(也就是說這項技術將更快地成長和成熟,不會像 React Native 那樣的技術一樣多年以來基本上保持不變)。

在這裏插入圖片描述

Stack Overflow Trends:Flutter與React Native的對比

在上面這張 Stack Overflow 趨勢圖中,我們可以看到 Flutter 是怎樣脫穎而出並取得領先地位的。這樣的趨勢很可能會持續下去,這意味着遲早我們會看到,願意並能夠使用其他技術來支持跨平臺應用程序的開發人員逐漸變得愈加稀少了。這樣的變化往往需要很長時間(許多年),但在軟件開發社區中是屢次出現的情況。

3. 它特別快

Flutter 應用程序可編譯爲原生二進制文件,這些文件依賴於 C/C++ 內置的圖形和渲染引擎,因此可生成非常快速且性能出衆的應用程序。Flutter 應用程序能夠在大多數設備上實現穩定的 60fps 輸出,並在支持高刷新率的設備上實現令人難以置信的 120fps 幀率。許多開發人員已經注意到,Flutter 的性能表現與其他跨平臺框架相比有了極大的提升,這也是移動應用開發人員迅速而廣泛地採用這一技術的一項驅動力。確實,在性能表現和流暢的渲染方面,真正的原生構建應用是很難被擊敗的;但在跨平臺框架領域,Flutter 在這些指標的競爭中具有明顯的優勢。

4. 它相對易學

雖然可以說並不存在哪種真正的生產級語言或工具包是真的易於學習的,但是有的語言具有清晰的文檔和適用於大量用例的標準設計模式,有的語言只有參差不齊的文檔,用迥異的途徑來實現本該非常簡單明瞭的任務,這些選擇之間的學習難易度差異是非常大的。

除了性能表現之外,Flutter 之所以獲得如此廣泛的使用率,另一大因素就是它提供的出色文檔和可供參考的大批高質量示例。對於有興趣學習新的框架、工具包或語言的開發人員來說,這一切都讓 Flutter 與衆不同。對於經驗豐富的程序員而言這一點尤其重要,因爲他們更有可能發現語言或工具包本身的設計問題。有着幾十年編程經驗的老手在學習某些技術文檔不夠完善,或缺乏基本任務演示的技術時,會很快感到沮喪頭痛。Flutter 因其清晰的文檔資料以及由新手和專家組成的支持社區而倍受讚譽,社區成員經常渴望分享他們的經驗,並提供設計出色、開發模式出衆的可靠實踐示例,爲他人帶去福音。一般來說,易學易用,面向大衆的技術往往沒有那麼重的精英主義氛圍,所以對新人也更加友好。

5. 它的設計精良

Flutter 是基於出色的語言(Dart)和快速的高性能渲染引擎(Skia)從頭開始設計出來的。由於選擇了這樣的設計路線,Flutter 就用不着花費多年時間來重走別人走過的那些坑,並且從設計之初就做出了很多優秀的決策。

這樣的路線誕生了一個高水平的框架,能鼓勵不同技能水平的開發人員基於良好的設計模式和最佳實踐來構建應用,而不會因爲標準衝突,或糟糕的語言實踐帶來的內部技術債(例如糟糕的 JavaScript,大多數開發人員都會認爲這是一場噩夢)而頭痛不已。。擁有多年經驗,能熟練跨各種設備構建應用程序的開發人員開始上手 Flutter 幾分鐘時間,就能意識到 Flutter 帶來的明顯優勢;新手也不太容易陷入困境,因爲互聯網上有很多很棒的示例可以用來學習最佳實踐。

結論

Flutter 是完全從新設計的,使開發人員能夠在夠短的時間內創建出高性能的應用程序,它避免了許多甚至難以用語言表達的問題,並提供了一個出色的開發平臺,值得人們的大力讚賞。體驗是很難用語言來表達的,但是我希望本文能爲你提供一些見解,讓你瞭解爲什麼有經驗的開發人員會選擇 Flutter 來輕鬆構建未來的項目。

感謝你的閱讀並祝你下一個項目順利!

文章轉載於:【前端之巔】

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章