クロスプラットフォーム開発「.NET MAUI」のデスクトップアプリ開発に使える5つの機能とは:1つの共有コードベースから多環境で実行可能なアプリを開発
Microsoftは、「.NET MAUI」で優れたデスクトップアプリケーションを作成するための主要機能として、「マルチウィンドウ」「トップレベルメニューバー」「コンテキストメニュー」「ツールチップ」「ポインタジェスチャ」を紹介した。
Microsoftは2023年1月23日(米国時間)、「.NET MAUI」で優れたデスクトップアプリケーションを作成するための5つの機能を紹介した。
.NET MAUI(.NET Multi-Platform App UI)は、2022年5月に一般提供が開始された。C#とXAMLを使用して、ネイティブのモバイルアプリやデスクトップアプリを作成するためのクロスプラットフォームフレームワークだ。.NET MAUIを使用すると、1つの共有コードベースからAndroid、iOS、macOS、Windowsで実行できるアプリを開発できる。
Microsoftは公式ブログで、.NET MAUIがデスクトップアプリのユーザー体験を向上させるために提供するユニークな機能として、「マルチウィンドウ」「トップレベルメニューバー」「コンテキストメニュー」「ツールチップ」「ポインタジェスチャ」の5つを取り上げて紹介した。
マルチウィンドウ
.NET MAUIでは、複数のウィンドウを作成、構成、表示、管理する機能を提供する「Window」クラスが導入された。.NET MAUIアプリを作成、実行すると、アプリは、「Application」クラスがコンテンツ表示のために作成、使用する既定のウィンドウを自動的に持つ。Applicationクラスは、新しいウィンドウの作成時に呼び出される新しい「CreateWindow」メソッドを持つ。
アプリケーションをデスクトップ(またはタブレット)で実行する場合、利用できる画面領域が広いので、同じウィンドウで別のページに移動する代わりに、2つ目、3つ目のウィンドウを作成したい場合がある。
気象アプリを例に挙げると、ユーザーは都市にナビゲートする際地図などの詳細情報を表示したいと思うかもしれない。開発者は、ユーザーが同じウィンドウでそのページに移動するようにするか、ビルトインAPIを使って新しいウィンドウを開くかどうかを選択できる。
ユーザーは、1つのウィンドウに表示される情報に制約されることなく、複数のビューを利用できるようになった。ユーザーはいつでもウィンドウを閉じることができ、開発者がプログラミングによって閉じることもできる。
トップレベルメニューバー
デスクトップアプリの最も一般的な機能の一つとして、Windowsではアプリに統合されており、Macではシステムメニューバーにあるメニューバーが挙げられる。.NET MAUIを使えば、数行のコードで簡単にメニューバーを統合できる。
天気予報アプリを例に取ると、開発者は、ユーザーがさまざまな場所を追加、削除、または参照できるメニューを用意したいかもしれない。
全ての「ContentPage」は、複数レベルのメニューを持つことができるMenuBarItemsコレクションを持っている。
これらのメニュー項目は、メニューが動的になるようにXAMLで直接作成したり、コードでプログラミングによって作成したりできる。メニュー項目は有効または無効にすることができ、セパレータ、サブメニュー、アイコンを持つことができる。「Command」にバインドして「Clicked」イベントを利用することもできる。
コンテキストメニュー
ユーザーが要素を右クリックしたときに、多くのオプションを提供したい場合がある。例えば、メニューバーのようなメニューを特定のコンテキストに基づいて表示したいといったケースだ。そこでコンテキストメニューの出番となる。
コンテキストメニューはメニューバーと同様のAPIを持ち、特定のコントロールに配置される。例えば、天気予報アプリで、ユーザーが特定の都市にコメントを追加したい場合がある。開発者は、新しいウィンドウを開き、「Editor」で入力する領域を提供することもできる。
Editorに「MenuFlyout」を適用し、前述のメニューバーと同じように「MenuFlyoutItems」で埋めることができる。
メニューバーと同じように、Commandにバインドしてイベントを利用したり、アイコンやサブメニュー、セパレータなどを設定したりできる。
ツールチップ
ツールチップは、アプリに機能を追加し、ユーザー体験を向上させるための迅速かつ簡単な方法だ。デスクトップユーザーはマウスとキーボードを使用するので、アプリのコントロールにマウスをホバーしたときに、開発者は追加のコンテキストを提供できる。「TooltipProperties.Text」に割り当てられたプロパティを使用すると、マウスホバー時にユーザーに表示される追加情報を指定できる。
例えば、コメントページの保存ボタンに追加情報を追加したい場合、このプロパティを設定するだけで済む。
このプロパティは、任意のコントロールのコードにプログラミングによって設定することもできる。
ポインタジェスチャ
ユーザーがマウスで操作しているときにデスクトップアプリの使い勝手を高めるために、.NET MAUIは、マウスポインタ用の新しいジェスチャ認識機能を幾つか備えている。ポインタがコントロールに入った、そこから出た、あるいはコントロール内を移動したことが簡単に分かる。
以下では、ポインタが「Image」と相互作用するときにイベントを取得する。イベントを取得すると、Image内のポインタの位置や、Imageからの相対的な位置を取得することもできる。
このように、アプリ内でアクションを実行するために「Point」を使用できるようになっている。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
「.NET MAUI(Multi-platform App UI)」とは――Xamarn.Formsからの改良ポイント
.NET 6の現状を把握し、具体的な移行方法を学ぶ連載。今回は、.NET MAUIの概要とXamarn.Formsからの改良ポイントについてまとめる。デベロッパーが注目したいMSの開発関連技術「.NET MAUI」「Microsoft Dev Box」の威力とは
Microsoftは開発者向けカンファレンス「Build 2022」で発表したツールやサービスのうち、Visual Studioユーザーにとって要注目の技術「.NET MAUI」と「Microsoft Dev Box」を紹介した。さらに「Azure Deployment Environments」とArm64対応の「Visual Studio」も取り上げている。「.NET 7 RC2」登場 C# 11や.NET MAUI利用可能で、現場への影響は?
Microsoftは、アプリケーション開発プラットフォームの次期バージョン「.NET 7」のRelease Candidate 2(RC2)を発表した。