今週の初め(原文投稿は2023-06-09)、Uno Platformは、モバイル、デスクトップ、WebAssemblyのネイティブアプリケーションを構築するためのフレームワーク、バージョン4.9をリリースした。最新バージョンでは、コミュニティが待ち望んでいたMediaPlayerElementコントロールとWebView2のサポートが追加されている。また、これらの追加機能以外にも、Skiaのネイティブホストサポートを含む100以上の更新と拡張が含まれている。
まず注目すべきは、コミュニティが待ち望んでいたMediaPlayerElementコントロールが、Uno Platformを通じてWindows UIからiOS、Android、Mac Catalystプラットフォームへ対応したことだ。さらに、Uno Platform 4.9では、WebとLinuxターゲットのサポートを導入し、LinuxターゲットではメディアレンダリングにlibVLCを活用するなど、その範囲を拡大している。MediaPlayerElementの詳しい活用方法は、公式サイトに記載されている。
MediaPlayerElementコントロールについて、Uno Platform Teamは次のように述べている。
ターゲットがiOS、Android、Web、Mac、Linux、Windowsであろうと、デバイス間で一貫したシームレスなメディア再生体験を保証します。
もうひとつの大きな特徴は、Android、iOS、Mac Catalystプラットフォーム向けに、WebView2コントロールのサポートが導入されたことだ。これは、外部のウェブコンテンツへのナビゲートやカスタムHTMLコンテンツの表示を可能にし、多彩な機能を利用できる。また、C#とJavaScript間の通信を容易にし、JavaScriptのチャートまたはデータグリッドコンポーネントとの対話など、より複雑な実装を可能にする。WebView2コントロールは、WinUIの従来のWebView "1 "を置き換えるもので、拡張された機能セットを提供し、既存のシナリオのためのシームレスな移行を保証する。
さらに、SkiaのNative Host Supportに関しても、大きな追加要素がある。これは、プラットフォーム統合を強化するためのネイティブコントロールの統合を可能にするものである。この新機能により、ContentControlコンポーネントがGTK WidgetsやWPF FrameworkElementsなどのネイティブインスタンスを受け入れ、関連するContentControlの割り当てサイズを利用して、Uno Platformのサーフェスにレンダリングすることが可能になる。
特に、この機能はMediaPlayerElement
のサポート実装に成功し、ビデオサーフェスの正確な配置を保証していることが、オリジナルのブログ記事で報告されている。また、Skia Appsの記事「Embedding Native Controls in Skia Apps」も公開されており、開発者がより深く学ぶことができるようになっている。
オリジナルのブログ記事で、Uno Platformチームは、Uno Platform Skia canvasの上に表示される新しいGtk CheckButtonコントロールを作成するサンプルコードを提供している。
<ContentControl x:Name="MyControl">
<ContentControl.Content>
<CheckButton xmlns="using:Gtk" />
<ContentControl.Content>
</ContentControl>
その他の注目すべき変更と改善点としては、x:Bind
式のインデクサーとMVVMツールキットのサポート、UIElement.ActualOffsetの
サポート、SvgImageSourceを通してアプリパッケージされたSVGをロードするms-appdata
サポートが挙げられる。このアップデートでは、JSImport/JSExportを使用したWebAssemblyの大幅な性能向上や、XAML Generatorにおける性能とメモリの最適化の強化も導入されている。特筆すべきは、Skia headsのTextBlockレンダリングのパフォーマンスが強化されたことだ。さらに、Visual Studio 2019のUno Platform Solution Templatesはサポートの対象外となった。これらのアップデートは、Uno Platform 4.9でより安定し効率的な開発体験に大きく貢献する。
最後に、Uno Platformについてもっと知りたい方は、公式ウェブサイトを訪れてほしい。公式GitHubリポジトリと併せて、プラットフォームに関する操作手順やチュートリアルを含む詳しいマニュアルをチェックすることを勧める。より詳細な更新の概要は、リリース履歴で見ることが可能だ。