「WinUI4K」でC#を覚えずにKotlinだけでWin11風アプリが作れた

WinUI4K
Kotlin や Java から WinUI を直接使い、Windows ネイティブのアプリを作るライブラリ
GitHub
公開
正式公開 2026-07-23
作り手
NTTレゾナントテクノロジー株式会社(会社)
対応
Windows
言語
英語・日本語
価格
無料(Apache License 2.0)
評価
GitHub のスター 88(2026-10-08)

どんなアプリか

WinUI4K は、プログラミング言語の Kotlin と Java から、Windows の GUI フレームワーク「WinUI」を直接使えるオープンソースのライブラリです。C# も Visual Studio も、言語同士をつなぐ独自のブリッジ DLL も用意せずに、Kotlin や Java だけで Windows ネイティブのデスクトップアプリを作れます。

仕組みとしては、JVM が持つ外部関数呼び出し機能(FFI)で WinRT の ABI を直接呼び出しています。FFI の部分は Panama・JNA・JNR の3種類を同梱していて、実行する Java のバージョンに合わせて差し替えられます。Java 8 以降で動き、Java 22 以降では Java 標準の外部関数 API(Panama)を使います。

ボタンや入力欄から画面遷移用のナビゲーション、ウィンドウ制御まで、60を超える WinUI のコントロールを提供しています。ウィンドウ(WFrame)やボタン(WButton)といった部品は、Swing と同じ感覚の API で組み立てます。同梱のサンプルギャラリーでは、対応するコントロールをカテゴリ別に一覧し、その場で挙動を確かめられます。

WWebView を使うと Microsoft Edge ベースのブラウザ部品を画面に組み込めます。拡張ライブラリを足せば、Kotlin のコルーチンから Dispatchers.WinUi で UI スレッドに切り替えられます。WinUI ネイティブのコントロールをそのまま使うため、スクリーンリーダーなど OS 標準のアクセシビリティ機能もそのまま働きます。

WinUI はきれいな画面を手軽に作れる一方で、C# と Visual Studio が前提になっていて、Java/Kotlin の現場からは距離がありました。WinUI4K は、その距離をなくせるかを確かめるための研究として作り始めたライブラリです。

開発担当の久納 孝治さん、NTTレゾナントテクノロジーのプレスリリース(PR TIMES、2026-07-23)

ライブラリは、Windows のネイティブアプリを Kotlin・Java で実現するための研究の一環として試作されたものです。同社のテスト端末クラウドサービス「Remote TestKit」の Windows 用アプリでも、この成果を活かす予定だとしています。

料金とデータの置き場所

ライセンスは Apache License 2.0 で、商用・非商用を問わず無償で使えます。

同じ分野のアプリ

名前型仕掛け対応料金
WinUI4KGUI ライブラリKotlin・Java から WinUI を直接使い、Windows ネイティブ UI を作るWindows(Kotlin / Java)無料(OSS, Apache-2.0)
Zonvieネイティブ GUI アプリZig で書かれ、Mac と Windows でネイティブに動く Neovim GUIMac / Windows(Zig)無料(OSS, MIT)
just-styledUI ライブラリビルド工程なしで使える React 19 向けの CSS-in-JSReact 19 ライブラリ無料(OSS, Apache-2.0)
Gunshiツール作成ライブラリJavaScript でコマンドラインツールを作るJavaScript / TypeScript(npm・JSR)無料(OSS, MIT)

入れる前に

動作環境は Windows 11(x64)で、Windows 10 1809 以降でも動く想定とされています。リポジトリのビルドと起動には JDK 25(x64)が必要で、ライブラリ自体は Java 8 以降で動きます。WinUI 自体が Windows 専用のため、macOS や Linux には対応していません。

x64・x86・arm64 の Windows に対応していますが、範囲は FFI の種類で異なります。README では、JNA は x64 のみ、JNR は x86・x64・arm64 に対応と書かれています。

実行には Windows App SDK 2.4 のランタイムが必要です。未導入のときは、手元にインストーラーがあれば自動で実行し、無ければ Microsoft のダイアログでダウンロードを促します。インストーラーは x86・x64・arm64 の3種類で、それぞれ約104MBです。

README には制限も書かれています。COM の参照は GC に合わせて解放されるため、解放のタイミングは決まっていません。言語の境界をまたぐ循環参照は自動では回収されないので、不要になったイベントリスナーは明示的に外す必要があります。

不具合の報告や機能の要望、プルリクエストは GitHub の Issue で受け付けています。