Blog

Kotlin で GUI アプリを作るならやっぱり jetpack compose for desktop

Jetpack Compose for desktop によるアプリケーション開発

Kotlin で GUI アプリを開発する場合、Swing, awt と JavaFX と Jetpack compose とかぐらい。 今更 awt, Swing などを直接使うのはちょっと大変なので、まぁ kotlin ネイティブな Jetpack compose かなぁ、という感じ。Jetpack compose for desktop でそこそこの規模のアプリを作ったって報告はあまり見かけず、ちょっと不安な感じではありつつ。

現状としては、Jetpack compose 自体は Android で広く使われていることもあって、安定して動くし、情報も多い(ただし Android 用の情報)。 desktop として使う場合には、widget がちょっと物足りなかったりする。商用製品作るぞ!みたいな気持ちだと、ちょっと頼りないかも。エンジニアが自分用ツールを作って楽しむ分には十分すぎるぐらいの機能がすでにある。

JVM で動くので、Java のライブラリがそのまま動く点は魅力。 一方で、JVM で動く故の懸念もある。メモリの使用量。ちょっとメモリ使用量は native でちゃんと丁寧に書かれたアプリより多めかも。

kotlin native 対応が jetpack compose for desktop に入ってくれる未来が来ればそのへんよくなるかもなぁ、と個人的には思っていて、海外でもそういう意見がチラホラ。しかし、現状の jetpack compose for desktop は swing ベースらしいので、その道程は果てしなく遠いのかも。

まぁ、でも普段サーバーサイド用に書いてるプログラミング言語で GUI アプリが割と普通に作れるのって便利だもんで、jetpack compose for desktop もっと流行ったら嬉しいなぁ。

で、具体何つくってるかというと、なんか ChatGPT のモデルとか切り替えながらサクサク使えるやつを作ってて、普通に便利に毎日使っていたりする。

https://github.com/tokuhirom/reflect-ai