Kotlinでマルチプラットフォームのモバイルアプリケーション開発を行えるKotlin Multiplatfrom Mobileが2022年10月にBetaとなりました。
JetBrainsはKMM Betaに向けてさまざまな改善に取り組んできましたが、その中でもNew Memory Managerに注力していました。旧Memory ManagerのKotlin/NativeにおけるKotlin coroutinesや並列、非同期処理の課題がKotlin 1.7.20で改善され、新Memory ManagerはBetaステータスとなっています。
本セッションでは、旧Memory Managerの課題とこれまでの対処方法、新旧の比較(仕組み、実装方法、パフォーマンス)、マイグレーション方法、関連ライブラリ(Kotlin coroutines、Ktor)の変更点などをご紹介します。
今年の6月にリリースされたKotlin 1.7には、K2という丸ごと新しいKotlinコンパイラがプレビューされました。
これはJetBrainsの10年以上のKotlin開発経験を活かし、改めて、発展性、安定性、そして何よりもパフォーマンスを上げるのを目標にしたプロジェクトの成果なのです。
本セッションでは、以前のコンパイラとの仕組みを比較をしながら、一般のユーザーにとって何が変わるのか、について発表します。
IntelliJ IDEAのKotlinプラグインの開発者として、プラグイン側の改善についても話したいと思います。
具体的な説明も多少入りますが、コンパイラ内部をあんまり触ったことがない人でも理解出来ると思いますので、是非お越しください。
Kotlin製のモダンUIツールキットであるJetpack Composeには、デスクトップおよびWebアプリのUI開発に対応したCompose Multiplatformという拡張版が存在します。Kotlin Multiplatformの機能をフルに活用し実装されており、その豊富な表現力はKotlinエンジニアに多大な恩恵をもたらします。
本セッションでは、発表者が自身のポートフォリオサイトをリライトした経験から、特にWebアプリのUI開発に対応するCompose for Webを利用し、モダンなSPAを実装・リリースするための一貫した知見を紹介します。また、Kotlin/JS + Reactの構成で実装した複雑なWebアプリをCompose for Webでリライトしながら得た知識も踏まえ、KotlinによるWebフロントエンド開発の現在地について詳しく解説します。
皆さんご存知の通り、Kotlin には便利で有用な言語機能が豊富にあります。拡張関数・スコープ関数・null許容型・sealed class・data class・コルーチンといった言語機能は、「もう手放せない」という人も多いでしょう。
しかし、有用なはずのこれらの言語機能も、むやみに使ってしまうと有用でなくなってしまうかもしれません。大切なのは、言語機能を使いたいから使うのではなく、「何を改善するのか」という目的を明確にして使うことです。
本セッションでは、我々のチームで共有している「可読性を下げてしまうような不適切な言語機能の使用例」と、「それを防ぐためのベストプラクティス」のいくつかを紹介します。特に、「何となく読みやすいから」ではなく、ベストプラクティスの理由を言語化することに焦点を当てます。
普段のコードレビューで、より建設的な議論を行う足がかりとしていただければ幸いです。
Kotlin Coroutines は、もはやAndroidアプリ開発において必須の技術となりました。
私達のチームでも Kotlin Coroutines を本格的に導入して数年が経ち、既に多くのコードがコルーチンベースで書き換えられています。
Kotlin Coroutines を用いることで非同期処理などが簡潔に記述できるようになりますが、Androidアプリ上で利用する場合はライフサイクルやキャンセルの扱い方など注意すべき点がいくつか存在します。
今回は、我々のチーム内でのコードレビューから得られた数多くの知見を紹介し、Androidアプリ開発における Kotlin Coroutines のより良い使い方について発表します。