GDG DevFest Tokyo 2018への参加レポート

google

この記事では、「GDG DevFest Tokyo 2018」への参加レポートを書きます。2ヵ月ぶりの勉強会への参加に選んだのがこの勉強会です。

スポンサーリンク

GDG DevFestとは?

DevFest は、Google Developer Group (GDG) コミュニティによって世界各地で開かれるデベロッパー向けイベントです。今年で3回目とのこと。主催者以下のグループです。

  • GDG Tokyo
  • DroidKaigi
  • 日本Androidの会
  • GCPUG
  • golang.tokyo
  • shibuya.apk
  • html5j
  • TensorFlow User Group
  • droidgirls
  • GTUG Girls
  • XR女子部
  • Angular日本ユーザー会
  • Firebase Japan User Group
  • Flutter Japan User Group
  • Polymer Japan

私がCommpassで参加しているのグループ(赤字)も興味があるグループ(青字)がたくさん入っていて、募集人数は2000人。会場は、「ベルサール新宿グランド コンファレンスセンター」。ピンク色は、今日、興味を持ったもの。

GDG DevFest Tokyo 2018の特徴

私が感じた点は、次のものです。

  • 主催グループがたくさんあるのに、スタッフがちゃんと協力できていたこと
  • チューターが常に教えてくれる、Codelabがあるので、実際に試せる、教えてもらえる。教えてもらいながら試せるのが良いところ
  • オープニング+クロージング+30分×7コマのスケジュールでどれに出るか迷う。。。(Codelabもしたいし)無料でここまで参加できるイベントも珍しい。
  • 個人的に参加していたグループが多いので知っている人が多かった。
  • 資料をツイッターで公開してくれる登壇者が多く、ツイッターが必須。
  • #devfest18  セッション別のハッシュタグがほしかったなぁ。

私が受講したセッションとCodelab

私が実際に聞いたものは次のものです(ちら見もあり)。

  • Quick Start GCP(山内沙織)
  • PWAのイマ(takanorip)
  • AndroidX時代のHelloWorld(田中洋一郎)
  • Introduction of Polymer 3.0(kazuyoshi kawakami)

講義の間にCodelabを1つツマミました。

  • #23 GoでWebAssemblyに触れよう(持っていたのがChromeBookだったため、Go環境をCloudShellで構築する手順があったため、実質2つ分(笑))

あとでやりたいCodeLabは次のものです。

  • #21 はじめての Polymer 3 エレメントの作り方(ChromeBookだとつらそうだから、家に持ち帰り)
  • #33 Write Your First Flutter App, part 1(なんだか、人気に火が付きそうな気配あり)

セッションとCodelabの感想

人気のセッションは、立ち見になったり入場制限するとあったので、QuickStartGCPに前乗りしたら、知っている方がやっていました(笑)今回はPWAが一番聞きたかったです。PWAを聴く中で、Polymer3.0がPWAと相性が良い技術だということを知ることができました。また、最近Androidをコーディングする機会があったので、AndroidXの情報収集をしました。

CodeLabに関しては、セッションに参加するより自分のためになると思ったので、参加してみました。ChromeBookではなくWIndowsマシンかMacマシンを持っていくべきでしたね。

PWAについて

資料と私の気になったメモをここに書きます。

PWA - Now and Future -
A presentation created with Slides.
  • PWAは、利用者のUXを向上させることが目的
  • Faturesシート(PWAの特徴):Fast/Integrated/Reliable/Engaging頭文字を取って、Fireと呼ぶことがある
  • PWAとNativeAppsの違いで注目するところ
    • 検索できることやURLで共有できる
    • インストールしてもらいやすい
  • PWAは、バックグランドで動機することが出来る
  • ブラウザにより対応状況に差がある。Safariがちょっと。。。
  • PWAチェックリストがある
  • イマPWAを始めるなら、PWA Starter Kitを使うのがよい
  • PWAの今後
    • 日本はiOSのせいで普及が遅れているが、海外では、PWA化していないサイトはレガシーだと思われる
    • Push通知について
      • Push通知はよく見る人に渡したいため、ページロードした時に、通知の許可を求めてはダメ。
      • 一回ブロックされると、こちらから通知できない。
      • →Push通知許可をだすタイミングを考えて出す必要がある。
    • Webアプリに加えて考えて置かなければならないこと
      • オフライン時のデザインが大切
      • ブラウザのバックボタンがないので大対策をつくる
      • →上記を疎かにするとPWA化しないほうが良くなる
  • 結論は、すこしづつ、適材適所で機能を追加していって、Webサイトをリッチにしてくことが大切。その助けの1つになるのが「Polymar

Polymer 3.0について

