JetBrainsは、WebAssembly用のKotlin「Kotlin/Wasm」のα版リリースを発表した。これにより、マルチプラットフォームライブラリ「Kotlin Multiplatform」を使用して、Webアプリケーション用の宣言型ユーザーインターフェースをKotlinで作成できるようになった。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
チェコのJetBrainsは2023年12月21日(現地時間)、WebAssembly用のKotlin「Kotlin/Wasm」のα版リリースを発表した。これにより、マルチプラットフォームライブラリ「Kotlin Multiplatform」を使用して、Webアプリケーション用の宣言型ユーザーインタフェースをKotlinで作成できるようになった。
また、「Kotlin Playground」でもKotlin/Wasmをサポートするようになったため、ブラウザで直接WebAssemblyコードスニペットを書き、Kotlin/Wasmが提供する機能を確かめることも可能だ。
Kotlin/Wasmはkotlinxライブラリ一式を導入している。このライブラリには「kotlinx-atomicfu」「kotlinx.coroutines」「kotlinx.serialization」「kotlinx-datetime」「kotlinx-io」が含まれている。
ネットワーク対応アプリケーションを構築するためのJetBrainsフレームワークである「Ktor」もWebAssemblyに導入される。次回のリリースでは、KtorのHTTPクライアントを使用してKotlin/Wasmコードからネットワークリクエストを直接送信できるようになる。
Compose Multiplatformを使うと、AndroidとiOS、デスクトップ、ブラウザをターゲットとする共有アプリケーションをビルドできる。独自の共有UIを作成し始める場合、同じようにKotlin/Wasmターゲットを実験的にサポートしているKotlin Multiplatform Webウィザードを使用してプロジェクトを生成できる。
WebAssemblyは言語用のコンパイルターゲットとしてゼロからデザインされているため、KotlinコンパイラはソースコードをWebAssemblyバイトコードに変換できる。同社ではKotlin/Wasmに定期的にベンチマークを実行し、実行時のパフォーマンスを確認しているという。Kotlin/Wasmはまだα版のため、継続的にパフォーマンスが改善されている。下図のようにKotlin/Wasmはほぼ全てのマクロベンチマークで既にKotlin/JSのパフォーマンスを上回っている。
同様に、Kotlin/Wasmで動作するCompose MultiplatformはJVM(Java仮想マシン)上で同じアプリケーションを実行する場合と同等の実行速度となっている。
Kotlin/Wasmは、活発に改善と強化が行われているという。
リリース直後のKotlin/Wasmのデバッグサポートには制限があり、今後はその機能を改善していく予定だ。Webをターゲットとする際にはバンドルのサイズが重要であることも同社は認識しているとし、特にCompose Multiplatformプロジェクトを対象にコンパイラが生成する出力の最適化を進めるという。
Copyright © ITmedia, Inc. All Rights Reserved.