今天,在Flutter Live上,Google宣佈Flutter 1.0正式發佈。此外,谷歌還宣佈和Square等公司合作開發一系列新的第三方集成工具和一些新功能,目的是使Flutter與現有應用程序的集成變得更加容易。
Flutter的使用現狀
自Flutter在2017年I/O大會推出以來,就吸引了很多移動開發者的目光。今年6月底,Flutter預覽版發佈的時候,Google宣佈與阿里巴巴的閒魚團隊在 Flutter上合作,標誌着 Flutter 進入了一個新階段。
而目前在Google內部,Flutter已經用於各種各樣的產品中,如Google Ads的iOS和Android版應用已經用了Flutter框架。
據Google的不完全統計,目前,Abbey Road Studios、阿里巴巴、Capital One、Groupon、Hamilton、京東、Philips Hue、Reflectly和騰訊等公司都已經使用Flutter進行開發。
Flutter的重要特性
-
Flutter可以讓你構建漂亮的應用程序,它提供了很多widgets,可以實現Material Design。
-
速度快,它基於 Skia 2D 硬件加速圖形引擎,該引擎也同樣用在了 Chrome 和 Android 平臺。
-
高效,Flutter 引入了熱重載,這個革命性的特性可以讓移動開發者和設計師們實時迭代應用程序,據瞭解,這個特性讓開發效率提升了3倍。
-
開放,Flutter 是一個基於 BSD-style 許可的開源項目,全球範圍內數百位開發者在爲它貢獻代碼。
更多Flutter詳細的性能可戳此文:爲什麼說Flutter是革命性的?
Flutter 1.0的新功能
自第一個測試版以來,Google一直致力於爲Flutter添加新功能和改進。特別是通過新的小部件完善了對像iOS應用程序的支持,增加了對近二十種Firebase服務的支持,並致力於提高性能和減少Flutter應用程序的大小。他們還根據社區的反饋解決了數千個問題。
Dart 2.1
Flutter包含了最新版本的Dart 2.1,更小的代碼體積,更快的類型檢查,以及更好的類型錯誤可用性。Dart 2.1還提供了新的語言特性,可在構建用戶體驗時提高效率。
1.0版本的側重點是錯誤修復和保持穩定性,不過Google還推出了兩個主要預覽新功能,開發人員可以在預覽模式下試用,預計將在2019年2月版本中發佈:添加到App和平臺視圖。
添加到App
在剛開始構建Flutter時,Google專注於提升從頭開始構建新應用程序的效率。當然,並不是每個人都有機會從頭開始構建新應用。一些大公司希望可以將Flutter用於開發現有應用程序中的新功能,或者將現有應用程序分階段切換到Flutter。
Flutter的架構可以很好地支持這種模型:畢竟每個Flutter應用程序都包含了一個Android和iOS容器。Google也一直在努力讓用戶可以通過更新現有應用程序的模板和工具來逐步採用Flutter。他們讓在Flutter和宿主代碼之間共享資產變得更容易。Google還重新設計了工具,以便在不啓動調試器的情況下輕鬆連接到現有的Flutter進程。
平臺視圖
添加到App是一種將Flutter逐漸引入到現有應用程序的方法,但有時需要反過來將一個Android或iPhone平臺控件嵌入到Flutter應用程序中。
所以Google引入了平臺視圖小部件(AndroidView和UiKitView),讓你可以在每個平臺上嵌入這些東西。幾個月來Google一直在預覽對Android的支持,現在正在擴展到對iOS的支持,並開始添加基於這些小部件的Google Maps和WebView等插件。
與其他組件一樣,平臺視圖小部件可用於組合模型,這意味着你可以將它們與其他Flutter內容集成在一起。例如,在上面的屏幕截圖中,右下角的浮動操作按鈕是Flutter小部件,背景顏色爲50%alpha。這充分展示了Flutter獨特的架構優勢。
超越移動的Flutter
到目前爲止,Flutter的主要目標是iOS和Android。然而,Google對Flutter的願景是從移動設備擴展到更廣泛的平臺上。實際上,Flutter從一開始就被設計爲可移植的UI工具包,靈活到可以被用在任何基於像素繪製的地方。
其中的一些工作已經在進行中。Flutter Desktop Embedding是一個還處在早期階段的項目,它將Flutter引入到桌面操作系統,包括Windows、MacOS和Linux。他們最近還發布了在Raspberry Pi上使用Flutter的相關細節,演示了Flutter對嵌入式設備的支持。
Hummingbird是基於Web的一個Flutter運行時實現,它利用Dart將Flutter代碼編譯爲本機ARM代碼或JavaScript。這使得Flutter代碼可以不經修改就能在Web上運行。
當然,移動仍然是Google的當務之急,你可以期待在未來幾個月內看到他們對這些核心移動方案的巨大投入。
結論
隨着Flutter 1.0的發佈,除了現有的beta、dev和master頻道之外,Google還建立了一個新的“stable”頻道,stable頻道的更新頻率低於其他頻道,他們預計將按季度更新stable頻道。
相關鏈接
Flutter 1.0地址:https://flutter.io
代碼試驗:https://flutter.io/docs/codelabs
示例:https://flutter.io/docs/cookbook
相關視頻:https://flutter.io/docs/resources/videos
參考鏈接:
https://developers.googleblog.com/2018/12/flutter-10-googles-portable-ui-toolkit.html
更多內容,可關注前端之巔(ID:frontshow)