Diverse developer blog

株式会社Diverse 開発者ブログです。

『Androidオールスターズ2』に登壇しました

はじめまして。
株式会社DiverseでYYCのAndroidアプリの開発をしている id:kikuchy です。

f:id:t-amano:20160809173121j:plain

先日開催されました Androidオールスターズ2 に登壇させていただきましたので、この場を借りて報告させていただきます。

eventdots.jp


発表内容

『なるべくコードを書かないAndroid開発』という題でお話させていただきました。

YYCチームでは昨年から今年にかけて、Androidアプリをフルスクラッチでリニューアルするということを行いました。
その際にaptとKotlinを用いてエンジニアが管理すべきコードの削減を行ったので、そこで得たaptとKotlinの知見を元にお話させていただきました。


Q&A

懇親会でいくつか質問を頂いたりしたので、ご紹介します。

Kotlinの導入はどれくらい簡単?

既存のJava + Gradleで作っているプロジェクトがあって、開発IDEにAndroid Studioを使っているのであれば非常に簡単です。
Kotlin公式のドキュメントをご覧ください。ワンコマンドで解決します。

kotlinlang.org

また、KotlinからJavaのコード呼び出すのも、JavaからKotlinのコードを呼び出すのも、通常のJava/Kotlinのコードを呼び出すのと全く変わらない手軽さです。
Bridging-Header的なファイルを用意しなくても良い分、Swift <-> Objective-Cの相互運用よりも簡単だと思います。

ですので、新規に作成するクラスからはKotlinで書き始め、段々Kotlin比率を増やしていく、といったスタイルがおすすめです。
(私達、YYC Androidチームもこの方法を取りました)

チーム開発の際に新しい言語を導入するのは大変ではなかったのか?

以前にShibuya.apkという勉強会でお話させて頂いたことがあります。


自分が社内エバンジェリストになる感じで、新しい言語を学ぶことは楽しい、とメンバーに思ってもらうことが大切だと思います。

Kotlinのデメリットは?

まだ成熟していない言語ですので色々つらいところがありますが、代表的なものをいくつか。

  • コンパイルが遅い
  • AndroidのDataBindingとの相性が悪い
  • kapt (Kotlinのapt) を使うとコンパイルが更に遅くなる & kaptの設定を間違えると不具合が出ることがある

aptのデメリットは?

  • コンパイルが遅くなる
  • Javaのメタプログラミングの知識を(多少)要求される

生成しようとするコードによっては TypeMirrorElement の扱いを要求されることがありますが、その程度だと思います。
(作ろうとするものによりますが…!)


会の雰囲気

他の登壇者の方の発表についてはブログの主旨から外れますので、ここでは書きません。
公開できる登壇者は #eventdots ハッシュタグを付けてスライドを公開しているはずですので、探してみてください。

登壇者の方々はもちろん、聞きに来てくださっていた方々もAndroid開発界隈では有名な方がいらっしゃって、セッションだけでなく懇親会でも、とてもレベルの高いお話を聞くことができました。

全体的になごやかな雰囲気で、懇親会の話も弾み、会場が閉まる直前まで多くの方が残られていました。

主催のdots. 小沢さんから「また来年も開催します!」というお話があったので、来年も開催されたら参加したいと思います。


さいごに

実は私自身、Android開発を始めて1年と少ししか経っておりません。
かなりがむしゃらにやって来ましたが、そのがむしゃらなやり方を許容してくれる環境がDiverseにはあります。

自分を急成長させたいあなた、ぜひDiverseへ!