3
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?

Android スマホ (Google Pixel 6a) で Blazor アプリケーションを開発する

3
Last updated at Posted at 2025-12-15

.NET アプリケーション開発は Linux 上で可能

Google Pixel シリーズをはじめ、いくつかの Android デバイスでは「Linux ターミナル」の機能が使えます。Android スマートフォンで、Linux のターミナルを開いて、アプリケーション開発作業ができるんですね。

そしてそのいっぽうで、.NET SDK は Linux 用にも配布されています。

ということで、自分の手元には Google Pixel 6a があったので、「Android スマートフォンで、Blazor WebAssembly アプリケーションを開発して実行できるのは?」と考え、やってみました。

準備: Android で Linux ターミナルを使えるようにする

まずはじめに、Android デバイスの開発者モード (開発者向けオプション) を有効にします。

[設定] アプリから [デバイス情報] を開き、[ビルド番号] の箇所を 7 回連続でタップすると、開発者向けオプションが有効になります。

Android [設定] アプリ画面 [設定]アプリの[デバイス情報]画面にある[ビルド番号]

[ビルド番号]を連続タップ中 開発者向けオプションが有効化

開発者向けオプションが有効になったら、改めて [設定] アプリから [システム] > [開発者向けオプション] を開き、さらに [Linux 開発環境] を開いて、[(試験運用版) Android で Linux ターミナルを実行する] のスイッチを ON にします。

[設定] アプリの [システム] 画面にある [開発者向けオプション] 項目 [開発者向けオプション]画面の [Linux開発環境] 項目 [Linux 開発環境] 画面の [Linux ターミナルを実行する] オプション

そうするとアプリの一覧に [ターミナル] の項目がありますので、これを開きます。[ターミナル] を初めて開いたときに、Linux ターミナルのインストールを実行するか確認されますので、[インストール] を選んで進めます。

アプリ一覧に現れた [ターミナル] 初めて [ターミナル] を起動したときのインストール確認の画面

インストールが完了すると Linux 環境が立ち上がり、ターミナルが開きます。このあとの操作・作業がやりやすいように外部キーボードとマウスをつなぎ (自分は Bluetooth 接続のキーボードとマウスを使用しました)、横画面にしておきます。

Google Pixel 6a 上で Linux ターミナルが起動したところ

ちなみに、ディストリビューションは Debian 12 のようでした。

droid@debian: ~$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME= "Debian GNU/Linux"
VERSION_ID= "12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

cat /etc/os-release を実行したところ

念のためパッケージはすべて更新しておきました。

sudo apt-get update
sudo apt-get upgrade

.NET SDK をインストールする

以上で Debian Linux 環境ができましたので、続けて、.NET SDK をインストールしましょう。

手順としては、まずは以下のコマンドを実行して Microsoft のパッケージリポジトリを追加登録します。

wget https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

 Microsoft のパッケージリポジトリを追加登録したところ

パッケージリポジトリが追加できたので、あとは apt-get コマンドで、.NET SDK (本記事執筆時点での最新 LTS であるバージョン 10) をインストールします。

sudo apt-get update
sudo apt-get install -y dotnet-sdk-10.0

以上で .NET 10 SDK がインストールされ、"dotnet" コマンドが使えるようになりました。

dotnet --version
10.0.101

.NET 10 SDK のインストールが完了し、バージョンを確認している様子

事前に Microsoft のパッケージリポジトリの追加が必要とはいえ、普通に apt-get コマンドで .NET SDK がインストールできます。 別に "無理くり四苦八苦しながらインストールする" ようなことはありませんね。

Blazor WebAssembly プロジェクトを新規作成する

では早速、Blazor WebAssembly プロジェクトを作ってみましょう。以下のように dotnet コマンドを使ってプロジェクトを新規作成するだけです。

dotnet new blazorwasm -n MyBlazorWasmApp

dotnet new コマンドで新規に Blazor WebAssembly プロジェクトを生成したところ

生成されたプロジェクトの内容は以下のとおりです。

cd ./MyBlazorWasmApp
ls -l
-rw-r--r-- 1 droid users  286 Dec 13 02:52 App.razor
drwxr-xr-x 2 droid users 4096 Dec 13 02:52 Layout
-rw-r--r-- 1 droid users  549 Dec 13 02:52 MyBlazorWasmApp.csproj
drwxr-xr-x 2 droid users 4096 Dec 13 02:52 Pages
-rw-r--r-- 1 droid users  429 Dec 13 02:52 Program.cs
drwxr-xr-x 2 droid users 4096 Dec 13 02:52 Properties
-rw-r--r-- 1 droid users  383 Dec 13 02:52 _Imports.razor
drwxr-xr-x 2 droid users 4096 Dec 13 02:52 obj
drwxr-xr-x 2 droid users 4096 Dec 13 02:52 wwwroot

