top
技術

Image

はじめに

Windows 上でラジオを聴けるアプリを .NET の MAUI Blazor の習作として作ってみました✨

Radiko、音泉、響 に対応しています。

本題

MAUI

去年から、にわかに盛り上がりをみせている .NET の最新の開発フレームワークの MAUI。

個人で Windows アプリを作る上で、よく WinForms や WPF を使っていて、簡単なツールを作るなら WinForms、多少デザインにこだわりたいきときは WPF を選択することが多いです。

ただ、WPF は作り方に癖があったり (MVVM)、データの連動 (Pub / Sub系) で手間に感じることも多かったりで (単に、作り方が下手なだけだと思いますけど・・・💦)、もう少し生産性が高くて今時のフレームワークが前から欲しいと思っていました。

ですが、UWP や Xamarin だと、個人で使う程度の簡単な Windows アプリを作る場合、いまいち WPF と比べてメリットを感じられず、デザインを重視するアプリは WPF で作るに留めていました。

そこにきて登場した MAUI。

正確には自分が選択したのは MAUI Blazor といって、ウェブサイトを作るような感じで HTML と CSS と C# を使ってアプリを開発することができます。

Xaml ベースの純正 MAUI と比較すると、個人的には MAUI Blazor を推します。

理由は MAUI Blazor の方が開発したアプリを Webアプリとして再利用しやすいからです。

また、データバインディングなどの処理も Blazor の方がコードの記述量やファイル数が少なくなってプロジェクトの管理コストが減る印象です。(とはいっても、両方を実際に開発してみて比較検証した訳ではないので、あくまで印象止まりです💦)

自分は、この HiLow Web のように Webサイトの開発もするので、Web の知識との相乗効果も高いだろう MAUI Blazor を選択しました。

ラジオ視聴アプリ

実際に MAUI で何を作るかについて、最初は簡易ミュージックプレイヤーを作ろうとしたのですが、音楽ファイルがあるフォルダを選択するための Folder Picker が製作時点で公式にはなかったので断念。

※ 現在は公式で Folder Picker が用意されています。上記のページを参考。

色々と考えた末、ラジオを試聴できるアプリを作ることに決めました。

ラジオをテーマにしたのは、友達が良く聞く番組があるということから、ラジオという題材に少し興味があったということ & 調べていたときに Radiko のサイトが個人的に使いづらいと思ったこと、そしてミュージックプレイヤーを作ることにも繋がるからです。

また、ラジオのストリーミングを取得する際の手続きを簡潔にまとめていた神サイトがあったので、すぐに実装できそうだと思ったことが、最後の決め手になりました。

敢えてリンクは貼りませんが、手続きをまとめてくれていたサイト様には感謝です✨

実際に MAUI で作ってみると、開発体験も良く好印象で、Xamarin の時と違ってプラットフォームがプロジェクト単位ではなくフォルダ単位で別けられているのみなので、プロジェクト全体で重たい & 面倒という印象を受けず、使いやすい & 理解しやすいと感じました。

Image

WPF と比較して生産性も高いと思いました。

WPF だと MVVM で開発する場合、View と ViewModel で別々にファイルを作る必要があったり、View 自体も UI の Xaml と C# のコードビハインドで分かれていますからね・・・

これからはデザインを重視したアプリを開発するときは MAUI Blazor も十分に選択肢の一つとして入りそうです! やった!

もし MAUI に興味がある方は、是非とも試してみてください😊

おわりに

今回作ったラジオ視聴アプリは 「Radio Downloader」 という名称で、ポートフォリオページに掲載しました。

もし良ければ、他の作品もあわせて御覧になってくださいね✨