天天看點

Flutter the Future

flutter interact 2019在雙12的淩晨結束了,6個多小時的大會,每一分鐘都讓一個開發者感到驚豔。

flutter這一年的發展極其迅速,不僅成為github年度最受歡迎項目,就連隻有flutter使用的dart語言,在世界開發語言排行榜上也一舉獲得了500%的增長,成為年度增長率最高的開發語言。

國際慣例,先對本次大會進行下吹捧。

對于一門開發技術來說,toolchain的完善程度是衡量這門技術是否好用的重要标準,flutter的toolchain一直在不斷完善,這次新增的dart devtools工具,讓開發更加友善,它内含 widget 檢查器以及記憶體與cpu性能分析工具,而且優化後的日志功能在所有編輯器和ide中都能流暢運作。類似android中的profiler和layout inspector,但個人感覺比android的這些工具更加好用。

dartpad是一個web端的dart模拟工具,可以在網頁上輸入dart代碼并展示運作結果,這次更新後,dartpad已經可以支援flutter了,甚至可以直接在dartpad上進行flutter開發和效果預覽。

Flutter the Future

這是一個非常神奇的功能,這個功能有點類似c#的圖形化界面開發加上flutter的hot reload功能,在ide的預覽界面中,可以直接對ui進行修改,同時同步到裝置上。

Flutter the Future

layout explorer是dart devtools中的一個工具,這個工具更像是一個代碼診斷者,可以給你代碼中問題的原因和解決方案,同時,在layout explorer中修改後,可以直接同步代碼和界面。

Flutter the Future

作為一款跨平台開發架構,flutter一直積極的向android和ios的最新功能靠攏,新版本的flutter這次同樣是framework級别支援了ios的dark theme,省去了開發者對顔色的适配工作。

Flutter the Future

另外,cupertino widget庫也一直在更新,逐漸加入更多的ios設計風格元件,讓設計、開發能夠更加靈活。

Flutter the Future

原生應用于flutter混合開發,一直是原生開發者比較頭疼的一個問題,主要在于混合棧的管理問題,這次flutter的更新也重點優化了add to app的功能,讓原生開發可以更加友善的使用flutter module,不過這一點我還沒驗證過,不知道是否還存在之前的一些混編的問題。

同時,作為flutter的開發語言dart,這次也迎來了一次非常大的更新,其中有一點就是實作了拓展方法,與kotlin的拓展函數基本類似,這無疑是一個非常重要的更新,讓dart在成為一門非常現代化的語言之路上又近了一步。

Flutter the Future

相信這張圖已經可以完美解釋什麼叫真·跨平台了,不僅如此,flutter還可以多裝置同時調試,一套代碼,多個終端,目前為止,web端已經進入beta階段,macos也進入了alpha階段,相信很快大家就可以體驗到了。

Flutter the Future

另外,flutter還提到了一個實驗性技術,可以根據裝置直接選擇合适的ui進行展示,例如下面的例子,不同的裝置上展示的ui不同,且能自适應相應的布局,不過這個技術還在早期階段,後續的發展還不得而知。

Flutter the Future

這是一個社群工具,supernova簡單的說,就是設計師可以根據設計來将設計稿直接轉化為flutter code,具體還沒使用過。

Flutter the Future

rive就是那個釋出flare的公司,這次又放大招了,準備統一flutter動畫界,甚至已經相容lottie,而且在動畫中,直接支援了投影、内陰影、光暈、模糊和遮罩這些曾經讓開發者聞風喪膽的設計元素。

adobe xd和supernova類似,也是通過設計稿生成flutter代碼,聽上去就是一件很玄幻的事情,但是它确實做到了,隻不過不是像大家想象的那樣,它是通過導入設計稿後,選擇相應的圖層子產品,右鍵選擇生成的widget來進行轉換的。

Flutter the Future

上面寫的這些,隻是這次大會的冰山一角,用文字真的很難描述這些技術,希望大家能去看看回顧視訊,雖然時間很長,但相信大家看完一定會覺得非常有價值。

https://www.youtube.com/watch?v=9oemqgry5j8&t=655s

軟體開發沒有銀彈,隻有鋼彈 —— me

跨平台一直是一個很烏托邦的東西,大家一邊在追求着統一,一邊也在追求平台差異性,那麼怎麼才能在這種沖突中獲得統一呢,不同的跨平台方案給出了不同的選擇,但基本上都以失敗告終,而flutter的出發點,很完美的解決了這個問題——ui跨平台架構,從一開始,flutter的起點就是很正确的,我隻做ui跨平台,借助skia,很輕易的打通了各平台直接的隔閡,不得不說,實戰是高明之舉。

我從17年開始關注flutter,從18年開始投入大量的業餘時間關注flutter,見證了flutter的不斷成長,特别是19年,可以稱之為flutter元年,這一年的飛速發展,讓flutter已經逐漸開始獲得更多人的關注。

一個好的開發架構,必須包含:

完善的開發工具鍊支援

高效的開發效率

強大的社群環境

就目前而言,除了社群環境以外,其它兩點flutter已經基本完善了,而社群環境,是需要時間積累的,而flutter完全有這個能力獲得更多開發者的支援,社群環境的強大,相信也用不了多久。

18年我建了一個flutter開發群,沒多久就滿了,後來一直有人想要入群,我也因為懶沒有再拉群,這次大會之後,關注者越來越多了,是以這裡隻能再拉一個群了, 不過很快也超過200人了,隻能我收到邀請大家加入,是以,要加群的開發者,可以加我微信,私聊我說明加入flutter開發群,我的微信如下。

Flutter the Future

歡迎大家加入 flutter修仙指南 、flutter修仙指北 、 flutter修仙指東 、 flutter修仙指西 群

Flutter the Future