生成された Blazor WebAssembly プロジェクトのファイル一覧

このまま実行してもいいのですが、ちょっとだけ、ページ上の記載を書き換えてみましょう。nano ./Pages/Home.razor を実行して、nano エディタで Home.razor を開き、"Hello, World!" と書かれているところを "Hello, .NET 10 on Android!" にしてみます。

nano エディタを使って Home.razor を編集している様子

Ctrl + O を押して保存、Ctrl + X を押して nano エディタを終了します。

実行

いよいよ実行してみましょう。dotnet run コマンドを実行してみます。すると無事、NuGet パッケージの復元からビルドまで成功し、開発用サーバーが起動開始しました。

dotnet run コマンドを実行し、Blazor WebAssembly プロジェクトが開始された様子

コンソールの出力をみると、開発サーバーはポート 5027 でリッスンしているようです。そこでこの Linux 環境のポート設定を変更し、ポート 5027 でのリッスンを許可するようにします。Linux ターミナル画面右上の歯車のアイコンをクリック (タップ) して [設定] 画面を開き、[ポートの管理] をクリックします。

Linux ターミナルの [設定] 画面

[ポートの管理] 画面が開いたら、[保存済みの許可ポート] 横のプラス [+] ボタンをクリックし、

[ポートの管理] 画面

すると、[新しいポートを許可する] プロンプトが表示されるので、ここに、先ほど確認した、Blazor WebAssembly プロジェクトがリッスンしているポート番号 (今回は 5027) を入力して [保存] をクリックします。

[ポートの管理] 画面で新しいポートを許可しているところ

以上で動作確認ができるはずです。その Android 上で Chrome ブラウザを起動し、URL http://localhost:5027 をアドレスバーに入力すると、無事、Blazor WebAssembly アプリケーションが表示されました!

Androdi デバイス上で、Linux ターミナルで実行中の Blazor WebAssembly プロジェクトの URL を開いたところ

もちろん、カウンターも普通に動作しますし、

"Counter" ページの様子

HttpClient による JSON のフェッチも動作していました。

"Weather" ページの様子

また、このあと、Blazor Server アプリケーションプロジェクトの新規作成から実行までも試しましたが、こちらもしっかり SignalR 接続が機能して、正常に動作しました。もう当たり前過ぎるので、これ以上のスクリーンショットは割愛します。

おわりに

実際のところ、Android スマフォで Blazor アプリケーションを開発するかというと、たぶんやらないとは思います😅 でもそれは、単純に、もっぱら画面の狭さに起因するもので、Android スマホ上での開発環境の構築・整備それ自体に難があるわけではありませんでした。すなわち、

  • Android の一部機種で有効な Linux 開発環境は、まるっと普通に Debian Linux だし、
  • .NET SDK は普通に apt-get でインストールするだけで Linux 上でも何の手間もなくそのまま使えてしまうし、
  • Blazor WebAssembly はブラウザ上の WebAssembly を使って、C#、というか .NET の中間言語バイナリをそのまま実行してしまうのだけれども、様々なツールチェインを駆使してやっとこさできるというものでもなく、WebAssembly の知識なしでも .NET SDK だけでしれっと作れてしまうし、ビルド時間も数秒程度で済んでしまうし、

ということを、この記事を通して訴えたかったです。"スマホで WebAssembly アプリ開発" という技術的な面白さもあるんですけれども、かつては "普通" にはできなかったいろんなことが、いまは "普通" にできるようになっているんだなぁ、 というように、認識を新たにしたいな、と思った次第でした。

おまけ

"「やろうと思えばできる」というのとLinux の上で動かすのが当たり前という物とでは話がちがう" という点には全くもって共感しかありません。技術的な挑戦や意義であったりあるいは単純にその面白さと、それが実運用レベルで使い物になるかどうかは別の話だと、まったくもってそう思います。ただ、話の前提であった「C# (.NET) が Linux でも動かせる」のは「やろうと思えばできる」のレベルではなくて、今は実は「ごくごく自然体に・普通にできる」のレベルだったですね。YouTube の Microsoft の公式チャンネルでも、.NET 関連の開発チームの中の人が (Linux ではないですが) 普通にご自身の普段使いの MacBook で VSCode 使ってデモしてますし、.NET の Web サーバーアプリケーションは今や Linux コンテナで稼働させることのほうが多いでしょうしね。

3
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
3
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?