はじめまして。
株式会社DiverseでYYCのAndroidアプリの開発をしている id:kikuchy です。
先日開催されました Androidオールスターズ2 に登壇させていただきましたので、この場を借りて報告させていただきます。
発表内容
『なるべくコードを書かないAndroid開発』という題でお話させていただきました。
YYCチームでは昨年から今年にかけて、Androidアプリをフルスクラッチでリニューアルするということを行いました。
その際にaptとKotlinを用いてエンジニアが管理すべきコードの削減を行ったので、そこで得たaptとKotlinの知見を元にお話させていただきました。
Q&A
懇親会でいくつか質問を頂いたりしたので、ご紹介します。
Kotlinの導入はどれくらい簡単?
既存のJava + Gradleで作っているプロジェクトがあって、開発IDEにAndroid Studioを使っているのであれば非常に簡単です。
Kotlin公式のドキュメントをご覧ください。ワンコマンドで解決します。
また、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のメタプログラミングの知識を(多少)要求される
生成しようとするコードによっては TypeMirror や Element の扱いを要求されることがありますが、その程度だと思います。
(作ろうとするものによりますが…!)
会の雰囲気
他の登壇者の方の発表についてはブログの主旨から外れますので、ここでは書きません。
公開できる登壇者は #eventdots ハッシュタグを付けてスライドを公開しているはずですので、探してみてください。
登壇者の方々はもちろん、聞きに来てくださっていた方々もAndroid開発界隈では有名な方がいらっしゃって、セッションだけでなく懇親会でも、とてもレベルの高いお話を聞くことができました。
全体的になごやかな雰囲気で、懇親会の話も弾み、会場が閉まる直前まで多くの方が残られていました。
主催のdots. 小沢さんから「また来年も開催します!」というお話があったので、来年も開催されたら参加したいと思います。
さいごに
実は私自身、Android開発を始めて1年と少ししか経っておりません。
かなりがむしゃらにやって来ましたが、そのがむしゃらなやり方を許容してくれる環境がDiverseにはあります。
自分を急成長させたいあなた、ぜひDiverseへ!