MENU

Xamarin — C#でiOS/Androidを書き、.NET MAUIへと結実した系譜

Xamarin アイキャッチ
Xamarin

Xamarinは、C#と.NETでiOS・Androidアプリを開発できるようにしたクロスプラットフォーム基盤です。2011年にMonoプロジェクトの開発者ミゲル・デ・イカザらが設立したXamarin社が提供を開始し、2016年にMicrosoftが買収。以降はVisual Studioに統合され、企業向けモバイル開発の選択肢として広まりました。2022年5月に登場した.NET MAUI(Multi-platform App UI)はXamarin.Formsの直系後継であり、2024年5月のXamarinサポート終了を経て、現在は.NET MAUIへと役割が引き継がれています。

目次

この記事の目次

  1. C#でネイティブを書く構造
  2. MonoからMAUIへの道のり
  3. 現場での使われ方
  4. 他クロスプラットフォーム陣営との違い
  5. まとめ

C#でネイティブを書く構造

C#でネイティブを書く構造

Xamarinは大きく分けて二層構造でした。下層は「Xamarin.iOS」「Xamarin.Android」というOS別バインディングで、iOSのUIKitやAndroidのandroid.app名前空間をほぼ1対1でC#から呼び出せるようにラップしたものです。このため、UI部分はOSの作法どおりに書く必要があり、本質的にはネイティブ開発に近い設計でした。ビジネスロジックや通信、データ処理は.NET Standard製のクラスライブラリとして共通化し、UIだけプラットフォーム別に書くのが基本パターンです。

その上に乗る「Xamarin.Forms」は、共通のXAMLマークアップから両OSのUIを生成する高水準フレームワークで、ButtonやEntryなどの抽象部品が、内部でUIButton/EditTextへ展開されました。MVVMパターンとデータバインディングを前提に、業務アプリ(社内ポータル、フィールドサービス、現場記録)でよく採用されたのがこの層です。.NET MAUIはXamarin.Formsを引き継ぎ、内部実装をハンドラー(描画責務をOS側に渡す薄い橋渡し役)方式へ刷新したものになっています。

MonoからMAUIへの道のり

MonoからMAUIへの道のり

源流は2001年にミゲル・デ・イカザが立ち上げた「Mono」プロジェクトで、Microsoftの.NETをLinux上でも動かすオープン実装として始まりました。Novell時代を経て独立し、2011年にXamarin社が設立。iOS向けの「MonoTouch」とAndroid向けの「Mono for Android」を商用提供し、後に名称をXamarin.iOS/Xamarin.Androidへ改めました。

2016年2月にMicrosoftがXamarin社を買収すると、それまで有償だったXamarinはVisual Studioに同梱され無償化。オープンソース化も進み、エンタープライズの開発標準として一気に普及しました。2020年に「.NET MAUI」の構想が発表され、2022年5月にGA。XamarinからMAUIへの公式移行ガイドが整備された後、Xamarin本体は2024年5月1日にサポート終了となり、新規プロジェクトはMAUIまたは別フレームワークへ移ることが推奨されています。

現場での使われ方

現場での使われ方

Xamarinが採用される典型は「すでにC#で書かれた業務ロジックがある」「Windowsアプリと共通の認証基盤を使いたい」「社内配布で長期保守する」といったケースでした。Microsoftの認証基盤Entra ID(旧Azure AD)やGraph APIとの連携、Office 365のドキュメント操作などをC#資産そのまま流用できるため、金融機関・製造業・自治体の業務アプリでよく見かけました。

現在ではXamarinそのものは新規開発の選択肢から外れ、.NET MAUIへの移行が進んでいます。MAUIはAndroid・iOS・macOS・Windows(WinUI 3)の4プラットフォームを単一プロジェクトで扱え、XAMLとC#の作法を残したまま、内部アーキテクチャを最新化したものです。Xamarinからの移行はそれなりに労力がかかるため、「サポート期限ギリギリまで運用→計画的にMAUI化」「保守だけ続けつつ新規はMAUIで作る」といった段階対応が現場では一般的です。

他クロスプラットフォーム陣営との違い

他クロスプラットフォーム陣営との違い

React NativeやFlutterと比べると、Xamarinはコミュニティ規模で劣勢でしたが、Microsoftの公式サポートと.NETエコシステム(Entity Framework、ASP.NET Core連携、Azure SDK等)に乗れる点が業務アプリで強みになりました。また、Windowsアプリ(UWPやWPF)と同じC#・XAMLの作法でモバイルも書けるため、Windows社内アプリ文化が根付く組織には自然な選択肢でした。

一方、UIのカスタマイズ性やアニメーション表現ではFlutterほどの自由度はなく、JavaScript系の豊富なパッケージ群を活かしたい場合はReact Nativeに分がありました。後継の.NET MAUIはハンドラー方式の採用で内部が軽量化され、起動速度やパフォーマンスが改善されていますが、生態系はまだ成長途上です。C#資産を活かしたい組織にとってはMAUIが現実解、ゼロから始める組織にはRN/Flutterが第一候補、という棲み分けが続いています。

まとめ

Xamarinは「C#でモバイルを書く」道を切り拓き、Microsoftの傘下で企業向けモバイル開発の定番となりました。2024年5月のサポート終了で本体の役目を終え、設計思想は.NET MAUIへと引き継がれています。既存資産を持つ組織はMAUI移行、新規はRN/Flutter/MAUIを比較検討、という現在地を押さえておきたい技術です。

※本記事はIT用語辞典の手書きドラフトです。公開前に最新情報・出典を確認のうえ加筆修正してください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次