GDD 2018 上海 技術分享

Dragon-Boat發表於2018-09-26

GDD 2018 圓滿結束,總結一下我在GDD之旅中兩天的所見所聞。

行程安排

GDD 這次時間安排的相對緊湊。主會場和分會場不少時間段都同時開展演講,因此有意識的安排好自己的行程,對參加演講十分有幫助,另外也可以也會根據現場情況臨時調整安排。會前我根據GDD 官方的日程表,選擇了一些自己感興趣的topic,從機器學習的TensorFlow、Flutter、Web,從技術性講演和商業講演,都有所涉及,突出一個廣字。事實證明,這種選擇並非正確,很多高大上的標題,不一定有實質性的幹活。反而是分會場的一些場次,技術性內容比較強。

GDD 2018 上海 技術分享

總體概要

GDD本次主要設計的主題如下,總體來說和Google IO保持一致。自從Google的重心從 『Mobile First』轉移到『AI First』後,Android的日子可謂一天不如一天。從整個會議安排可以發現,TensorFlow的場次和重心都遠大於Android,做為一個Android 開發者,可謂是唏噓不已。

GDD 2018 上海 技術分享
如果不考慮一些技術細節的探討,整個GDD的感覺就像一位知乎老哥說所的:

  • TensorFlow 很NB 你們快來用
  • ARCore 很NB 你們快來用
  • Firebase 很NB 你們用不了
  • Flutter 很NB 你看這麼多大廠都在用

TensorFlow Lite

相比於TensorFlow,我對TensorFlow Lite更為感興趣。可能和從事客戶端開發有關,對於AI在客戶端的應用場景的探索,我認為非常的有價值。特別是現在客戶端的計算能力越來越強,和AI的結合可謂是如虎添翼,實際上,2018年不少手機廠商都在新裝置上搭載了智慧技術,不管是AI排程、場景識別,或許還有AI跑分?

GDD上,關於TensorFlow Lite的部分,有阿里的閒魚、網易的有道和騰訊的騰訊視訊參與。總的來說,對閒魚和網易有道印象比較深刻。

GDD 2018 上海 技術分享
閒魚在TensorFlow Lite在客戶端的應用上,做了許多探索,特別是一些安全性和動態化方面,都比較具有實際的落地場景,比如利用AI識別的視訊封面關鍵幀處理、租房中的只能標籤處理。

GDD 2018 上海 技術分享

GDD 2018 上海 技術分享
視訊封面幀的選取,閒魚提到,一開始是使用規則打分的方式來評比。建立一套規則,比如幀影象是否模糊、是否花屏等等,規則的涵蓋面很大程度上決定了最後選擇的效果。如果利用AI來處理,相當於是圖片識別和訓練,理論上,只要有足夠多的素材,可以做到最好的結果分類。另一方面,TensorFlow Lite有一個很棒的特性是,可以在服務端訓練得到的TensorFlow模型來轉化為TensorFlow Lite模型,閒魚在動態化上已經有自己的一套方案,那麼對線上出現的問題,就很容易通過收集問題素材--訓練模型--動態更新模型來修復。

Flutter

Flutter做為Google的一套多端UI框架,感覺在這次GDD上也很熱門。演講者提到,Flutter已經成為Github上活躍排名前Top 50.

GDD 2018 上海 技術分享
我仔細看了下這個表,vue超過了react,還有lantern,感覺故事很多。 Flutter在宣傳時,就提到過,在低端裝置上也能達到60fps的渲染效果。之前一直覺得不理解:Flutter程式碼最終還是要轉化成native程式碼執行,怎麼就能超過native本身的效能?

GDD 2018 上海 技術分享
從演講的稿子來看,大致是Flutter SDK中有自己的Skia繪圖引擎,並持續對其進行優化迭代。舊裝置在不能更新到最新的系統時,圖形引擎是無法更新的,而Flutter此時的優勢就很好的體現出來。另外,Flutter基於Dart來描述Ui,可能Dart語言對C/C++層的呼叫也會比java來的更為優秀,但想來比起OC來應該沒有優勢?會場時,有聽到同學問Flutter和RN的比較,其實Flutter效能比RN好,但是目前不支援熱更新,兩者的優勢路不在一起,但是個人感覺RN坑多,Flutter還沒入坑(可能準備踩踩)。

PS: 現場和閒魚Flutter大佬聊天瞭解到,在Android端,Flutter想做熱更新很簡單,可以通過替換Flutter編譯的產物來實現,但是ios部分由於系統限制則不行。

另外一個讓我覺得很驚豔的是Flutter的除錯工具和方法:

GDD 2018 上海 技術分享
上圖可能看的不是很清楚,也不是動態的。現場演示的時候,除錯工具是可以逐行執行底層程式碼,想象的效果是:你繪製的圖形,是一點一點出現的,因此可以非常細緻的去排查效能問題和UI渲染問題,很酷。

Web技術

Web技術應該有不少場次,不過一開始沒有把這個主題做為重點,只聽了一場關於『event loop in web』,但是效果出奇的好。甚至覺得這場次是兩天GDD中綜合性最好的,不僅僅是指技術性,還有通俗性。做為非前端開發,對於瀏覽器中的event loop知識瞭解的不多,所以聽起來感覺很奇妙,可能對於前端同學來說,是比較基礎的知識。 這部分內容用gif來展示是最好的,但是條件有限:

GDD 2018 上海 技術分享
基本上圍繞這個圖來說,談論了task、microtask、animation callback的內容,很形象易懂。即使是全英文演講,也能聽得懂。為此,我在twitter上聯絡了演講者,他提供了之前在新加坡演講時的視訊,基本一致lol,有條件可以前往觀看。

www.youtube.com/watch?v=cCO…

黑科技之ui2Code -- 閒魚

沒錯,又是閒魚帶來的黑科技。號稱可以將視覺稿或者ui截圖,直接轉化成程式碼的神奇能力!簡直是客戶端開發者失業的訊號!前段時間還有微軟的Sketch2Code。不過閒魚的這個黑科技,是真的具備一定的可用性,他們在官方微訊號中,也提到,已經在一些頁面中開始使用,希望早日開源造化大眾(失業flag) 演示視訊如下:

v.qq.com/x/page/s070…

End

GDD 2018 上海 技術分享

GDD 2018 上海 技術分享

相關文章