Konifar's WIP

親方!空からどらえもんが!

DroidKaigi2015に行ってもっとAndroidやりたくなった

DroidKaigi2015に行ってきました。

f:id:konifar:20150426015310j:plain

すごく濃いセッションばかりで学びしかなくて、考えたことを吐き出さないと忘れちゃいそうなので、ざっと書き留めておこうと思います。 セッションごとの感想はたぶん色んな人がブログやらQiitaやらに書くと思うので、自分が考えたことベースで書いていきます。

コードメインの発表の楽しさ

@mhidakaさんがWelcome Talkの中で 『DroidKaigiはエンジニア主役のカンファレンスです』と言っていました。その精神が浸透していたからか、セッションもコードメインの話が多く、すぐにでも試してみたいとムズムズするものばかりでした。

例えば勉強会のマテリアルデザインの話なんかだと概念の話で終わってしまうこともあって、それももちろん勉強になるんですけど、やはりコードを見ながら話を聞いた方が面白いなぁと思いました。JakeのDagger2の発表なんかもほとんどコードだけのスライドですがとてもわかりやすいですよね。

@yanzmさんのActivity, Fragment, CustomView の使い分け - マッチョなActivityにさよならする方法 -の中でも、後半はユーザー編集画面を例にしたコードがあってすごくわかりやすかったです。エンジニアが多数の場では、自分ももう少しコードとデモをベースに話をしようかなと思いました。

Activityを太らせない設計

Activity, Fragment, CustomView の使い分け - マッチョなActivityにさよならする方法 -や、初学者に嬉しいAndroid開発環境(あとMVCとか)の中で、Activityを太らせないためのイロハみたいなことを話されていました。

なんでActivity太らせたらダメなのか、頭の中が整理できてよかったです。また、話を聞いて自分の設計方針の考えもちょっと変わりました。

今自分の個人アプリはMVP構成で作っていたんですけど、Presenterを1つのクラスにしてFragmentから処理を委譲することで、Androidの依存をなくそうとしていました。ただそうすると、Viewにも依存しないように抽象化したりして、たしかにAndroidの依存はなくなったけどちょっとやりすぎというかすごい無駄だなぁと感じていて。

DroidKaigiでセッションでActivityのロジックの一部をCustomViewに持たせるみたいな話を聞いて、PresenterはFragmentが担うようにしてうまいことCustomViewを利用する方がいいなぁとちょっと考えが変わりました。 この辺はまだ自分の中でまとまりきってないんですが、これから試してまたまとめたいと思います。

ちょっとずつテストを書いて効率化しよう

開発を効率的に進めるられるまでの道程『貴方がテストを書けば、効率は上げられる』と言っていたのがとても印象的でした。 JUnitのテストを走らせるデモをやっていて、カバレッジレポートまで出力されて安心感あるのを目の当たりにして、早くテスト書かねばという気持ちになりました。

やっぱりデモあると発表の面白さがぐんと上がるのでとてもよかったです。

Kotlinは個人では使ってみる、チームでは様子見

新言語KotlinでAndroidプログラミングを聞いて、たしかに慣れたらめちゃくちゃ気持ちよく書けそうだなぁと思いました。というかAndroidStudioがKotlinに色々親切すぎてビビりました。 これはもしかしたらKotlinの流れが来るのでは?!と感じる良セッションでした。

ただ業務で導入するにはまだどうなるかわからなくてちょっと抵抗あるなぁという印象です。もうすぐ正式版が出るらしいのでもう少し様子をみようかと。Google I/O2015でいい発表があると楽しいことになりそうですね。

糞コードを書いて学ぶということ

Android学ぶを君へ。生き抜くためのナレッジ共有は見れなかったんですが、資料やTLを見てすごくよい発表だったんだなぁと思いました。

初心者向けのセッションでしたが、普通にやってる人にもとてもためになる話が満載でした。特にコマンドまわりの話は知らないコマンドも多くてすごく参考になりました。ViewTreeはこれから多用することになりそうです。

で、個人的にはこの話が一番参考になったというか、勇気づけられました。

f:id:konifar:20150425231745p:plain

これはまさにその通りだなぁと思っていて、まず書かないと始まらないです。悩んで何もしないより、糞だなと思いながら書いて悩んで行くのが重要なのかなと。後で糞だなと思うってことは成長してるってことなので、それを繰り返して行くのが上達の近道なのかもしれないなぁと思いました。

デザイナーがxmlを書くことへの感動

