做者:閒魚技術——宗心android
一年一度的google開發者大會2018上,git
flutter以什麼樣的形態展示在你們面前,1.0版本什麼時候發佈?github
有哪些應用場景?性能的表現如何?web
國內的flutter開發者生態又是怎樣的?api
做爲google合做夥伴的閒魚展臺有哪些趣事?你們問了哪些問題?性能優化
咱們正在在大會結束後5個小時內的返杭路上敲下這段文字,真誠爲您分享。app
google開發者大會於今年9月20日在上海舉辦,閒魚團隊做爲google的合做夥伴參加此次會議。我參會前就收到邀約要寫一下此次GDD的一些見聞和見解,所以有了這篇文章,一些我的見解和感覺,供你們參考。但願或多或少能幫到你們。因爲我在團隊負責flutter的總體落地,所以主要關注了flutter相關的議題。 函數
一個是工程側咱們關注的在hybrid場景下更方便的hot reload方案,目前在純flutter工程的場景下,hot reload的支持相對完備。但在hybrid場景下hot reload一直不太方便,雖然閒魚團隊整理了一些在這個場景下的須要使用的命令行工具,但業內暫時沒有什麼通用的方案,flutter團隊也意識到了這一點,所以他們此次的showcase中展現了android studio上的attach功能,當hybrid工程使用android studio啓動native代碼後,就能夠自動被attach上,從而能夠進行後續的debug和hot reload能力,這部分功能在下圖上能夠看到一些端倪,感興趣的同窗能夠本身編一個studio plugin用一下。工具
另外一個是flutter內嵌native的一些可能的方案。目前在flutter的master分支上,你們能夠關注下platform_views.dart中的RenderAndroidView這個類,基本原理是渲染部分仍然使用texture的機制進行UI部分的繪製,事件的部分的實現是將Dart側的事件組裝成AndroidMotionEvent經過systemchannel再回傳給Android的nativeView,這部分iOS在github上暫時尚未實現,但理論上應該是一致的,目前代碼側也找到了一些猜想的依據。 佈局
咱們以前有嘗試在低端機上進行flutter和native的性能測試,並無系統的理解爲何flutter的性能會更好,通過第一天的最後兩個topic,有了一些啓發。從佈局的角度出發,flutter整個的佈局體系相較於iOS和android的佈局體系有更少的計算,另外skia底層相較於android自帶的skia也有較大的優化,針對於跟渲染相關的底層api的調用次數也有明顯的降低。兩個topic在代碼的編寫上也給出了一些建議,針對widget的setState刷新的範圍越少,性能越好,另外應該較少調用save Layer相關的Api,以提高底層渲染的效率。因爲兩個topic都只有30分鐘,不少細節沒有細講,後續期待他們的ppt放出來。
flutter發佈pre release 2,並有可能年末發佈1.0的版本,就我本身在官網github的瞭解來看,最近幾個版本主要都是在補齊iOS design風格的一些控件,engine側改的並很少。另外一方面,flutter團隊意識到,若是flutter須要後續在衆多app內落地,hybrid場景(flutter+Native)不可避免。在這幾個議題的showcase中,國內的幾家大公司使用的全都是hybrid的場景。所以咱們纔會看到,Matt Sullivan在第一個議題花了大量篇幅教你們如何以module的形式在已有app內引入flutter的代碼,後續經過新的flutterplugin提供hybrid場景下更加方便的hot reload能力。這個過程當中我眼尖又發現了裏面存在flutter嵌webview的showcase,一切都證實,後續flutter會更加完善hybrid場景的能力,讓更多但願接入的app能夠用更低的成本接入已有app進行開發和嘗試,相信這對社區的繁榮會有較大的推進做用。
在flutter官方的渠道中能看到除了閒魚團隊,還有一些其餘的大廠也在使用flutter進行應用。在線下交流過程當中,發現了很是多的團隊或多或少在嘗試應用flutter。此次跟滴滴,拼多多,百度,以及阿里系的不少同窗都有交流,固然也有不少創業團隊在觀望。這個過程當中有但願嘗試直接構建新app的,也有在老app中增長功能的,總之,此次發現了不少以前沒有發現的團隊在跟進,作有針對性的研究和改造。
在這個趨勢下,我更多的思考的是閒魚做爲flutter社區的領頭羊,能給社區帶來什麼。一直一來咱們長期穩定的對flutter社區輸出一些文章,講解咱們的解決方案和flutter相關的底層原理。後續個人但願是,能抽象化咱們的解決方案貢獻給社區,讓更多的同窗能夠受益。相信這部分在後續的幾個月應該會有一些產出給到你們,你們敬請期待。
因爲今年咱們是google的合做夥伴,所以給了團隊一個專門的展位,很是感謝google的顧仁民同窗幫忙,展位安排的很是棒。
中秋到來之際,先祝你們中秋節快樂,然而GDD的最後一天,人在囧途,因爲中秋節在即,買不到高鐵票,只能綠皮火車站回杭州,大家如今看到的內容是我坐在綠皮火車過道寫下的,看到這裏的老鐵,閒魚團隊長期招募flutter的研發同窗,一塊兒用技術改變世界,此時此刻非你莫屬,
詳詢guicai.gxy@alibaba-inc.com