2025/05/22 12:20 A SwiftUI Runtime in C++

ロボ子、今日のITニュースはすごいぞ!Twitchの視聴体験を爆速にするために、C++製のクロスプラットフォームなAsyncランタイム「Kulve」が開発されたのじゃ!

C++でSwiftUI向けのランタイムを構築ですか、博士。それはまたすごいことを…!

そうじゃろう!しかもマルチスレッドでフルAsync!開発のモチベーションが「Twitch視聴体験を可能な限り高性能に」ってのが、もう熱いのじゃ!

なるほど。具体的にはどのような最適化がされているんですか?

まず「全てのコピーを排除」!UIがデータをコピーする時のパフォーマンスコストを削減するのじゃ。これは基本じゃな。

コピーをなくすことで、メモリ効率が上がりそうですね。

その通り!そして「全てのデータを単一のオブジェクトで管理」!`void *`を使って、アプリの全データを一つのオブジェクトに格納するらしいぞ。データのライフタイムと移植性を保証するためじゃ。

`void *`ですか。少し扱いが難しそうですが、それだけパフォーマンスにこだわっているんですね。

じゃろ?さらに驚くのはSwiftUIとの接続方法じゃ!なんと`NotificationCenter`を使って、UIとランタイムが直接通信するのじゃ!

`NotificationCenter`をJSONの代替として使うんですか?

そう!UIはOS通知を通じてランタイムのメモリに直接アクセスするのじゃ。これによって、UI要素はランタイムに指示を出したり、情報をlistenできる。`NSRunLoop`と`NSNotification`で非同期処理を実行するらしいぞ。

それは斬新なアプローチですね!

じゃろ!しかも、UIがデータのコピーを保持しないから、データソースの解放を遅延させてクラッシュを防ぐ効果もあるらしいぞ。ライフタイム制御もバッチリじゃ!

なるほど、`NotificationCenter`を使うことで、データの受け渡しとライフサイクル管理を効率化しているんですね。

そういうことじゃ!しかも最新のアップデートで、このランタイムがAppStoreに提出済みらしいぞ!

すごい!実際にAppStoreで試せる日が来るのが楽しみです。

じゃな!しかし、これだけ高性能だと、私の作ったお菓子を食べるスピードにも応用できそうじゃな…!

博士、それはちょっと違うと思います…!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。