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
79
【LT会】インプット・アウトプットどうしてる?
tinymouse
0
46
今年がんばったこと
tinymouse
0
170
【LT会】この技術書がすごい
tinymouse
1
180
蔵書管理アプリを作り直した
tinymouse
1
960
Windows アプリの開発手段の選択肢をまとめてみた
tinymouse
0
140
蔵書管理アプリを作りました
tinymouse
0
630
Google Apps Script アプリを配付する
tinymouse
0
120
蔵書管理アプリを作っています
tinymouse
1
530
Other Decks in Technology
See All in Technology
設計に疎いエンジニアでも始めやすいアーキテクチャドキュメント
phaya72
18
12k
20251027_マルチエージェントとは
almondo_event
1
500
SREのキャリアから経営に近づく - Enterprise Risk Managementを基に -
shonansurvivors
1
500
激動の時代を爆速リチーミングで乗り越えろ
sansantech
PRO
1
190
プロダクト開発と社内データ活用での、BI×AIの現在地 / Data_Findy
sansan_randd
1
690
20251029_Cursor Meetup Tokyo #02_MK_「あなたのAI、私のシェル」 - プロンプトインジェクションによるエージェントのハイジャック
mk0721
PRO
6
2.1k
[Journal club] Thinking in Space: How Multimodal Large Language Models See, Remember, and Recall Spaces
keio_smilab
PRO
0
100
AWS DMS で SQL Server を移行してみた/aws-dms-sql-server-migration
emiki
0
270
GTC 2025 : 가속되고 있는 미래
inureyes
PRO
0
140
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
2
190
abema-trace-sampling-observability-cost-optimization
tetsuya28
0
390
re:Invent 2025の見どころと便利アイテムをご紹介 / Highlights and Useful Items for re:Invent 2025
yuj1osm
0
450
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
658
61k
Writing Fast Ruby
sferik
630
62k
Bash Introduction
62gerente
615
210k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Git: the NoSQL Database
bkeepers
PRO
431
66k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Visualization
eitanlees
150
16k
Java REST API Framework Comparison - PWX 2021
mraible
34
8.9k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
116
20k
RailsConf 2023
tenderlove
30
1.3k
Why You Should Never Use an ORM
jnunemaker
PRO
60
9.6k
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 を使ってみよう