その本の「はじめに」には、著者の「伝えたいこと」がギュッと詰め込まれています。この連載では毎日、おすすめ本の「はじめに」と「目次」をご紹介します。今日は増田智明さんの 『.NET MAUIによるマルチプラットフォームアプリ開発 iOS、Android、Windows、macOS対応アプリをC#で開発』 です。
【はじめに】
スマートフォンのアプリケーションを作る際に、真っ先に考えるのはiOSとAndroidのアプリケーションを順番に作るのか、それとも同時に作るのか、という選択でしょう。iOSアプリの開発者であればSwiftやObjective-Cを得意とし、Androidアプリの開発者であればJavaやKotlinを第一言語としているでしょう。アプリを作るときにその動作環境(OSやユーザーインターフェイスなど)に適したプログラム言語を選び、それを学ぶ必要があります。iOSやAndroiddといった複数のプラットフォームのアプリを開発するには、通常であればそれぞれの専門の開発者を抱える必要があります。しかし、iOSアプリとAndroidアプリを同時に設計、開発、リリースするのに、複数の開発体制を抱えるのはコスト的に大変です。このために考え出されたのが、.NET MAUIのようなマルチプラットフォームアプリの開発環境です。
.NET MAUIは、かつてXamarn.Formsと呼ばれていたフレームワークの後継で、Xamarin.Formsと同様にC# を使ってプログラミングをします。Windowsアプリケーションの作成に慣れている読者であれば、SwiftやKotlinを新しく学ぶよりも(当然のことながら、新しく学んでも構いません!)、できることならばC#を使ってスマートフォンのアプリケーションを組んでみたいと思うでしょう。まさに、XamarinファミリであるXamarin.iOSやXamarin.Android、そしてXamarin.Formsは、C#のプログラマがスムースにスマートフォンのアプリを開発できるものでした。
Xamarin.Formsの後継として投入された.NET MAUIは、マルチプラットフォームに対してのアプリ同時リリース、そしてC#というプログラム言語を利用するという、Xamarin.Formsと同じ利点を持つだけではありません。さらに、.NET MAUIでは、アプリが動作するランタイムを.NET 6あるいは.NET 7という「.NETプラットフォーム拡張(.NET Platform Extensions)」という形で、iPhoneやAndroid、さらにはWindowsとmacOSを1つのソースコード、1つのプロジェクトとして扱えるようになっています。いままで、iPhoneとAndroidの違いを吸収しつつ、同時に共通化するためにアセンブリを分割して管理していたのですが、.NET MAUIではシングルプロジェクトとしてまとめて扱えるようになっています。
本書では、.NET MAUIアプリケーションを作成するときの環境の構築の仕方から主に利用されるUIコントロールの使い方を解説しています。さらに、モバイル環境で必須となるWeb APIの利用や内部ストレージの操作、加速度センサーや位置情報(GPS)などの利用方法も加えています。フレームワークの利用では、MVVMパターン(Prism.Core、Reactive Property)や、MUVパターン(Comet)の解説も加えています。ZXingパッケージを利用したQRコードの読み取りなども含めました。さまざまな.NET MAUIのパーツを組み合わせることによって、基本的な学習用アプリだけなく、本格的なアプリがコーディングできるでしょう。
付録には、マルチプラットフォームアプリ開発が可能な同様のフレームワークとして、FlutterとReact Nativeとの比較を追加しました。これにより、.NET MAUIアプリ開発との違いを感じてもらえると思います。
なお、執筆時期の関係上、本書では.NET 6を使った解説となっていますが、現在(2022年12月)リリース済みである.NET 7とVisual Studio 2022 Version 17.4以降でも問題なく動作します。では、Xamarin.Forms後継の.NET MAUIアプリケーション開発の世界を存分にお楽しみください。
2022年12月 増田智明
【目次】