デザイナーがXMLを書くことでできる改善しやすいアプリ開発は、個人的に一番印象に残ったセッションでした。

デザイナーがxmlを書けるようになるという事例を示してくれたこともすごいなぁと思いましたが、その裏にエンジニアとの信頼関係というかサポートし合ってやってきたんだろうなぁと連想してしまって、SHIROBAKOを見た後のような爽やかな感動がありました。実際どうだったのかはわかりませんが。

うちもデザイナーさんがxmlを書けるまで行かなくても、どういう風に作ってるかイメージがわくだけでも色々思考の幅が広がりそうだよねという話があります。実際にできてる人もいるのだし、ちょっとずつ進めていきたいなと思いました。

余談ですが、セッションのなかで一番ほんわかしたセッションだったと思います。例によって懇親会でも話せなかったですが、@yulily100さんにはもう少し詳しく話を聞いてみたかったです。

消費電力の節約とオフラインモード対応

本業で作ってるTaptripでもこの2つはやりたいなぁと思っていて、今回関連するセッションがあったのでとても参考になりました。

モバイルにおける電力最適化のための1プラクティス では、やはり通信時が電力消費激しいっぽいということがわかってよかったです。意外と電力消費に関するレビューとかつくので、無駄な通信してないか見直していくのがよさそうだと思いました。これは週明けにでも試してみたいところです。

また、本業のTaptripは中東やアジアなど世界中で使われているので、wifiが通らない環境が結構あって、オフライン対応をしたいと思っていました。僕らのデータ同期プラクティス NkznのSyncAdapterの話は実戦的でとても参考になりました。

しかし、同期部分のテストケースはやはりそれなりに多くなるので、結構対応には時間がかかりそうだなぁと感じました。まぁその感覚を確認できただけでもよかったです。

f:id:konifar:20150426000248p:plain

マテリアルデザイン対応をどこまでやるか

セッションの後で懇親会で@androhiさんと話して、やはりSupportLibrary以上の対応はしない方がいいなぁと思いました。

Lolipop未満のマテリアルデザイン対応に対する自分の指針でも考えをまとめていましたが、だいたいこの感覚は合っていて、あまり無理しないのがよさそうという印象です。例えばRippleEffectもライブラリ使えばできるんですが、次のAppCompatのアップデートで追加されたりしたら切ないよねという話。

今回は3日前にAppCompatがアップデートされてまじで阿鼻叫喚という感じでしたが、そこから資料を直して発表していてすごいなと思いました。Interporatorの追加やAlertDialogなど、最新のアップデート情報も盛り込まれててとても参考になりました。

余談ですが、@androhiさんはスライドの中でSHIROBAKOみゃーもりの画像を使っていて、SHIROBAKOトークもできて楽しかったです。

Android開発者の多さにビックリ

セッション中は400人の席が埋まっていたし、懇親会の時も100人以上人がいて、Android開発者こんなにいたのか…!とビックリしました。

Twitterで見たことあるアイコンの人とも話せてすごくよかったです。

以下、今回話せた人の感想です。

@mhidakaさん

@mhidakaさんはぼっちの自分にも声をかけてくれてめちゃくちゃ優しい人だなぁと思いました。緊張してあんまり話せなかったですがとても嬉しかったです。

@rejasupotaroさん

@tomoaki_imaiさんにお願いして、@rejasupotaroさんと話しました。@rejasupotaroさんは、Droidcon Italy 2015でアプリのパフォーマンスの話をしましたを読んですごいなぁ話したいなぁと思っていたのですごくよかったです。声も雰囲気も魅力的な方でした。

挨拶した時、ドラえもんの人ですよね?って言われてとても嬉しかったです。今年に入って、QiitaやらLTやらで色々アウトプット増やして来てよかったなぁとしみじみしました。

@wada811さん

前からTwitterで気になっていて話してみたいなぁと思っていて、思い切ってTwitterで声をかけて会いに行きました。

いい人オーラがすごい出ていて、今回話せて本当よかったです。

@hydrakecatさん

Twitter上で知っていて、知り合いから紹介されて話せました。人見知りな自分にとっては直接声をかけてくれるのは本当にありがたくて、今回話せてよかったです。

DroidKaigiはすごくよかった

まさに、エンジニアが主役のカンファレンスでした。 自分ももっと頑張らねばとうずうずして、帰ってすぐコード書きたくなるくらい刺激的でした。

@mhidakaさんはじめ、運営の皆様本当にお疲れさまです。ありがとうございました。