DevFest Tokyo 2017 に行ってきた

かなり良い刺激になりました。特にKotlin!




DevFest Tokyo 2017 とは

Google系の技術(Android, Google Could Platform, TensorFlow, Goなど)に関する情報を交換・交流する場で、セッションやハンズオンがあったりするイベント。昨年からやっているそうなのですが、今年初参加させていただきました。

conpass:https://gdg-tokyo.connpass.com/event/66236/
公式HP:https://tokyo.gdgjapan.org/

そんなわけで、見てきたこと・思ったことを書き留めておこうと思います。


Kotlin導入どうですか?

サイバーエージェント、ミクシィ、ヤフー、DeNAの4企業のエンジニアが、自社のプロジェクトでKotlinどれくらい使っているか、導入する時どうしたか、Kotlinのここが好き!みたいなものを紹介してくれていました。
Androidはいつも触れているけれどPlatform開発側の人間なので、アプリ開発はあまりしていないのだけれど、Kotlinそのものは名前もよく聞くし、ちょっと気になるなーと思って参加しました。

肝心のKotlinをどう導入したかという点では各社いろいろなようで、個人的にはサイバーエージェントさんのやり方が好きかな、という印象でした。
チームみんなで実際のプロダクトにKotlinを導入してPull Request。 PRをレビューして、チームにあった書き方(=コーディングスタイル)を模索する。このPRはマージせず、方針決めを優先する。コーディングスタイルが決まった後で、一定の開発期間をとって一気に導入を進める。
ミクシィさんのとこでやっているという赤べこ本の社内読書会」というのもすごく良いなって思いました。

その他、導入後の利点として「モダンに書けて良い」とか「Swiftが文法近いからちょっと読めるようになる」「可読性が高い」「ボイラープレートコードを書かなくて済む」など挙がっていました。個人的には、Swiftと文法が近いというのは大きな利点だなーと思いました。Android/iOSどっちも雰囲気読めちゃうわけですからね(そう簡単な話ではないでしょうけれど)。
Platform側にKotlin化の流れが来るかどうかは分からないですが、備えておこうと思いました。


Android Things であそぼう

Android Thingsに実際触れてみよう!という趣旨のハンズオン。ボードを借りて、AndroidStudioでサンプルコードを動かしてみる、という感じでした。序盤ちょっと手間取ったのですが、AndroidStudio3.0ちゃんと家で準備しておけばなー、というのが今回の反省点。。



ハンズオンの部屋の中央には、実際にサンプルコードが動いている実機が置いてありました。僕は序盤手間取ったせいで、上の画像のようなものしか試せなかったのですが、他にも色々ありました。
  • 画面上のトグルスイッチでGPIOを制御するアプリ
  • TensorFlowライブラリを使って、カメラに映った物体を判別するアプリ
  • 温度センサーの値をディスプレイに出すアプリ
などなど。
家にRaspberryPi3はあるし、最近特に活躍の場もなかったので、Android Things入れて遊んでみるのも楽しそうだなって思いました。
…そういえば、Brilloという名前でIoT向けPFが出てから数年、特になんの音沙汰もなかったですが、「Android Things」って名前に変わったんですかね?


Android Things+TensorFlowで作る猫トイレ監視システム

タイトルに魅かれて見に行きました。ほぼ満員で、立ち見しました。
発表者のご自宅には猫が2匹いるそうなのですが、猫のトイレの状態確認や、猫の健康管理のためにこのシステムを構築したそうです(トイレの頻度で猫の健康状態が分かるらしい)。今回のセッションでは「どうシステムを構築していったか」「どこでハマったか」などについてお話を聞きました。特にAndroid Thingsはまだベータ版で、バージョンアップするとディスプレイが使えなくなったとか、いろいろ困難があったようでした。

監視システムの大まかな動きとしては、
  1. 振動センサーで猫がトイレに入ってきたことを検知
  2. カメラで撮影
  3. 撮影画像から、2匹の猫のいずれかを判別、記録する
という具合のようです。センサーとカメラ撮影のあたりがAndroid Thingsでやっていることで、猫判別がTensorFlowでやっているようでした。振動センサーにはLinkingという、比較的安価なセンサーを使用しているらしく、Linkingからは他にも加速度・温湿度など色々な種類が出ているそうなので、今度探してみようと思いました。

TensorFlowでの学習については、Googleで公開されている学習済みモデルに加えて、猫2匹の画像(7年間分)を食わせてファインチューニングし、それなりの判別性能を獲得したようです。

ちなみに動作結果までご紹介されていたのですが、結果としては惨敗のようでした。。要因は様々ですが、撮影画像の光源が安定せず、学習に用いた画像とは大きく異なる点があるようでした。じゃあ、どうにか光源を安定させるとなると…という新しい課題も。振動による検知も正しく検知できないこともいくらかあるようなので、そのあたりのチューニングも難しそうです。

今回のセッションでは途中経過でしたが、完成したらMaker Fairとかに出したりしないかなー、って思いました。どうなるか楽しみなので、ぜひ完成した姿が見たいです。


40分アプリ作成チャレンジ

FirebaseのデータベースシステムFirestoreを使ったTODOアプリを、フルKotlinで40分間で完成させるセッションでした。スクリーン上で手際よくサクサクとアプリが組みあがっていく様子はかなりシビれました。みんな「匠の技」を見ることに夢中で、あまり質問などは出ていませんでした。

その40分の進行としては、
  1. XMLを直接ゴリゴリいじってUIを形作って外枠を作り
  2. Fragmentを作りつつ内部処理を書きつつを進めていき
  3. Firestoreとの連携部分を作り
  4. 「こだわりの削除確認ダイアログ」を最後に付け加えて
で、40分。ほんとに面白いくらいサクサク組み上がっていました。XMLいじってUIがガンガンできてく様子もすごかったし、コードがどんどん組み上がっていく様子もこれまた爽快でした。AndroidStudioのオートコンプリート性能もさることながら、それを超高速で活かしていくスキルは、やはり書き上げてきたコードの量とか、踏んできた場数の多さなのだろうなー、と。分野は違えど、ああなりたいなって思いました。本当に良いものを見させていただきました。


最後に

いただいたシールなど。どこに貼ろうか。

こういうイベントにはあまり行き慣れていなかったけど、いろいろなジャンルの話が聞けたり、技術に触れることができて楽しかったです。ここからは感想とか。
  • 本当は見に行きたかったけど見れなかったもの:Android 1.5~8.0 Walkthrough
  • Kotlin、触ってみよう。AndroidStudio 3.0入れたんだし。
  • Android Things、触ってみよう。AndroidStudio 3.0入れたんだし。
  • 社内勉強会とか良いなって思う。けど、うちは誘っても厳しそうだなー…という。
  • なんて思ってたら会社の人を1人見つけて、ちょっと驚いたw
  • 安定のMacbookの圧倒的多さ。
  • AndroidStudio3.0を入れてくるとか、そういう事前準備はちゃんとしておこう。
  • セッション会場にはWi-Fiが無いので、AP持っていくと色々有利

今週末はAndroid Bazaar and Conference 2017 Autumnなので、こっちも楽しみ。気が向けば、また感想を書きます。


Kotlinスタートブック
Kotlinスタートブック
posted with amazlet at 17.10.09
リックテレコム (2017-03-21)
売り上げランキング: 12,136

コメント