マルチプラットフォーム対応が進むKotlin。「Jetpack Compose for Web」登場、Webアプリ対応のUIフレームワーク
Kotlin言語や統合開発ツールIntelliJ IDEAなどの開発を行っているJetBrainsは、Kotlinに対応したWebアプリケーション用のUIフレームワーク「Jetpack Compose for Web」のテクニカルプレビューを発表しました。
Jetpack Compose advances to the browser! Our newest technology preview brings Google’s toolkit for building reactive user interfaces with Kotlin to the web.
— Kotlin (@kotlin) May 4, 2021
Take a look, and learn all about the first preview version of Jetpack Compose for Web!https://t.co/RJhAYe6ek8
Jetpack Compose for Webの基となったのは、Android向けのUIフレームワークとしてGoogleが開発し、発表した「Jetpack Compose」です。2020年9月にアルファ版が公開されたばかりで、現在もベータ版として開発が進められています。
Jetpack Composeはマテリアルデザイン対応で、それまでXMLで設定する必要があったAndroidのUIを、簡潔かつ宣言的なコードで記述できるようにしました。
それまでJavaのコードとUIのためのXMLのコードに分かれていたために開発生産性や保守性に課題があったAndroidのネイティブアプリケーション開発が、Jetpack Composeによって改善されると期待されています。
Jetpack Compose for Webの登場
JetBrainsはこのJetpack Composeをベースに、2020年11月にKotlinでデスクトップアプリケーションを開発する際に使えるUIフレームワークの「Jetpack Compose for Desktop」を発表します。
Windows、macOS、Linuxのデスクトップアプリケーショの開発に対応し、Skiaグラフィックライブラリを内部で用いることでハードウェアによる高速なレンダリングを実現。JavaのGUIライブラリであるAWTやSwingとの高い相互運用性も保っています。
そして今回、テクノロジープレビューとして発表されたのが、Jetpack ComposeをベースにKotlinでWebアプリケーションを開発する際に使えるUIフレームワーク「Jetpack Compose for Web」です。
Jetpack Compose for Webは、DOM APIを通じて詳細にUIをコーディングする方法と、Android用JetpackやJetpack Compose for Desktopと同様にウィジェットを用いてUIをコーディングする方法が用意されています。
Kotlinはマルチプラットフォーム対応へ進む
このようにAndroid用として登場したJetpack Composeは、JetBrainsによってKotlinにおけるデスクトップアプリケーションとWebアプリケーションへも対応するように拡張されました。
これはKotlinそのものがAndroidのネイティブアプリケーション開発用だけでなく、デスクトップアプリケーションやWebアプリケーションなどのマルチプラットフォームに対応した言語へと進化しようとしていることが背景にあります。
Kotlinがマルチプラットフォームに対応するためには、それぞれのプラットフォームに対応したUIを構築するためのフレームワークのマルチプラットフォームが求められることになります。
JetBrainsがJetpack Compose for DesktopとJetpack Compose for Webを開発したのは、そうした理由からです。
現在、マイクロソフトは.NETでマルチプラットフォームに対応したUIフレームワークのMauiを開発中、GoogleはDartに対応しマルチプラットフォームに対応したUIフレームワーク「Flutter 2」を開発中であることを明らかにしています。
- [速報]マイクロソフト、新UIフレームワーク「.NET Multi-platform App UI」(.NET MAUI)発表。単一コードでマルチプラットフォーム対応。Microsoft Build 2020
- Dart言語のフレームワーク「Flutter 2」公開。単一コードでiOS/Android/Web/Win/Mac/Linuxのネイティブアプリ実現。WebAssemblyによるレンダリングエンジン搭載
JetBrainsはKotlinとJetpack Composeシリーズで同様にマルチプラットフォーム対応を目指しており、マルチプラットフォーム対応はプログラミング言語の発展における新たな競争領域になっている感があります。
関連記事
Compose for DesktopとCompose for Webなどを統合した「Compose Multiplatform」が登場しました。
あわせて読みたい
JavaScriptツールチェインの統一を目指す「Rome」開発チームが起業、「Rome Tools, Inc.」を立ち上げ
≪前の記事
JetBrains、CI/CD環境のマネージドサービス「TeamCity Cloud」を正式リリース