DroidKaigi 2017に参加した感想
聞いたセッション
1日目
- 逆引き マテリアル デザイン
- Android Security 最前線!!
- Androidリアルタイム通信アプリ作成Tips
- Data Bindingで開発を気持ちよくしよう
- 実践アニメーション
- オフラインファーストなアプリケーション開発
- React Nativeはクロスプラットフォームモバイルアプリ開発の夢を見るか
- What’s New in RxJava 2.0
2日目
- Android ORMの選び方
- 未熟なチーム開発
- Data Bindingで実現するMVVM Architecture
- 4年続くアプリにおけるチーム開発
- コマンドなしでぼくはAndroid開発できない話
- Fireside Chat
- テスト0から目指すクラッシュフリー率99%
感想
結論:とてもよかった
Androidエンジニアこんなにいたんだ
過去最多の参加者ということで、かなり広い会場に人がぎっしりいて「日本にこんなにAndroidエンジニアいたのか」という驚き。最近どこの会社もAndroidエンジニア足りてないって話を聞きますけどみんな普段どこにいるんですかね。。。
セッションのアジェンダをもうちょっと詳しく/正確にして欲しい
セッションについては、公式サイト/アプリで見るアジェンダを見て予想した内容と、実際に話してる内容に結構ずれがあったのが気になりました。例えばHogeというワードがアジェンダには入ってないのにトークではHogeを使う前提で話が進む、みたいな。同じ時間帯に見たいセッションがかぶることが多く、どのセッションを見るべきかを判断するためにもこの辺の情報はできるだけ正確にして欲しいなーという印象。
MVVM + data binding
個人的には最近MVVM+data bindingに取り組んでいることもあって、「Data Bindingで実現するMVVM Architecture」のセッションが一番期待していました。セッション本体はどちらかというとMVVM初めてやる人向けかなーという感想でしたが、Office Hourでの会話がとても濃く、こういうのはネットでスライドみるだけじゃなくて実際に参加してみないと体験できないなと思いました。このセッション立ち見がかなりいたので、もっと大きい部屋でもよかったんじゃないですかね。部屋割りどうやって決めてるのか知らないけど。
もっとこんなのが聞きたい
来年に期待。
- 設計やデザインパターンを適用として、詰まったところ&どうやって解決したか、みたいな話
- レガシーなアプリをモダンな設計にリプレースした話
- あまり有名じゃないけど実はおすすめなライブラリの話
- 泥臭い話
来年は登壇したい
あと、今年CFP応募してみたんですが、残念ながらRejectされた*1ので普通に聞くだけでの参加でした。 来年こそはスピーカーとして参加したいと思います。
*1:RejectConやりたい
Goで匿名ダイアリーもどきを作ってみた
完全に趣味ですが、Goに入門しました。 匿名ダイアリーもどきのアプリケーションを作るとこまでできたので、ここまでに学んだことをメモ。 http://golang-jp.org/doc/に十分まとまっていますがね。
作ったアプリ github.com
※環境はOSXです
インストール
brewでさくっと入れました。執筆時点のバージョンは1.7.4.
brew install go
Goは$GOPATHという環境変数でワークスペースを指定します。また、$GOPATH/binにバイナリが配置されますので、.bash_profileに以下を追加。
export GOPATH="$HOME/go" export PATH="$GOPATH/bin:$PATH"
コーディングスタイル
goは公式のスタイルが厳格に決まっていて、gofmtなるフォーマットツールも付属しているらしい。
以下のコマンド一発でフォーマットしてくれるので、git hookとかで強制的にフォーマットするとよさそう。
gofmt -w .
パッケージマネージャ
Goではライブラリはワークスペースにgetしてきたものが使われるんですが、複数のマシンで開発するときはやっぱバージョン固定したいですよね。
パッケージマネージャは色々ありますが、glideかgovendorがナウい感じ? gom, godepなどもあるみたいだけど、後述するEchoではglideとgovendorが紹介されてました。
特に強い理由はないけど、なんとなく今メジャーっぽいというだけでglideを採用。 バージョンをyamlで管理してくれます。
brew install glide glide init glide install glide get github.com/hogehoge/fugafuga
WAF
RubyにおけるRailsのような、とりあえずこれ使おう的なものはまだない印象。そもそも重量級フレームワークとかを使って黒魔術ゴリゴリで書く言語ではなさそう。
- Echo
- Gin
- Revel
など色々あります。開発の活発さとドキュメントの充実具合で、Echoを採用しました。
テンプレートエンジン
「標準のhtml/templateパッケージで十分」とどこかで見かけたので、これしか試してない。
ORM
WAFに同じく、あんまりGoだと使わないのかなー。デファクトスタンダードなものはなさそう。
- gorm
- gorp
などがあり、gormを採用しました。この選択はあまり自信ないです。
テスト
標準のtestingパッケージを使って書けばOK