CA.kt
どうもどうも。FRESH! Androidアプリの開発をしている愛澤萌です。
6月15日に開催されたCA.kt #1のレポートです。

CA.ktはCyberAgentのエンジニアが開催するKotlinに関する勉強会です。
初回は日本Kotlinユーザーグループ代表の長澤太郎さんをゲストにお招きしました。

資料まとめ

JavaからKotlinへの移行(相互運用ハマりポイント)/ 長澤太郎さん

Companion ObjectをJavaでいうところのstaticのように扱うための方法、
継承やOverrideを伴うJava製フレームワーク/ライブラリを利用する際に便利な kotlin-springコンパイラプラグイン”と “all-openコンパイラプラグイン”、
デフォルトコンストラクタを要求するJava製フレームワーク/ライブラリを利用する際に便利な “no-argコンパイラプラグイン”を紹介してくださいました。

これからサーバーサイドでKotlinを書く方にもAndroid向けにKotlinを書く方にもまず読んでおいていただきたい内容です。

Kotlin in Google I/O 2017 Final Edition / 藤原聖

GoogleがKotlinをAndroidアプリ開発として公式サポートする理由、公式サポートによって今後どうなっていくのか、弊社の映像配信プラットフォームFRESH!でKotlinを採用した経緯と理由、チームでのKotlin学習の例を紹介しています。

これからKotlinをチームに導入しようと考えている方におすすめです。Kotlinの概要と自由度の高さを知り、チームでどのように利用していくかを検討するのにぴったりな発表でした。

How Kotlin implements features Java doesn’t have / 愛澤萌

KotlinにはJavaにない機能が多くあります。それらがどの様に実現されているのか、 “NonNull/Nullable” “Extension Function” “Named Argument/Default Argumentを例にKotlinとBytecodeそしてJavaを見ながら紹介しています。

人間が面倒な記述をしなくてすむようにKotlinコンパイラが頑張って面倒な処理を肩代わりしていること、Javaとの相互運用を意識して最適化行っていることが見て取れますね。

Introduce Kotlin Coroutine / 荒谷光

Kotlin 1.1で実験的に登場した “Coroutine”に関して、 “Suspending functions” “Coroutine builders” “Coroutine dispatchers”の解説とともに実際の利用例を紹介しています。

非同期プログラミングにRxJavaを利用するのが主流となってきましたが、そこへ新しい選択肢としてCoroutineが登場しました。
Coroutineを利用することで非同期処理を同期処理のように記述することが可能になります。

Tour of build system in Kotlin / stormcat24

Kotlinビルドツールに関するお話です。Gradleで不自由はないとしつつ他の選択肢を模索し “Kobalt” “Bazel”、そしてCA.kt前日にリリースされた “Gradle 4.0″の概要を紹介。

個人的にはKobaltがまんまGradleの見た目なので気になりました。Kotlin DSLやコード補完を推しているようですが、GradleがbuildスクリプトとしてKotlinをサポートしている今うまみは少なそうですね。
発表者も「結局Gradle」とまとめています。

次回もやります!

まだ具体的な日程は決まっていませんがKotlinコミュニティに貢献すべく今後も開催していく予定です。是非、弊社のconnpassグループをチェックしてください。

Moyuru Aizawa
受託開発会社、デーティングサービス運営会社を経てサイバーエージェントに入社。 主にKotlinでAndroidアプリを開発。Javaの書き方は忘れた。