【kyobashi.dex】Android勉強会を開催しました!#4

はじめまして。2016年度新卒Androidエンジニアの美馬 ( @amyu_san ) です。2017年1月20日(金)にkyobashi.dexの第4回目を開催しました。

kyobashi.dexとは

kyobashi.dexは、弊社リクルートマーケティングパートナーズがある京橋にてその周辺にいるAndroidエンジニアとそうでないAndroidエンジニアが集まって情報共有する場を作ろうと企画した勉強会です。弊社リクルートマーケティングパートナーズとQuipper社のスペースで開催されており、今回第4回目を開催する運びとなりました。

発表資料まとめ

今回は全8組の発表がありました。発表資料とその簡単な概要をご紹介します。

1. ミスを少なくする明日からのCustom Lint Rules

by amyu_san

コード解析を静的に行い、コードの問題点などを出力してくれるLintに関する発表でした。詳細な作り方についてAccessibilityDetectorを例に、各functionが何を行っているかの説明がされていました。

Lint Rulesの作り方を学習する上では、すでにあるAndroidのDetectorのコードを読むのがいちばん早く、仕組みとしてもシンプルなので、とっつきやすいだろうとのことです。

2. Differences of AccountManager from API 22 to 24

by shogo

API22から24までにあったAccountManagerの変更点についての発表でした。

AccountManagerはアカウントを共有する仕組みで有名ですが、その内部はかなりブラックボックスになっています。たとえば、同じauthTokenTypeをもつAuthenticatorは先にインストールされたほうが優先されるなど、複数アプリにまたがってAccountManagerを使用しようとすると多くのことに注意しなければなりません。

今回の発表ではAPI22から24までのAccountManagerを使う上でのPermission周りの説明や、Androidのバージョンごとの挙動の違いが紹介されました。Android6以上でAccountManagerを使う際、必ずしもPermission Requestを使用しなくともよいなど、最新の情報が共有されました。

3. 俺の悩みを聞いてくれ

by konifar

DroidKaigi公式アプリのセッション一覧画面をCustom LayoutManagerで作ってみたかったという発表でした。
ただし、Custom LayoutManagerを作るには最低でも10ステップの作業が必要であるらしく、作るのも大変だそうです。

他のアプローチで作ることが出来ないかと格闘した結果、やはりCustom LayoutManagerが一番良いという結論にはなったらしいのですが、それでも難しいらしく、実装には時間がかかるとのことです。まさに「悩みを聞いてくれ!」といった感じの発表でした。

4. GoogleVRからはじめるDaydreamへの道

by Tatsuya Shimada

GoogleVRエンジニアが少なくて寂しい!」というところから始まった発表でした。

GoogleVRを使ったVRアプリを作ることは簡単なので、もっとVRアプリを作るエンジニアの人口が増えてほしいとおっしゃっていました。

Android特有のエラーなどはやはりモバイルエンジニアのほうがよく知っているため、つまずくところが少なく開発を行えます。実際にVRアプリをライブで作っている姿は確かに簡単そうに見え、私も簡単なアプリを作ってみようという気持ちになりました。

5. Convert SVG to Vector Drawable and v.v.

by jmatsu

Vector DrawableをプレビューするツールをChrome Extensionで作成したという発表でした。

VectorDrawableはxml表記のため、人間が読んでも理解しづらいという欠点がありました。そのため、GitHubのPR上でVectorDrawableを表示できるPreviewerは大変便利だと感じました。

6. OnActivityResult ~おまえら!もうonActivityResultでswitchとif書く時代は終わりだぞ!~

by operandOS

OnActivityResultというライブラリの紹介でした。

OnActivityResultを使うとAPTによりコード内にあるonActivityResult内の分岐処理をなくし、指定したfunctionでハンドリング処理を行うことができるとのことです。
私もonActivityResult内の分岐処理の多さには困っていたので非常に参考になりました。

7. Kotlinで "Thin Cake" パターンを真似る

by nobuoka

Scalaで有名なThin Cake PatternをKotlinで実現したい!という発表でした。

Scalaのtraitと比較したときに、KotlinのInterfaceには『functionのDefault実装は持てるが、Backing Fieldは持てない』という違いがあり、DI実現のために格闘する過程が紹介されました。

最終的には、疑似モジュールミックスイン合成により "Thin Cake" パターンに近いものを実現することができたそうです。

8. ぼくにもできたAnnotation Precessing

by fushiroyama

Annotation Processingを作成しようという発表でした。

APTの作り方が詳しく説明されており、個人的にかなりのおすすめ発表です。
Annotation Processingを使いコード生成する上で、square製のjavapoetがデファクトツールであるらしく、普段APTを利用する側が多かった私としても、javapoetの存在理由を知ることができ、非常に有意義でした。

懇親会

発表が終わった後は🍕、🍣、🍺でおのおの楽しく歓談をしていました。

まとめ

今回の発表では、開発支援ツールやGoogleVR、昔からあるAccountManagerやSDKにまつわる話など、幅広い分野の発表が行われました。
どの発表も、「俺の知見を聞いてくれ!」と言った雰囲気で、発表者の熱意を強く感じました。

次回のkyobashi.*

02/08(水)にkyobashi.dexと同じ会場リクルートマーケティングパートナーズにてKyobashi.swift x AKIBA.swift 合同勉強会を開催します。
興味ある方は是非参加してみてください!