.NET Multi-platform App UI (.NET MAUI)は、AndroidやiOSといったモバイルからWindowsやmacOSのデスクトップアプリへと機能拡張した、Xamarin.Forms
の進化版である。その最新バージョン、Preview 9が公開された。数多くの改善や、興味深い機能が開発者に提供されている。Preview 9は現在、.NET 6 RC2およびVisual Studio 2022のプレビュー版(Preview 5)で使用することができる。
Preview 9は.NET MAULのバージョンのひとつである。開発者には今後も、最初のリリース候補が提供される2022年Q1まで、新たなPreviewバージョンが毎月、定期的に提供される。その次の四半期版は2022年Q2に、グローバルに利用可能なバージョンとして提供される予定である。Scott Hunters氏の記事には、次のように述べられている。
.NET MAUIは、2022年第1四半期のRC(Release Candidate)、第2四半期のGA(General Availability)に向けて、毎月、プレビュー版のリリースを続けます。
.NET MAUI Previewエディションの今月のリリースには、コントロールとレイアウトに対するボーダ、コーナ、シャドウのサポートが導入されている。それらに加えてもうひとつ、Preview 9の重点は、50を越えるコントロールやレイアウトを完成させることだった。Preview 9は現在、Androidアプリケーションの起動時間をパフォーマンス改善する.NET MAUIスタートアップトレーシングを含めて提供されている。
Android OS上での.NET MAUIアプリの起動時間に関するアップデートについては、Jonatham Peppers氏がResource.designer.cs
用に作成した、興味深いGitHubプルリクエストがある。Microsoftの開発ブログにも記載されているように、Jonathan氏は、Androidリソースデザイナファイルを最適化することによって、400ミリ秒の改善を実現する方法を見つけたのだ。その投稿の下には、コミュニティによるいくつかのやり取りが続いていたが、これらのベンチマーク値については、David Ortinau氏が次のように回答している。
ベンチマークの報告は、それぞれを個別に見る必要があります。400ミリ秒というのは特定のアプリとコンフィギュレーションに対するものであって、他のアプリケーションやデバイスでの変更の影響はまた違うと思われます ...
.NET MAUIの月次リリースにはそれぞれ、UI関連の興味深いアップデートが数多く含まれている。今回のリリースでは、.NET MAUIの大部分のコントロールやレイヤに対して、ボーダを追加したり、コーナを描画したり、シャドウを付けることが可能になった。この機能は、iOS、Android、Windows、macOS、Tizen、Linuxを対象として、完全にC#で記述されたクロスプラットフォームなグラフィックスライブラリである、Microsoft.Maui.Graphics
ライブラリを使って実現されており、ネイティブグラフィックエンジンをベースとした一貫性のあるUI描画APIを提供する。
レイヤやコントロールへのボーダの付加は、新しいBorder
コントロールを使用することで可能になる。このコントロールは、コントロールやレイアウトをラップして、各コーナの半径を独立してコントロールする手段を提供する。コーナの半径にはThickness
タイプが使用される。
<Border
Grid.Row="2"
Padding="16,8"
Stroke="{StaticResource PrimaryBrush}"
Background="#2B0B98"
StrokeThickness="4"
HorizontalOptions="Center">
<Border.StrokeShape>
<RoundRectangle CornerRadius="40,0,0,40"/>
</Border.StrokeShape>
<Label
Text=".NET MAUI Preview: 9"
FontSize="18"
FontAttributes="Bold"
TextColor="White"
x:Name="CounterLabel" />
</Border>
アプリのユーザインターフェース部分に深みを加えることが、新しいShadow
機能で簡単にできるようになった。任意のレイアウトやコントロールの他、イメージやシェイプにも使用することができる。
<Image>
<Image.Shadow>
<Shadow Brush="#000000"
Offset="20,20"
Radius="40"
Opacity="0.8"/>
</Image.Shadow>
</Image>
いくつかのコンポーネントベンダがすでにMicrosoft.Maui.Graphics
の提供するサポートの使用を開始しており、.NET Multi-platform App UI用の新しいコントロールセットの最近のリリースへとつながっている。
最新プレビューで実装の更新されたコントロールの中で、その他に注目に値するものとしては、BoxViewやIndicatorView、ImageButton、WebViewなどがある。
プロジェクトの開発進捗状況や.NET MAUIの今後のリリースを確認するために、GitHub wiki roadmapで公式ロードマップが公開されている。