AvaloniaUIのv11.0がリリースされました。
Windows環境でAndroidビルドしてエミュレータでアプリを起動させてみようと思います。
環境
OS: Windows 11 Home
AvaloniaUI: v11.0.1
Visual Studio2022
手順
1. 環境のセットアップ
1.1 テンプレートのインストール
こちらの手順に従ってインストール。
Install
インストール
dotnet new install Avalonia.Templates
インストールを確認
dotnet new list
すでに過去のバージョンでインストール済みの場合はアップデートする。
dotnet new --update-check
dotnet new --update-apply
1.2 ワークロードのインストール
.NET開発用のVisual Studioの機能拡張パッケージをインストールする。
dotnet workload install android
1.3 Android SDKのインストール
上記ページに貼ってあるリンクはMSのXamarin開発用環境セットアップページになっており、結局モバイルワークロードを入れろと言われます。
XamarinはMAUIに取って代わられたため、モバイルワークロードというものは存在しないのでMAUIワークロードを入れます。
上記AvalouinaUIのハウツーページにもmaui-check
コマンドで全部入るとあるのでそちらで行きます。
まずはMAUIワークロードのインストール
dotnet workload install maui
長いですが待ちます。
androidビルドだけならdotnet workload install maui-android
だけで十分だと思いますが、せっかくなのでiosからdesktopから全部入れておきます。
Visual Studio Installerでインストールしても大丈夫です。
続いてmaui-check
を行います。
dotnet tool install -g Redth.Net.Maui.Check
maui-check
長いですが待ちます。
Visual Studio2022のバージョンは17.6以上でないとエラーがでるので、インストーラーからアップデートしておいてください。
ちなみにMSの記事にあるXamarinの環境開発セットアップ手順を行うとEmulatorを選べるらしく、Pixel5をエミュレータとして使うことができました。
1.4 Hyper-Vの有効化
Androidエミュレータの実行速度を上げるために設定します。
設定しないと話しにならないほど実行速度が低いので設定します。
Windows11 ProのHyper-V設定手順
Windows11 HomeのHyper-V設定手順
Homeの場合上記に加えて 「Windowsの機能の有効化または無効化」 から仮想マシンプラットフォームにチェックを入れます。
Homeの場合は上記記事にあるバッチファイルを実行し仮想マシンのインストールをおこないます。
この時、再起動まで終わったらHyper-Vの起動はおよび仮想マシンの作成を手動で行う必要はありません。
Hyper-Vの設定が完了したらAndroid Emulatorの起動を確認します。
Visual Studioのツール > Android > Androidデバイスマネージャー
をクリック。
ダイアログが開くので「開始」をクリック。
するとAndroidのエミュレータが起動します。
暫く待つとデフォルトアプリのあるAndroidのホーム画面が表示されます。
確認できたら一旦エミュレータは閉じてます。
2. プロジェクト作成
2.1 テンプレートの選択
とりあえずDesktopプロジェクトとBrowserプロジェクトはビルド&実行できるので確認します。
できました。
2.2 Nugetバージョン更新
テンプレートで作成したままだとNugetバージョンが古い場合があるのでv11.0以上にします。
2.3 Androidエミュレータの設定
上記AvalouinaUIのハウツーページにあるリンク先の手順に従います。
と言いながら、ワークロードからインストールすると必要なコンポーネントはすべてインストールされていたので私は特に何もしませんでした。
2.4 iOSプロジェクトのアンロード
今回はiOSビルドは対象外なのでプロジェクトをアンロードします。
環境が整っていないとビルドエラーになって邪魔なので取り除きます。
ソリューションエクスプローラーからAndroidプロジェクトをアンロード。
2.5 構成マネージャーの設定
ビルド(Build) > 構成マネージャー(Configure Manager) を選択し、Androidプロジェクトの配置(Publish)にチェックを入れます。
その後ソリューションリビルドします。
3. 実行
3.1 デバッグ実行
2.5 でリビルドが成功したら、Visual Studioでデバッグ実行します。
まとめ
HomeだとHyper-Vの設定が少し面倒ですがこれで開発できそうです。
Proでも同様に実行できましたが、エミュレータ起動速度が早い気がするので仮想マシン周りでなにか差異があるのかもしれません。
モバイルのクロスプラットフォーム開発だと同じXAML UIではMAUIの方が多少古いプラットフォームまでサポートしていますが、AvaloniUIも最新のバージョンはサポートされています。
WPFと下記味が近い分AvaloniaUIの方が手を付けやすく個人的に好感を持っています。
レンダリングエンジンをFlutter同様Skiaを採用しているのでネイティブに依存する苦労が減ったりするんだろうかと期待しています。
WPF使うならAvaloniaUIでの開発がスタンダードになりそう。
参考