DroidKaigi 2018の発表動画が公開されたので一通り見てみた。
ほんとは全部見た、って言いたかったんだけど、もうGoogle I/Oが始まっちゃうので、タイトルと説明文でである程度フィルターして見た30以上のセッションの中で、これだけは絶対に外せない、というセッションをいくつか紹介します。
### DroidKaigi 2018 — Android Studio30分集中超絶技巧100選
[DroidKaigi 2018 — Android Studio30分集中超絶技巧100選 / 山本ユウスケ ](https://www.youtube.com/watch?v=qoWmJ8tPY_I)
ツール系って、機能のアップデートがあってもなかなかキャッチアップするのは難しい。
こういうのやりたいな、と思って調べてみても、その時点では出来ないこともある。そうすると、それが出来ないなりの最適解を見つけ出してしまって、そこにストレスを感じなくなる。
そうすると、元の問題が解決していたとしても、それに気づかずに、局所最適化した方法を使い続けてしまう。Android Studioに関してもそういう人は多いだろう。
個人的にも、以前は機能がなかったのか、情報が出回ってなかったのかはわからないが、いつかの時点でAndroid Studioを使うときはマウス必須、と解を出していたが、その考えが覆された。
短期的には慣れてるやり方の方が速いかもしれないが、ここで紹介されている慣れたらほぼマウス・トラックパッドを使わずに開発できるので、その効率アップがたとえ1%だったとしても、使用頻度を考えれば圧倒的な成果に繋がるだろう。
全ての(Android Studioを使った)Androidアプリ開発者が見るべき。
ショートカットのチートシートを作ったのでこちらを参照。
- [gist](https://gist.github.com/itog/de7828d066191b0efc190f6bb6a08b06)
より詳しく知りたい場合は`IntelliJ IDEAハンズオン――基本操作からプロジェクト管理までマスター`という本を参照
### Gradleプラグインを作って開発効率を改善しよう
[Gradleプラグインを作って開発効率を改善しよう DroidKaigi 2018 — / tnj](https://www.youtube.com/watch?v=Lo326kQt7L8)
[発表資料](https://speakerdeck.com/tnj/guide-to-build-gradle-plugin-for-efficient-development)
ソースコード
- https://github.com/tnj/gradle-locate-apk-plugin
- https://github.com/tnj/gradle-auto-debug-suffix-plugin
開発環境がeclipseからAndroid Studioになり、buildスクリプトがantからgradleになって、だいぶわかりやすくはなった。ただ、自分の場合はgroovyやそれに文法が似た言語をやっていなかったので、build.gradleは、それがスクリプトだということは理屈ではわかっていても、設定ファイルのようにしか見えなかった。そういう認識の人は多いんじゃないだろうか。
kotlinが公式サポートされてから1年が経ち、だいぶkotlinにも慣れて来た今、改めてbuild.gradleを見ると、だいぶコードとして見れるようになってきた。
android {
compileSdkVersion 27
}
が、
<android>
<compileSdkVersion>27</compileSdkVersion>
</android>
に見えてたのが、
android(compleSdkVersion(27))
に見えてきた感じ。
そんなタイミングでのこのプレゼンはめっちゃハマる。
build.gradleとはなんなのか、からgradle pluginの公開までに必要な全てのステップを解説している。
1ステップ1ステップ進むので、リアルタイムでどこかで躓いてしまうとその先が暗号のように聞こえてしまうかもしれない。動画は躓いた所でいったん止めて、調べてまた進めると良いだろう。
個人的には、ant時代に外部のスクリプトでやっていたものをgradleになってgroovyにしたけど、無理矢理感が否めなかったのが、この知識で解決できそうなので、ぴったりハマった。
この動画が気に入った人にはこちらもオススメ
やや古い情報がおいけど、ちょっとしたテクニックでビルド時間短縮できる。
[Faster Builds with Android Plugin for Gradle 3.0.0+ / Adarsh Fernando](https://www.youtube.com/watch?v=onz5t29oBcU)
### DroidKaigi 2018 — 認証と認可と君と…
[DroidKaigi 2018 — 認証と認可と君と… / ken5scal](https://www.youtube.com/watch?v=XJhflxykV8g)
セキュリティ関係で事故がおきた例を見ると「なんでそんな簡単なことを、、、」と思うことは多いが、おそらくセキュリティ関連のことはブラックボックス化してしまい、中身を全く理解せずに使っていると、いずれはそういうことが起こってしまうんだと思う。
この発表は、初心者向けではなく、誰もがすぐに理解できるものではない。それでも、なんとなくでもいいからこうなっているということは知っておくべき。
**この動画が気に入った人にはこちらもオススメ**
こちらもセキュリティ関連で、上記より難易度が下がるので、こちらはある程度理解しておきたい。
- [HTTPS通信の基本からNetwork Security Configurationまで / Amane Nikaido](https://www.youtube.com/watch?v=S_kmkGHTjU4)
### Androidで動画コンテンツを扱うTips
[Androidで動画コンテンツを扱うTips / takusemba](https://www.youtube.com/watch?v=jHonnvdmNuE)
タイトルはTIPSとなっているが、動画の扱いからストリーミング配信まで、必要な知識を順を追って解説している。
規格の話と実装の話のバランス感が素晴らしく、動画を扱うなら必見で、そうでなくとも知っておくべき。
### Kotlin版CleanArchitectureのテンプレート作ったら爆速開発になった話+α
[Kotlin版CleanArchitectureのテンプレート作ったら爆速開発になった話+α / Keisuke Kiuchi](https://www.youtube.com/watch?v=tGBvYlQ6MJ8)
ちょっとこれに関しては、発表者の意図とは違うかもしれないけど、内容は知るべきだと思うので紹介。
今回のdroidkaigiはアーキテクチャの話が多い。開発規模が大きくなって開発者の人数も増えた時に、共通認識としてメジャーなアーキテクチャを導入することには意義がある。
ただ、アーキテクチャの導入すればするで、それなりの辛みがあって、この発表では、テンプレートを作ることでそれを解決している。
Clean Architectureに限らず、アーキテクチャと呼ばれてるものには利点もあれば、副作用もある。それをどうやって解決するか、というのを何がえさせられる。
**この動画が気に入った人にはこちらもオススメ**
抽象的な話ではなく、ガチで実装してる人向け
- [All you need is isolating the domain … / yanzm](https://www.youtube.com/watch?v=glasB4fF15Q)
- [How to improve your MVP architecture and tests / kirimin](https://www.youtube.com/watch?v=_2LLn42lm74)
### アプリをエミュレートするアプリの登場とその危険性 / oboenikui
[アプリをエミュレートするアプリの登場とその危険性 / oboenikui](https://www.youtube.com/watch?v=fZEln44l23s)
AndroidはiOSと比べると色んな意味で自由なので、こういうこともできる。
Androi Pで非公開APIの仕様は制限されるのでいずれ使えなくなる可能性は高いが、こういうものはいたちごっこということもあるし、現状どういう危険があるのかは開発者としては知っておくべき。
Androidアプリがどのように実行されているかを知るという意味でも勉強になる。
### まとめ
上記以外も見るべきセッションばかりで全て紹介したいけど、あまり多いと意味がなくなるので、厳選したものだけを紹介してみました。