Google io 2017

主軸雖然是Google推出的AI相關服務,但我自己的焦點還是放在Android跟Flutter,Android的部分這次有支援的新語言Kotlin,如果之前沒玩過Scala我應該也會很瘋狂,但是有玩過就覺得還好,雖然他比Scala好上手,不同語言的學習還是有它的成本的,但長期來說我是看好Kotlin的,我的觀點是因為Java太穩定太無聊了,所以需要一些新東西,而Kotlin出現在這個時間點,剛好可以給沉悶已久的Java世界帶來一些新趣味,但Kotlin要真的強大起來可能要等,Kotlin to JavaScript跟Kotlin to Native補上,但是到那個時候說不定Flutter早就大紅大紫人們早就忘了Kotlin也不一定,當然也有可能情況是反過來啦XD。

再來有興趣的點是Instant App,可能大家還不懂這是什麼,簡單來說它可以讓Android App變成跟Web一樣,只下載當時所呈現畫面功能所需要的模組,讓你馬上就可以試用功能,一樣是給對方一個連結就可以達成,而對方也不需要先去下載App,就是Web的擴散,但用起來的體驗卻是App,假設未來可以其他平台達成有多好,比較美中不足的是只有Chrome OS整合Android,如果Chrome也有整合Android的話,這整個跨平台帶起來會是多可怕的體驗啊?

Architecture Components也值得一看,本質上就是以MVVM架構為底,補上一些更好用的Library,沒想到google會跳下來做這個。

最後是重頭戲Flutter,這次的介紹讓我看清楚他真正的威力,基本上可以把它想像成cordova的模式(注意實作上有不同,這邊只是抽象概念),UI從用Web的做法變成用flutter的做法,而跟Android/iOS的互動就跟cordova一樣透過Plugin的方式去呼叫,這次介紹的範例,在選擇圖片或拍照的部分就是透過Plugin的方式在各自平台實作,沒了效能問題&只需要補通用Plugin這模式我個人覺得非常成功,因為他不像ReactNative,要共用View你就要兩邊一起實作,但View有很大的層面會需要客製化,要達成就要ReactNative跟Android/iOS能夠緊密合作才行,跟採用flutter/cordova還是有一段差距的,總之自己未來練習專案絕對是會衝flutter的!未來發展如何讓我們拭目以待!

留言

  1. 作者已經移除這則留言。

    回覆刪除
  2. 您好,我最近也在找可以全面開發 Web、Native Mobile App 的新方案,考慮了很多優秀的方案後,決定也要在 AngularDart 上下賭注,雖然主流的 TypeScript、NativeScript 等搭配也很吸引人,但看著 Google 在 AdWords 上大膽採用了 Dart 開發新的功能,以及 Fuchsia OS 的發表後,對於 Dart 未來實用領域及影響力增加了不少信心。

    想請問您目前是否有使用 Dart 在實際上線的專案經驗?成效如何?開發團隊的反應是否正面?未來是否有繼續使用 Dart 在何領域應用的開發計畫?

    目前台灣關注在 Dart 的人實在稀少,希望有機會能和有相同志趣的高手多交流。

    回覆刪除
    回覆
    1. 你好,歡迎交流

      我主要是用在自己的練習專案,成效?可能要看你指的是哪方面?目前規劃是web試產品水溫,如果要優化再轉flutter的方向。

      台灣的確是很少人注意,連聽過的人都不多

      刪除
    2. 在智慧型裝置發展前,我主要是在 Java server slide 發展,Feature Phone 開始普及後,漸漸轉往行動裝置發展,待過專以 J2ME 開發手機應用的新創公司,後來 Smart Phone 開始了行動裝置的新世代後,也理所當然成為了 App 開發的成員。隨著新技術及架構的發展,慢慢地意識到 Mobile App 和 Web App 之間的界線越來越模糊了,所以開始在尋找有可能統一開發的架構或環境。

      一直認為 Google 會再發展出另一套以 Web base 為主的 Android 開發環境,後來才發現 Dart + AngularDart + Flutter 就是 Google 為此目的開發的路線,而且野心還更大,跨越了 Web、Mobile、OS 等平台及領域。

      雖然如 TypeScript 、NativeScript 等等其他語言或框架也都很優秀,但總還是覺得以 JavaScript base 為主的程式語言會是一個過渡期,就像 Java 發展至今也有不少的包袱,才會出現如 Clojure、Groovy、Scala、Kotlin 等一樣運作在 JVM 平台上,卻更具現代化特色的語種,相信 JavaScript 一樣遭遇到類似的問題,所以才有如 CoffeeScript、TypeScript、Dart 等這些語種的出世。

      綜觀後,小弟認為似乎 Dart 系生態應用,是目前較具潛力發展成全能型的新一代開發生態系架構,但是否能成功實在還需看 Google 的臉色,以 Google 之前會任性地把一些好用的服務或專案關閉的記錄,實在會令人有點擔心 Dart 的發展。不過看到 AdWords 及新發展中的 Fuchsia OS 都開始用 Dart 作為開發基礎, 應該更能確定 Google 會繼續發展 Dart 的意圖了。

      刪除
    3. 感謝您的分享

      其實就我多年來觀察Google的感想,我覺得Google不像一些企業,定了一個方向,就所有的資源跟部門就全力協助,他比較像公司內部創業的感覺,員工有想做的事就可以寫企劃向公司申請,而績效指標就是有多少人在使用你做的東西,所以各技術或部門的發展,就像是兄弟爬山,各自努力,例如Dart VM最後就沒有整進Chrome而是定案為compile成JavaScript的做法,明明已經有Android卻也還是有PWA的發展。而Android的新語言是Kotlin跟Dart也沾不上邊。

      所以我認為Dart的發展比較像Google內部員工愛用,所以拿它來作新東西的人愈來愈多,也或者是Dart Team的人成功說服其他部門的人採用Dart,不太像公司主導的結果。

      而過渡語言其實是現實生活中使用者的問題,也是Dart現在最大的問題,要將舊有的東西都拋棄重來,對大部分的人來說風險太高,這也導致了Dart如此優秀,但卻沒沒無聞的下場,當然當初Dart就是設定在高報酬、高風險的目標下產生的,目前就結果論來看是還蠻有機會的。

      Fuchsia OS是一塊美好的大餅,但我覺得這太遠了,遠到這美好的未來會不會來都還不知道,不過現階段能把AngularDart跟Flutter發展好,吃的下Chrome跟Android兩大主力平台就很威了。至於是否會被關閉這件事,這就是為什麼Google很多新專案都是Open Source的原因,甚至有些刻意不沾公司光環(ex: Go),就算Google覺得專案不賺錢,所以不維護了,依舊能靠社群的力量繼續發展下去(ex:GWT)。

      我的結論就是,別太有信心XD,但也不用太擔心,比較需要關心的重點是,我們怎麼使用與它可以帶來多少價值,是原本舊的作法不能給我們的,也是我目前在努力的方向。

      刪除

張貼留言

有什麼想法歡迎跟我們分享