こんにちは、freee でモバイルエンジニアをしている RyoAbe です。
私は昨年の中頃に freee に入社し、ほとんどが iOS アプリ開発ではありますが、先日開催された DroidKaigi 2018 に弊社モバイルチーム( Android / iOS )全員で参加しました。
iOS エンジニアの私でも多くの学びがあったのでそれらについて書こうと思います。
モバイルエンジニア総出でスポンサー参加
freee は今回はじめて DroidKaigi にスポンサー参加させていただきました。
(昨年開催された iOSDC JAPAN 2017 や RubyKaigi 2017 、来月開催される try! Swift にも freee はスポンサーとして参加してます)
来場者もブースに立つスタッフも目線は同じ
今までの社会人経験でスポンサーの一員としてブースに立つのは初めてで、上の写真のように緊張して変な顔になってしまっていました。
「freee をたくさん宣伝したほうがいいのかな…?」
「片っ端から声をかけてステッカーを配った方がいいのかな…?」
なんてことをブースの前で身構えながら初めは考えていましたが、そんな必要はなく自然と近くを通った来場者の方に、
「こんにちは!」
「freee はご存知ですか?」
「普段どういったことされているんですか?」
「会社はどちらにあるんですか?」
などといった他愛もない話をしているだけで、
「今度合同で勉強会やりましょうよ」
「会社に遊びに行きますね!」
と盛り上がり、そこから横のつながりが出来るんだなという学びがありました。
私はスポンサーとしてブースに立つということは、自社のことを積極的に宣伝しなければならないものだと思っていましたが、自然な会話の中で少しでも会社のことを認識してもらえばいいんだなということに気付かされました。
iOS エンジニアでもたくさんの学びがあった
ブースにいることも多々あり、あまりセッションは聞けなかったのですが、Android アプリの開発にはまだ疎い私でも聞いてみて面白かったセッションを紹介したいと思います。
Kotlinアンチパターン
www.slideshare.net
Kotlin を触れるのもしばらくぶりではありましたが、「API から Domain 、UI へと Nullable のデータの引き渡し」や、「通常代入、lazy、custom getter の使い分け」など Swift に置き換えても参考になるようなアンチパターンとその解決策の紹介があり勉強になりました。
Android Studio30分集中超絶技巧100選
Android Studio30分集中超絶技巧100選メモ DroidKaigi 2018 #DroidKaigi #DroidKaigi_room3 · GitHub
さすが IntelliJ IDEA ベースの IDE だなといった感じで、Xcode にはない痒いところに手が届く便利なショートカットがたくさん紹介されました。
地味に便利そうだなと思ったのは、
- エディタ最大化 Shift + Cmd + F12(Shift + Ctrl + F12)、デフォルトレイアウトを復帰 Shift + F12
- 空気を読む Option + Enter(Alt + Enter)
- 1つ(2つ)前のファイル Ctrl + Tab(+ Tab)(Ctrl + Tab(+ Tab))
- あらゆるポップアップはインクリメンタルサーチ
など。(Xcode にもあったらいいのにな…ないよね?)
また、Git 操作系のショートカットやコードレビューを Android Studio で操作するためのプラグインである Upsource についての紹介もありました。
それらを使いこなしてターミナルや SourceTree を使用せずに IDE のみで Git 周りもすべて操作出来るようになればアプリケーションの切り替えなどする必要がなくなって良さそうですね。
すばらしきGraphQLのSEKAIへようこそ
発表内容は、GraphQL の基礎的な情報、Android からの利用方法、他の Web API との比較などについてでした。
Web API もこれまでは REST 一択でしたが、ここ数年で gRPC や 本セッションの GraphQL などが増え選択肢が広がったんだなと感じました。
業務でも API を書くことが稀にあるのですが、GraphQL はリソース取得系が柔軟であるため複雑な条件式を必要とするリソースに対して、局所的に導入してみても効果がありそうです。
Androidではじめるデザインスプリント
デザインスプリントとは、Google が提唱するベンチャー向けプロダクトデザインのためのフレームワークで、「理解」、「発散」、「決定」、「試作」、「検証」のプロセスを個人作業と共同作業を繰り返し5日間で行う。
新サービスを考える際や既存サービスのデザイン上の問題を解決するために使用されるとのこと。
弊社では Design Doc(Google が提唱していた設計ドキュメント)をカスタマイズして、開発に取り掛かる前に目的や背景や目標、やること/やらないことなどを整理するために書いてます。
このドキュメントは基本的には個々人で書くのですが、デザインスプリントはそれ以前のもう少し漠然とした問題や課題に対して、色んな関係者を巻き込みながら、状況の理解〜検証を行いたい場合に利用すると良いのかもしれません。
そんなわけで Android アプリ作りたくなってきた
私は今回初めて DroidKaigi に参加しましたが、モバイルやプロダクト開発全般に対してのセッションも多く iOS エンジニアでもとても勉強になりました。
Android 開発そのものの話や Kotlin の話もたくさん聞くことができ、久々に Android アプリを作りたくなりました。
(freee は副業 OK だし、せっかくの機会なのでやってみようかな)
また、スポンサーとしてブースに立つことで、たくさんのエンジニアさんや企業さんと関わりを持つことができ良い経験だったなと思います。
私同様 Android アプリを作りたくなったそこのあなた
freee ではモバイルエンジニアを募集中です。
弊社ではエンジニア向けカンファレンスに精力的にスポンサーとして参加しており、それらの有料のカンファレンスには業務の一環としてタダで参加することができます。
ご興味がある方は是非一度弊社に遊びにいらしてください!