DroidKaigi2018に参加してきました!

はじめに

こんにちは!新卒入社の永井です。
弊社では@cosme, @cosme PRO for Beauty Specialist と2つのアプリをリリースしています。
両アプリともクリーンアーキテクチャをベースに実装されており、新規アプリはフルKotlinで実装中です!

弊社ではAndroid/iOSエンジニアを超募集しております。
興味のある方は是非ご連絡ください!ランチ行きましょう!

株式会社アイスタイル 中途採用
新規ネイティブアプリやグローバル向けアプリ開発がしたいiOS/Androidエンジニア募集!

そんな弊社Androidエンジニア3名が、国内最大のAndroidカンファレンスであるDroidKaigiに参加してまいりました。

どれも素晴らしい発表で感極まりましたが、今回は特に弊社と関わりが深いセッションに絞って参加レポートを書きたいと思います。

Kotlin アンチパターン

メンバーの開発経験も様々で巨大なアプリのフルリニューアルとのことで、弊社の開発ともいろんな意味で近いと思いました。
Kotlinの基本文法などは知っていましたが、こういった実践上での失敗事例はとても参考になります。
nullableを引き回すと、いたるところでnullチェックを書く必要があるということが印象的で、「nullが何を表すか」で処理するレイヤを決めると良いようです。
Kotlinは弊社でも既に導入し始めていますが、現段階でこれを聞くことができたことはよかったと思います。
android-ktxというのも出てきたので、拡張関数に関しては最初はこちらに任せてしまうのがよさそうです。
Javaにはない文法やスコープ関数など便利な機能はたくさんありますが、無理やり使わないようにチームメンバーと相談しつつ注意しようと思いました。

Inside Android Architecture Components


現在新規で作成中のアプリはAACを取り入れています。
AACはGoogle I/O 2017で発表されたgoogle公式のアーキテクチャセットになります。
中身としてはLifecycle, LiveData, ViewModel, Room, Pagingというものに分かれており、それぞれの基本的な使い方や処理を追っていくわかりやすい内容となっていました。
「Activityとかは物理法則みたいなもので、それに則った上で各々が実装していく」という考え方が印象に残っています。
ライフサイクルについては考えることが多いし、トラブルも起きやすいというのはどこもそうなんだなと思いました。

How to Kontribute

スライド
Kotlinにcontributeする方法の話でした。
以下のような箇所でどんなissueがあるかや相談や実際のPRについて確認できるとのことでした。

また、初心者がcontributeしやすいのは以下とのことでした。

とても説明がわかりやすく、Kontributeする意欲を掻き立てられました!

実例で理解するMaterial Design Animation


Wantedlyのアプリを参考に、アニメーションするためのライブラリの紹介やアニメーションがもたらす効果、
アニメーションの動きの仕組みや実際の実装方法、デザイナーの方とどう相談するのかについて知見が得られました。
Nativeの画面からWebViewの画面に遷移する際にアニメーションがスプラッシュのような役割になり、画面表示の重さが軽減したように感じたことが非常に印象に残っています。
また、ただ「かっこいいから」という感性も非常に大事だなと思いました。
アニメーション実装の勘所やDEBUG方法も紹介されていたので、弊社アプリでも一部では実践済みですが、これからどんどん取り入れていきたいです。

詳解 ViewGroupのレイアウト内部実装


ViewGroupは当たり前のように使っていましたが、どのようなフローで描画されているかまでは理解していませんでした。
普段はこういった内部実装を気にすることが少ないですが、発表を聞いてどうやってAndroidが動いているのか俄然興味が湧きました。
名著「Androidを支える技術」で体系的に学んだ後、コードを見ながらもう一度発表を動画で見直したいです。
ConstraintLayoutは弊社でも取り入れているので、今後の進化が楽しみになりました。
FrameLayoutは行数も少なく入門向きとのことで、読んでみたいと思います。
事前に発表者のブログを拝見していたのですが、付録もとても良かったのでおすすめです。

Androidアプリ開発における技術顧問としての役割

techblog
技術顧問とはなにか、どんな仕事をしているのかなど具体的に説明されていてとても参考になりました。
何か新しいものを導入する際に反対意見が出てきたときにどうするかという質問をしたのですが、
「変えたものが武器になるというような提案の仕方をする。」と助言頂きました。
反対意見を説得するのではなく、武器にするまでのプラスの提案ができたらいいのかなと思いました。

認証と認可と君と / The Triple-A: Authentication, Authorization, and Android


スマートフォンでは従来のOAuthでは対応しきれない状況について、どう対処してきたのかどこが十分でないのかを紹介されていました。
OAuth2.0については、以前調査したことがありましたがこのセッションの説明でイメージがついた感じがします。
従来のOAuthについて、スマートフォンで使用した際の問題点はもちろんですが、各アプリケーションでクライアントを立ち上げて、毎回パスワードを入力することは、UX的によろしくないというのが、理由の一つとして含まれていることには驚きました。
話の内容自体は研究会で聞くような難易度の高い話でしたが、この講演では発表者の話術もあり和やかな印象を持ちました。
最近はセキュリティに関する事件も複数おきており、情報セキュリティに対する注目は数年前より格段に上がっていると思うので、良い話が聞けたと思います。

開発者が知っておきたい通知の歴史


今まで通知に関しては最低限の機能しか使ったことはありませんでしたが、どのバージョンでどんな機能が入ったのか参考になりました。
カスタムビューやスタイルは使おうと思っても中々できないことが多かったので、取り入れてみようと思えるいいきっかけになりました。
また、同じ設定でもOSバージョンや端末によっても見え方が変わるなど、テストは入念にやる必要があるなと感じました。
通知はアプリならではの機能で非常に重要な役割を果たすので、色んな機能を使ったアプローチは非常に良さそうでした。
ただ過剰にやるとユーザーから忌み嫌われブロックされるのが一番恐ろしいので、計測しつつ慎重に投入していきたいと思います。

さいごに

弊社には勉強会への参加サポート制度もあり、業務の一環で、かつ会社の費用での参加でした。
どのセッションも学びがあり、本当に参加して良かったです。
スピーカーの方々、スタッフの方々、本当にありがとうございました!
次回は登壇する側に回りたいと思います!

弊社に少しでも興味を持たれた方、まずはランチから!

株式会社アイスタイル 中途採用
新規ネイティブアプリやグローバル向けアプリ開発がしたいiOS/Androidエンジニア募集!

Androidエンジニア、新卒入社3年目 料理が好きです。最近はAndroidのアニメーションに興味があります。