4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AvaloniaUIをAndroidビルドする🚀

Last updated at Posted at 2023-07-29

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の機能の有効化または無効化」 から仮想マシンプラットフォームにチェックを入れます。
image.png

Homeの場合は上記記事にあるバッチファイルを実行し仮想マシンのインストールをおこないます。
この時、再起動まで終わったらHyper-Vの起動はおよび仮想マシンの作成を手動で行う必要はありません。

Hyper-Vの設定が完了したらAndroid Emulatorの起動を確認します。
Visual Studioのツール > Android > Androidデバイスマネージャーをクリック。
ダイアログが開くので「開始」をクリック。

するとAndroidのエミュレータが起動します。
暫く待つとデフォルトアプリのあるAndroidのホーム画面が表示されます。
image.png

確認できたら一旦エミュレータは閉じてます。

2. プロジェクト作成

2.1 テンプレートの選択

Visual Studioからテンプレートを選択
image.png

こんな感じ
image.png

とりあえずDesktopプロジェクトとBrowserプロジェクトはビルド&実行できるので確認します。
image.png
できました。

2.2 Nugetバージョン更新

テンプレートで作成したままだとNugetバージョンが古い場合があるのでv11.0以上にします。

2.3 Androidエミュレータの設定

上記AvalouinaUIのハウツーページにあるリンク先の手順に従います。
と言いながら、ワークロードからインストールすると必要なコンポーネントはすべてインストールされていたので私は特に何もしませんでした。

一応設定項目こんな感じ。
image.png
image.png

2.4 iOSプロジェクトのアンロード

今回はiOSビルドは対象外なのでプロジェクトをアンロードします。
環境が整っていないとビルドエラーになって邪魔なので取り除きます。

ソリューションエクスプローラーからAndroidプロジェクトをアンロード。

2.5 構成マネージャーの設定

ビルド(Build) > 構成マネージャー(Configure Manager) を選択し、Androidプロジェクトの配置(Publish)にチェックを入れます。

これをやらずに数時間潰しました。
image.png

その後ソリューションリビルドします。

3. 実行

3.1 デバッグ実行

2.5 でリビルドが成功したら、Visual Studioでデバッグ実行します。
image.png

まとめ

HomeだとHyper-Vの設定が少し面倒ですがこれで開発できそうです。
Proでも同様に実行できましたが、エミュレータ起動速度が早い気がするので仮想マシン周りでなにか差異があるのかもしれません。

モバイルのクロスプラットフォーム開発だと同じXAML UIではMAUIの方が多少古いプラットフォームまでサポートしていますが、AvaloniUIも最新のバージョンはサポートされています。
WPFと下記味が近い分AvaloniaUIの方が手を付けやすく個人的に好感を持っています。

レンダリングエンジンをFlutter同様Skiaを採用しているのでネイティブに依存する苦労が減ったりするんだろうかと期待しています。

WPF使うならAvaloniaUIでの開発がスタンダードになりそう。

参考

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?