好啦,各位親愛的讀者朋友們,今天晚上又和大家見面了。那麼今天晚上小凡接着爲大家來講講Flutter。
今天主要從下面三個方面來講講Flutter:
- Flutter 特點
- Flutter 框架結構
- Flutter社區活躍度和趨勢
1:Flutter 特點
Flutter 是一個框架,基於 Dart 語言編寫,語言風格和 React 很像。
Flutter 裏幾乎都是採用組件的形式進行構建應用和功能的,組件採用現代響應式框架構建,中心思想是用組件(Widget)構建你的 UI。
一切對象都是組件,Flutter 可以說是全新的技術和平臺框架,學習和開發起來並不難,開發應用的效率也相對於原生提升了很多,並且運行速度和原生幾乎沒太大差別,遠遠高於 HTML 的應用的渲染速度。Flutter 的引擎使用 C++ 開發,基礎庫由 Dart 編寫,提供了用 Flutter 構建應用所需的基本的類和函數。
我們一起來看下 Flutter 官方的架構圖:
( Flutter 官方架構圖 - 來自 Flutter 官方網站 )
可以看出核心引擎是使用 C++ 編寫,上層採用 Dart 語言編寫的 SDK,採用 React 風格組件化方式。並且提供了 Material 和 Cupertino 兩套風格的 UI Widget,使用起來非常方便。
那麼接下來我們詳細瞭解下 Flutter 的特點:
- Flutter 的一個重要的特點就是速度快。它基於 Skia 2D 硬件加速圖形引擎,該引擎也同樣用在了 Chrome 和 Android 平臺。媲美原生應用的速度,讓用戶體驗和流暢度做到更好。Flutter 的代碼基於 Dart 平臺,可以被編譯成 iOS 和 Android 平臺上 32 位和 64 位的 ARM 代碼。
- Flutter 非常高效。Flutter 引入了 Stateful Hot Reload(保持應用狀態的熱重載),這個革命性的新特性可以讓移動開發者和設計師們時時快速預覽應用程序。通過 Stateful Hot Reload,無需重新啓動應用,就可以在程序運行的時候直接看到代碼修改之後的效果。在Flutter官方的用戶反饋中,很多開發者表示這個特性使得開發效率提升了三倍以上。
- Flutter 是開放的、開源的。Flutter 是一個基於 BSD-style 許可的開源項目,全球數百位開發者在爲Flutter貢獻代碼。Flutter 的插件生態系統平臺也已經非常的豐富,有數千款插件已經發布,避免了重複造輪子。由於 Flutter 應用程序使用標準的 Android 和 iOS 的編譯打包工具 (build tools),因此它的開放性還體現在我們可以使用原生開發資源和技術。比如,我們依然可以在 Android 上使用 Kotlin 或者 Java,在 IOS 上使用 Swift 或者 Objective-C 來寫邏輯或者界面,使得可以Flutter和原生混合開發。
- Flutter 提供了兩套 UI Widget 風格庫:Material 和 Cupertino,這使得我們可以方便的快速構建 Android 和 iOS 不同平臺風格的應用,大大提升了開發效率。組件化開發風格也使得繪製UI的效率大大提升,學習成本也降低了很多。
- Flutter 支持多種開發工具進行開發,比如 Visual Studio Code、Android Studio、IntelliJ 或其他開發工具,只需要安裝相關的插件即可。
Visual Studio Code 預覽
Google Flutter 團隊官方也宣佈,Flutter Web SDK(Hummingbird)已經在研發中,我們先來簡單的看下其架構:
Flutter Web SDK(Hummingbird)
目前在 Google I/O 2019 大會當天 Flutter Web SDK 已經正式發佈,而且開發出的 Web 性能非常高。
2:Flutter 社區
看一個技術和語言的發展情況和支持情況看它的相關資源、社區等也非常重要。Flutter 技術已經被很多大公司採用,具體案例列表,可以在官方查看:flutter.dev/showcase 或https://itsallwidgets.com。
ShowCase
(來自 Flutter 官方:https://flutter.dev/showcase )我們看下 Flutter 官方 GitHub 的更新情況:
Flutter 官方 Github
開發者平時可以關注 Github 的更新動態,官方更新頻率也是很快的,這點非常好,也令關注者和使用者對 Flutter 的未來更加有信心,因爲社區和生態、更新頻率對開發者非常的有幫助。 遇到問題除了使用搜索引擎搜索外,也可以在官方 GitHub 的 Issues 裏進行搜索或者提問。
我們再看下官方版本的更新頻率:
Flutter官方 Github
Flutter官方 Github
除了這些以外,我們還可以在官方的倉庫進行查找第三方插件庫進行使用:https://pub.dartlang.org/。
Flutter 官方 Pub
裏面有非常多的插件庫供我們使用,還配備有相關文檔,當然我們也可以提交自己的開源插件庫到上面。
Flutter 官方 Pub
3:Flutter 未來規劃
就目前而言,Flutter 的首要目標平臺是 iOS 和 Android,但 Flutter官方團隊也在不斷探索將 Flutter 拓展到手機端以外的更多平臺上,如 Web、PC、嵌入式等平臺。實現真正的跨平臺:一套代碼規範多平臺運行。
事實上,Flutter 的設計理念就是希望它可以作爲一個靈活且便攜的 UI 工具包,以適應各種需要繪製屏幕內容的平臺。
其中 Flutter 的一些進展已經公佈,Flutter Desktop Embedding(google/flutter-desktop-embedding )就是其中的一個,這是一個使 Flutter 運行於 macOS、Linux 和 Windows 等桌面操作系統的項目。前不久,官方嘗試在樹莓派平臺運行了 Flutter 應用,以非正式和探索的形式向用戶展示 Flutter 是有可能運行在一些沒有完整桌面環境的小型設備中的。
除了這些,還有 Flutter Web(Hummingbird)。Hummingbird 是一個基於 Web 實現的 Flutter 運行時環境。它利用了 Dart 語言能被編譯成 JavaScript 的特性。這個項目讓 Flutter 應用程序能夠無需改動就運行在標準 Web 平臺,目前還在開發測試中:
Hummingbird
Flutter 團隊也於 2019 年 1 月 27日發佈了 2019 年 Flutter 規劃路線。
以下幾點 Flutter 今年會着重關注:
- 核心和基礎
- 易用性
- 生態系統
- 移動端之外的支持
- 動態更新
- 工具鏈
當然,我們也可以提一些反饋給官方:
- 通過 Issues:flutter/issues/new/choose
- 郵件羣組:flutter-dev
Flutter 目前有四個版本: master、dev、beta 和 stable,質量和穩定性從前向後依次遞增,發佈速度當然也會是依次相對放緩。
官方計劃每個月發佈一個 beta 版本,這個發佈通常會是在月初,全年會發布四個較大的正式 (stable) 版本。在生產環境裏,還是建議大家使用 Flutter 的正式版本。
這個是官方的版本發佈流程:flutter/wiki/Release-process
如果大家對 Flutter 每個月將會發布什麼感興趣的話,可以在官方 GitHub 上的 milestones 頁面查看:flutter/milestones
Flutter Future
( 圖片來自 Google 開發者官方 )
總結
Flutter 現已進入 GitHub Top 20 軟件庫,通過這門課程希望大家可以對 Flutter 進一步瞭解,並且對它充滿信心,也希望大家有所收穫。
Flutter 成爲未來主流跨平臺開發框架技術已經勢在必行,它開發高效、性能優秀、更新頻率快、插件三方庫支持多、Google 團隊的技術支持給力、一套代碼多終端運行,這些都非常的吸引人。
大家可以:
- 去官方 GitHub 查看官方動態,或者去 Flutter Pub 查看下倉庫的使用方法,以便對 Flutter 有更加深入的瞭解。
- 熟悉 Flutter 特點和未來趨勢,做好後續課程的學習和開發的準備。
入門 Flutter,掌握未來技術主流的主動權!