SwiftではSwiftUIというコードベースでアプリのUIを作れる仕組みが提供されています。ReactやVue、Flutterも同様の流れとなっています。コードとUI、そしてイベントの連動というのは今後のスタンダードなのかも知れません。 そんなSwiftUIをWebアプリケーション開発でも使えるようにするのがTokamakになります。

Tokamakの使い方

Tokamakのコード例です。拡張子もswiftで、コードもそのままSwiftUIです。

import TokamakDOM

struct TokamakApp: App {
    var body: some Scene {
        WindowGroup("Tokamak App") {
            ContentView()
        }
    }
}

struct ContentView: View {
    var body: some View {
        Text("こんにちは、世界!")
    }
}
TokamakApp.main()

実行例です。

修正すれば自動的に表示へ反映されます。

TokamakはWebAssemblyを使ってHTMLを生成しています。そのため割合モダンなWebブラウザでないと利用できません。もちろんSwiftUIなのでネイティブアプリでの利用もできます。iOSやmacOS、Linuxでの利用もできるようです。

TokamakはSwift製のオープンソース・ソフトウェア(Apache Licnese 2.0)です。

TokamakUI/Tokamak: SwiftUI-compatible framework for building browser apps with WebAssembly and native apps for other platforms