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
0
170
.NET MAUI+Blazor を使ってみた
mobile.stmn #1 2023/7/14
Tiny Mouse
July 14, 2023
Tweet
Share
More Decks by Tiny Mouse
See All by Tiny Mouse
今年がんばったこと
tinymouse
0
72
【LT会】インプット・アウトプットどうしてる?
tinymouse
0
38
今年がんばったこと
tinymouse
0
170
【LT会】この技術書がすごい
tinymouse
1
180
蔵書管理アプリを作り直した
tinymouse
1
950
Windows アプリの開発手段の選択肢をまとめてみた
tinymouse
0
140
蔵書管理アプリを作りました
tinymouse
0
630
Google Apps Script アプリを配付する
tinymouse
0
110
蔵書管理アプリを作っています
tinymouse
1
530
Other Decks in Technology
See All in Technology
2025年になってもまだMySQLが好き
yoku0825
8
4.5k
AI時代に非連続な成長を実現するエンジニアリング戦略
sansantech
PRO
3
1.2k
テストを軸にした生き残り術
kworkdev
PRO
0
190
Autonomous Database - Dedicated 技術詳細 / adb-d_technical_detail_jp
oracle4engineer
PRO
4
10k
Skrub: machine-learning with dataframes
gaelvaroquaux
0
120
【実演版】カンファレンス登壇者・スタッフにこそ知ってほしいマイクの使い方 / 大吉祥寺.pm 2025
arthur1
1
680
共有と分離 - Compose Multiplatform "本番導入" の設計指針
error96num
1
360
COVESA VSSによる車両データモデルの標準化とAWS IoT FleetWiseの活用
osawa
1
260
allow_retry と Arel.sql / allow_retry and Arel.sql
euglena1215
1
160
未経験者・初心者に贈る!40分でわかるAndroidアプリ開発の今と大事なポイント
operando
3
340
roppongirb_20250911
igaiga
0
190
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
8.7k
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3k
Building Better People: How to give real-time feedback that sticks.
wjessup
368
19k
The Straight Up "How To Draw Better" Workshop
denniskardys
236
140k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.9k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.2k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
4 Signs Your Business is Dying
shpigford
184
22k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
Into the Great Unknown - MozCon
thekraken
40
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 を使ってみよう