Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
.NET MAUI+Blazor を使ってみた
Search
Tiny Mouse
July 14, 2023
Technology
200
0
Share
.NET MAUI+Blazor を使ってみた
mobile.stmn #1 2023/7/14
Tiny Mouse
July 14, 2023
More Decks by Tiny Mouse
See All by Tiny Mouse
今年がんばったこと
tinymouse
0
73
今年がんばったこと
tinymouse
0
120
【LT会】インプット・アウトプットどうしてる?
tinymouse
0
59
今年がんばったこと
tinymouse
0
180
【LT会】この技術書がすごい
tinymouse
1
210
蔵書管理アプリを作り直した
tinymouse
1
1.1k
Windows アプリの開発手段の選択肢をまとめてみた
tinymouse
0
180
蔵書管理アプリを作りました
tinymouse
0
680
Google Apps Script アプリを配付する
tinymouse
0
140
Other Decks in Technology
See All in Technology
[モダンアプリ勉強会]今更聞けないGit/GitHub入門
tsukuboshi
0
250
Dynamic Workersについて
yusukebe
2
580
GoとSIMDとWasmの今。
askua
3
500
AIにフローを作らせようとして挫折した話
hamatsutaichi
0
160
Diagnosing performance problems without the guesswork
elenatanasoiu
0
160
Terraformモジュールは、なぜ「魔境」化するのか
hayama17
1
190
「嘘をつくテスト」の失敗例から学ぶ 良いテストコード #frontend_phpcon_do
asumikam
0
220
BigQuery の Cross-cloud Lakehouse への歩み
phaya72
2
550
コードレビューを制するチームがソフトウェアデリバリーのフローを制す / Beyond Code Review: Distributing Its Responsibilities Across the SDLC
mtx2s
3
1k
実装は速くなった、レビューはどうする? ― 自身のレビューをAIで再現させるサーヴァントエンジニアリングのすゝめ / Implementation got faster. So what about reviews? — An invitation to Servant Engineering: Recreating your own code reviews with AI
nrslib
6
3.7k
地元にいないローカルオーガナイザーの立ち回り
uvb_76
1
470
価格.comをAI駆動で全面刷新する ー 30年分の技術的負債を返し、次の30年の土台をつくる ー / AI Engineering Summit Tokyo 2026
tkyowa
47
52k
Featured
See All Featured
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.5k
Accessibility Awareness
sabderemane
1
130
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
720
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
460
How to Talk to Developers About Accessibility
jct
2
220
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
200
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
600
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
380
Java REST API Framework Comparison - PWX 2021
mraible
34
9.3k
4 Signs Your Business is Dying
shpigford
187
22k
Site-Speed That Sticks
csswizardry
13
1.2k
Transcript
Tiny Mouse .NET MAUI+Blazor を使ってみた mobile.stmn #1 2023/7/14
n @tinymouse_jp n SI 企業の SE n 日曜プログラマ n 二児の父
n 静岡県浜松市出身 n 東京都品川区在住。名古屋市在住。 n Windows 愛用。iPhone Android スマホ n Android の会浜松支部、Hamamatsu.js 、 よちよちサンデープログラミングの会→なごや個人開発者の集い Tiny Mouse
モバイルアプリの開発手段・・どれを使おうか l OS ネイティブ l ウェブアプリ l Cordova l Flutter
l React Native l .NET MAUI
OS ネイティブ n OS メーカーが用意した開発ツー ルを使って作成する n 作成されたアプリを実機にインス トールする n
OS の機能を直接呼出できる
ウェブアプリ n HTML+JavaScript で作成する n ウェブサーバに配置しておく。実 行時にブラウザが受信する n ブラウザがコードを実行する n
ブラウザが用意していない OS の 機能は使えない
Cordova n HTML+JavaScript で記述する n OS の実行ファイルができる=ス トアなどで配布できる n プラグインを使えばブラウザが用
意していない OS の機能が使える
.NET MAUI (Multi-Platform App UI) n Microsoft が提供。2022 年に正式リリース n
Android、iOS、macOS、Windows で実行できるアプリ を開発できる n XAML+C# で記述する。Xamarin.Forms の後継 n XAML で UI を書くのは、個人的につらい
.NET MAUI n XAML+C# で記述する n Android、iOS、macOS、 Windows で実行できるアプリを開 発できる
.NET Blazor n Microsoft が提供。2018 年から n ウェブブラウザで実行されるアプリを開発できる n HTML+C#
で記述する n サーバで実行されて HTML がレンダリングされるタイプ 「Blazor Server アプリ」と、クライアントのブラウザ上で 実行されるタイプ「Blazor WebAssembly アプリ」がある
Blazor WebAssembly n HTML+C# で記述する n ウェブサーバに配置しておく。実 行時にブラウザが受信する n ブラウザがコードを実行する
.NET MAUI+Blazor n 「Blazor Hybrid」ともいう n .NET MAUI アプリのウィンドウ上に BlazorWebView
を 置いて、そこで Blazor アプリが動く=Android、iOS、 macOS、Windows で実行できるアプリを開発できる n OS の機能を直接呼出するコードが書ける
.NET MAUI+Blazor n HTML+C# で記述する n OS の実行ファイルができる=ス トアなどで配布できる n
ブラウザが用意していない OS の 機能が使える
Qiita に書いた https://qiita.com/tinymouse/items/69ae9a2c7761a83c0529 .NET MAUI+Blazor を始めてみた
HTML+C# でコードを書く @page "/counter" <p role="status">Current count: @currentCount</p> <button class="btn
btn-primary" @onclick="IncrementCount">Click me</button> @code { private int currentCount = 0; private void IncrementCount() { currentCount++; } } .NET MAUI+Blazor n HTML+JavaScript で書くのと似ている n C# プログラマが JavaScript を覚えなくていい n CSS が普通に使える
コンポーネントを作って使う <p>Current count: @currentCount</p> <button class="btn btn-primary" @onclick="IncrementCount">Click me</button> @code
{ int currentCount = 0; [Parameter] public int IncrementAmount { get; set; } = 1; void IncrementCount() { .NET MAUI+Blazor <Counter IncrementAmount="10" /> Counter.razor n コンポーネント=独自タグを作って使える
サードパーティのコンポーネントを使う .NET MAUI+Blazor
Qiita に書いた https://qiita.com/tinymouse/items/01b1bc4a74429ddc0b17 .NET MAUI+Blazor を始めてみた
public partial class SpeechToTextService { private SpeechRecognitionListener listener; private SpeechRecognizer
speechRecognizer; public partial async Task<string> Listen(CultureInfo culture, IProgress<strin { var taskResult = new TaskCompletionSource<string>(); listener = new SpeechRecognitionListener { .NET MAUI+Blazor プラットフォームごとの コードを書く
いいところ、残念なところ .NET MAUI+Blazor n 同じコードで異なる OS のアプリを作ることができる n HTML+JavaScript で書くのと似ている
n C# で書ける n 実行ファイルのサイズが大きい n 起動して実行されるまで遅い n WinForms のようにビジュアルにデザインできない n Cordova や Electron が安定して使えれば、それでいい ような気がする
.NET MAUI+Blazor を使ってみよう