Introduction of Polymer 3.0(kazuyoshi kawakami)についての資料は公開してくださるとおっしゃっていましたが、まだ公開されておりませんね。公開されるまでは、私が気になった点を記載します。

  • (猫のスライドを合間に入れるのが海外で流行っている)
  • Polymerについては、Webページより概要をコピペします。
    • Google 社のエンジニアが生みだした JavaScript ライブラリで、Web Comonents の要素技術を採用しつつ UI コンポーネントのセットを簡単に利用できるよう構築されたもの

    • 登壇者曰く、Web Components版のnpmで、JSライブラリと親和性が高い
  • Web Componentsの歴史
    • 2012年にGoogleで発表されたもの。2012年時点では、再利用可能なWeb要素を作れるようになった
    • 2018年の時点では、Polymer 3.0がリリースされた。Polymer 2.0→Polymer 3.0には、機能改善とプログラムの書き方がちょっと変わった
  •  https://www.webcomponents.org/  というweb componentsの一覧サイトがある
  • WebComponentsを使っているサイト
  • HTMLでの書き方
    •  「link rel」カスタムコンポーネントをimort
    •  app-header / app-toolbar / app-drawerなどの見慣れないタグを用いて記載する。
  •  登壇者のまとめ
    • WebComponentsだけでもアプリは作成可能
    • ビルドしなくても動く。
    • ルーティングで苦労することあり
    • 適用範囲は、ランディングページなどのライトなところがよい
  •  私の感想
    • PWAと相性が良さそう。ただ、その他のJSとの相性をよく調べる必要がありそう
    • とりあえず、CodeLabをやって勉強会に参加してみる

AndroidX時代のHelloWorld

このセッションは、基礎中の基礎で登壇者の人が、みんな知っているはずだから、他のセッションへ行けと自己嫌悪に陥られておりましたが、6年ほどAndroidの開発から離れていた私に取っては、ものすごく有益なものでした。資料は、こちら。

20180901 DevFest 2018(公開用)
AndroidX時代の Hello World 〜 2018.9.1 DevFest 〜

Android超初心者の私が気になった点

  • Android Jetpackが登場した。
  • Android Studio 3.2 について
    • Kotlinが標準で使えるようになった。
  • AndroidXについて
    • サポートライブラリが昔と変わった。
      • android.***.***; → androidx.***.***;
      • Jetifierというツールを使うと、jar/aarの中にあるimportとかを、デコンパイルして置換して再コンパイルしてくれるものがある。動作はするけど、動作確認は必須。Javaのコード生成部分が不安。
    • 昔と画面の実装方法がだいぶ変わった。
      • ContraintLayoutを使うといい(GridLayoutとかもうレガシー)
      • ListVIewは古い。RecyclerViewが良い。
      • Androidは、Workerでインターネット通信するのが良い。非同期処理を作り込むのが良い。(ちょっと難しい)「LiveData<T>」というのを使うとよい。「LiveData<T>」は監視可能なデータの入れ物でデータに変奥があると、監視者に通知する。
      • 中断再開でよくクラッシュするが、ViewModelの中でLiveDataを使うとだいぶ改善される
    • Navigationという画面遷移を記述したXMLが使えるようになった。(iOSのストリーモードと同じ)
    • Roomというライブラリーがあり、SQLiteを簡単に扱うことが出来る。
  • 今後の開発で注意すること
    • Android 8.0(26) 以上にしないと、GooglePlayで新規リリース不可。
    • 更新する時も同じ制約がかかる(2018/11)
    • 動作端末は、8.0未満でも利用可能。ただ、どこまでサポートするのか?

Codelab:GoでWebAssemblyに触れよう

こちらについては、実際のページを見たほうが圧倒的にわかりやすいです。私が感動した点とハマった点を書きます。

Google Cloud ShellにおけるGoの開発環境の構築

  • 「https://golangtokyo.github.io/codelab/cloud-shell-go-setup/?index=codelab#5」に間違いあり。WebAssemblyは、version1.11より対応
//wget -O - https://dl.google.com/go/go1.9.7.linux-amd64.tar.gz | tar zxvf -
wget -O - https://dl.google.com/go/go1.11.linux-amd64.tar.gz | tar zxvf -
  • Google Cloud ShellにはWebでプレビューする機能が備わっていた
  • Google Cloud Shellには備え付けのコードエディタがあり、viより使いやすかった

GoでWebAssemblyに触れよう

  • 基本コピペでいけるが、ChromeBookでやるとエラーが発生することがある。。。

まとめ

久々に勉強会に参加しました。かなり大きなイベントでしたが、すべてボランティアベースのものだということで、登壇者の方々やスタッフ様大変ありがとうございました。とても楽しかったです。

今日、ピンっときたことをまとめました。気になったことをこれから掘り下げて、いつかは登壇出来るような実力をつけたいですね。

最後に、今日の資料をまとめてくれているサイトがありました。完全なものではありませんが、ツイッターを全部読み込むよりは先にこちらを見たほうが見つけやすいかもしれません。

コメント