來吧!Flutter(2)-Flutter的基本概念

Andy Lu
Flutter Taipei
Published in
3 min readJun 5, 2020

--

Image by Free-Photos from Pixabay

基本概念

Flutter 是由 Google 開發的開源跨平台軟體開發平台,是以 Dart 作為開發語言。

在 Flutter 中,所有的的項目都是 Widget,Widget 就是建造使用者介面最基本的物件。

Widget 可以定義:

  • 按鈕、目錄…(架構元件)
  • 字型、顏色…(樣式元件)
  • 置中、填充(Padding)…(佈局相關)

另外,每一個 Widget 在使用者介面中,都是被宣告成不可變的,當某 Widget 內容需要更改,則 Flutter 會重新產生該 Widget 而不是只有更新數值。

而在 Flutter 框架中,已經有許多現成的 Widget,我們可以直接使用該 Widget,打造漂亮的 App,當然也可以自行建立 Widget 或是客製化已存在的 Widget。

Flutter 在編譯程式碼時,會利用 AOT(Ahead of Time) 方式來編譯,可以編譯出快速且可預測的本機代碼;另外在開發的時候,會利用 JIT(Just in Time) 方式來編譯,可以實現熱重載(hot reload)的效果。

Flutter的優點

  1. 建立 iOS 及 Android 的 App 只需要一個 Codebase。
  2. 支援熱重載:重載之後,畫面會停留在原本的頁面,這對於開發很有幫助。
  3. 在 Flutter SDK 中,包含了大量 Android 風格(Material Design)、iOS 風格(Cupertino)的 Widget,可以輕鬆建立出漂亮的 App。
  4. 輕鬆建立動畫效果,Flutter 可以自動補上補間動畫,產生出流暢的動畫。
  5. Flutter 是一個多重編程範式(Multi-paradigm )的環境,裡面包含著這十幾年來開發出的編程技術。

Flutter的缺點

  1. Flutter 不是萬能的,有些時候還是需要直接去 Android 或是 iOS 寫,所以還是需要對 Android/iOS 要有些瞭解才有辦法完成。(美夢破滅)
  2. 不像其他將 View、View Controller 分離的框架,Flutter 只有 Widget,一不小心就會寫出落落長的程式碼。
  3. 單一執行緒:是的,Dart 只有支援單一執行緒。
  4. App 檔案太大,相較於 native language 編譯出來的 App,檔案大了許多。

那麼,這邊簡單介紹一下 Flutter,如果有問題,歡迎跟我一起討論研究喔,

謝謝各位。

--

--

Andy Lu
Flutter Taipei

Android/Flutter developer, Kotlin Expert, like to learn and share.