LASSIC Media らしくメディア

2026.07.22 らしくコラム

Xamarin終了、MAUI移行は内製と外注どちら?

LASSIC IT事業部|元請(プライムベンダー)としてシステム保守・運用を受託

モバイルアプリ移行のイメージ

この記事のポイント

  • Xamarinは2024年5月1日、Xamarin.Formsを含む全SDKで公式サポートが終了しました。
  • サポート終了後はセキュリティ更新や新APIへの対応が止まり、アプリストア審査や将来のOS更新への追随に影響が及ぶとされています。
  • 移行には.NET Upgrade Assistantによる自動変換と手動移行があり、実行後の追加対応や内製・外注の判断が必要になります。

Xamarinサポート終了とは?2024年5月1日に何が終わったか

アプリ開発のイメージ

Xamarinは、2024年5月1日をもってXamarin.Forms・Xamarin.Android・Xamarin.iOS・Xamarin.Macを含むすべてのSDKで公式サポートが終了しました*1。Microsoftが公開しているサポートポリシーページには、各SDKの最終バージョンとして、Xamarin.Android 13(Android API 34対応、最終パッチ13.2.2.0)、Xamarin.Forms 5.0(最終パッチ5.0.0.2612)、Xamarin.iOS 16(Xcode 15互換、最終パッチ16.0.523)が明記されています*1

図
図:XamarinサポートSDKから.NET MAUIへ至る移行の流れ(SDK形式化→Upgrade Assistant→.NET MAUI)

サポート終了とは、開発元がセキュリティ更新・不具合修正・オンラインでの技術支援の提供を止める区切りを指します。公式ページには、終了後は保護のためのセキュリティ更新が提供されなくなり、信頼性やセキュリティに関する修正も止まり、Android API 34やXcode 15以降の新しいSDKへの対応は予定されていないと記載されています*1。自社で運用しているモバイルアプリがXamarin.Forms等で作られている場合、まずはどのバージョンで開発されているかを棚卸しすることが移行検討の出発点になるでしょう。

サポート終了後に生じる3つのリスク

ビルド自体はしばらく可能

Xamarinプロジェクトのビルドは、サポート終了後もすぐにできなくなるわけではありません。.NET MAUIの開発チームによるGitHub上のディスカッションでは、最後にサポートされたバージョンのVisual Studio 2022を使い続ければビルドは継続できるとされています*5。ただし、Azure Pipelinesなどクラウド型のビルド環境では追加の設定対応が必要になる場合があると案内されています*5

ストア審査への対応がいずれ難しくなる

同ディスカッションでは、Apple App StoreがXcode 15でビルドしたXamarinアプリを受け付ける期限の目安として2025年4月ごろ、Google PlayについてもAndroid API 34を対象とした受け付け期限の目安として2025年8月ごろが示されていました(いずれも「likely」という留保付きの見立てです)*5。本稿執筆時点ではこれらの時期はすでに経過しており、新規アプリの提出は事実上できず、既存アプリの更新提出にも制約が及んでいる可能性がある状況です。実際の審査状況は各ストアの最新ポリシーで確認する必要があります(公式で要確認)。

新しいOSバージョンに追随できなくなる

Xamarinの各SDKは、Android API 34・Xcode 15(iOS/iPadOS 17、macOS 14)が対応する最後のバージョンとして固定されています*1*5。これより新しいOSバージョンの機能やAPI変更に追随できないため、端末側のOSアップデートが進むほど、動作検証や不具合対応の負担が増えていく構造です。移行を先送りするほど、追随すべきギャップが積み上がっていく点に注意が必要でしょう。

.NET MAUIとは?Xamarin.Formsの後継として何が変わったか

.NET MAUI(.NET Multi-platform App UI)は、C#とXAMLを使ってAndroid・iOS・macOS・Windows向けのネイティブアプリを単一のコードベースから作成できる、オープンソースのクロスプラットフォームフレームワークです*3。公式ドキュメントは、.NET MAUIをXamarin.Formsの進化形と位置づけており、モバイル向けだった対象範囲をデスクトップにまで広げ、UIコントロールを性能と拡張性の観点から作り直したものと説明しています*3

Xamarin.Formsを使っていた開発者であれば多くの類似点に気づく一方、差異も存在します*3。代表的な違いが「単一プロジェクト」の仕組みです。従来はプラットフォームごとにプロジェクトを分ける必要がありましたが、.NET MAUIではマルチターゲティングを使い、Android・iOS・macOS・Windowsを1つの共有プロジェクトで対象にできます*3。あわせて、アプリを実行したまま画面やロジックの変更を反映できるホットリロードにも対応しています*3

移行方式の選択肢:Upgrade Assistantによる自動変換と手動移行

公式の移行ガイドでは、Xamarin.Formsアプリを.NET MAUIへ移す方法として、大きく2つの道筋が示されています*2。1つ目は、.NET Upgrade Assistantというコマンドラインツールを使い、マルチプロジェクト構成のXamarin.Formsアプリをマルチプロジェクト構成の.NET MAUIアプリへ変換する方法です*2。2つ目は、Upgrade Assistantを使わずに手動でマルチプロジェクトのまま移行するか、あるいはシングルプロジェクト構成の.NET MAUIアプリへ手動で移行する方法です*2

Upgrade Assistantは、Xamarin.Formsのクラスライブラリ・Xamarin.iOSプロジェクト・Xamarin.AndroidプロジェクトをSDKスタイルのプロジェクトに変換し、対象フレームワークをnet8.0-android・net8.0-iosなどへ更新し、UseMauiプロパティを追加します*4。あわせて、Xamarin.FormsおよびXamarin.EssentialsのNuGetパッケージを削除し、Xamarin.CommunityToolkitを.NET MAUI Community Toolkitへ置き換え、名前空間をMicrosoft.MauiおよびMicrosoft.Maui.Controlsへ一括変更します*4。ただし、ツールを実行した後も追加の移行作業が必要になる、と公式ドキュメントは明記しています*4。Upgrade Assistantの利用にはXamarin.Forms 4.8以上が前提となり、公式はXamarin.Forms 5.0かつ.NET Standard 2.0以上での利用を推奨しています*4

移行の進め方:SDKスタイル化からアップグレード実行までの流れ

公式ガイドが示す移行の前提は、すべてのプロジェクトをSDKスタイルにする必要がある一方、アプリの書き直しは不要で、マルチプロジェクト構成を無理にシングルプロジェクトへまとめる必要もないという点です*2。この前提を踏まえ、手動で進める場合の流れは大きく2ステップに整理されています*2

第一に、Xamarin.Android・Xamarin.iOS・Xamarin.MacのネイティブプロジェクトをSDKスタイルへ更新し、依存関係を.NET 8へ引き上げます*2。あわせて、Xamarin.Forms UWPプロジェクトを使っている場合は、.NET MAUIのWinUI 3プロジェクトへ移す作業も発生します*2。第二に、Xamarin.Formsのライブラリプロジェクトを.NET MAUIへ移行します*2。Upgrade Assistantを使う場合、CLI版であればdotnet tool install -g upgrade-assistantでツールを導入し、対象プロジェクトのフォルダでupgrade-assistant upgradeコマンドを実行する流れになります*4。移行に着手する前にXamarin.Forms 5への更新と依存パッケージの最新化を済ませておくと、Xamarin.Formsと.NET MAUIとの API差分を小さくできる、と公式は案内しています*4

移行できないプロジェクトタイプと対応の限界

公式の移行ガイドは、アップグレード対応するXamarinプロジェクトタイプを一覧で示しています。Xamarin.Android・Xamarin.iOS・Xamarin.Mac・Xamarin.tvOS・Xamarin.Forms・Xamarin.Forms UWP・iOS App Extensions・Android Wear・Android/iOSバインディングライブラリ・SpriteKit・SceneKit・Metalは、いずれもアップグレードの対象として案内されています*2。一方で、OpenGLはOpenTKが利用できなくなるためiOS側では対象外となり、Xamarin.watchOSはアップグレード対象になっておらず、Swift拡張機能を.NET for iOSアプリへ組み込む方法が代替案として挙げられています*2

また、Upgrade Assistantというツール自体は、UWPプロジェクト・iOS拡張プロジェクト・バインディングプロジェクトのアップグレードには対応していない点にも注意が必要です*4。これらのプロジェクトタイプを含むアプリでは、ツールによる自動変換だけで完結せず、手動での移行作業を組み合わせる前提で計画を立てる必要があるでしょう。

内製移行と外注委託のコスト構造比較

Xamarinから.NET MAUIへの移行は、社内で対応する内製と、外部パートナーへ委託する外注のどちらでも進められます。両者では必要な専門知識や体制の重心が異なるため、以下の表に主な違いを整理しました。

比較項目 内製移行 外注委託
必要な専門知識 SDKスタイルへの変換・依存パッケージの整理・プラットフォーム別のビルド設定など、.NET MAUI特有の知識を自社で身につける必要があります*4 移行経験を持つパートナーが変換作業と検証を担うため、社内での知識習得は最小限で済みます
Upgrade Assistant後の手動対応 ツールで変換しきれない箇所の洗い出しと修正を自社の開発リソースで行います*4 変換後の手動対応まで含めて委託先が担当します
ストア審査・OS追随体制 審査要件やOSアップデートの追跡を自社で継続的に行う体制が必要です 審査対応やOS更新への追随を含めて継続的な保守を任せられます
移行にかかる期間の見通し アプリの規模や対象プロジェクトタイプによって変動し、社内での見積りが必要です 類似案件の実績をもとに、早い段階で期間の見通しを共有してもらえる場合があります

外注に委託した場合の違い

専門パートナーに移行を委託すると、現行アプリの棚卸しからSDKスタイルへの変換、Upgrade Assistant実行後の手動対応、ストア審査に向けた動作検証まで、一連の工程をまとめて任せられます。自社の開発チームだけで対応しようとすると、対象プロジェクトタイプの洗い出しや構成変更の影響範囲確認だけで時間がかかる場面でも、複数のクロスプラットフォームアプリ移行を扱ってきた知見があれば、着手から検証までの期間を圧縮しやすくなります。

内製と外注のどちらを選ぶ場合でも、まずは自社アプリがどのXamarin SDKバージョンで作られているか、Upgrade Assistantが対象外とするプロジェクトタイプを含んでいないかを整理することが出発点になるでしょう。

まとめ:Xamarinサポート終了後に押さえる3つの判断軸

本稿ではXamarinサポート終了と.NET MAUIへの移行について、Microsoft公式ドキュメントおよび.NET MAUI開発チームによる情報をもとに整理しました。要点は次の3つに集約されるでしょう。第一に、Xamarinは2024年5月1日にXamarin.Formsを含む全SDKでサポートが終了しており、ビルドは当面続けられるものの、ストア審査やOS追随の面で影響が広がっています*1*5。第二に、.NET MAUIへの移行にはUpgrade Assistantによる自動変換と手動移行があり、いずれの方式でも実行後の追加対応が前提となります*2*4。第三に、移行の実行を内製で担うか外注に委託するかは、必要な専門知識・体制・期間の見通しをもとに判断する必要があるでしょう。

LASSICに相談するメリット

LASSIC IT事業部は、モバイルアプリの開発・保守・運用を元請(プライムベンダー)として受託しています。Xamarinアプリの現状棚卸しから、.NET MAUIへの移行方式の選定、Upgrade Assistant実行後の手動対応、ストア審査に向けた検証まで一貫して対応する体制を整えています。自社での移行に不安がある企業様は、まずは現行アプリのバージョンと対象プロジェクトタイプの確認からご相談ください。

よくある質問

Xamarinのサポートはいつ終了しましたか。

2024年5月1日に、Xamarin.Forms・Xamarin.Android・Xamarin.iOS・Xamarin.Macを含む全SDKでMicrosoftの公式サポートが終了しました。以降はセキュリティ更新や新しいOS・APIへの対応が行われていません。

サポート終了後もXamarinアプリのビルドは可能ですか。

最後にサポートされたバージョンのVisual Studio 2022を使い続ければ、ビルド自体は継続できるとされています。ただしAzure Pipelinesなどのクラウド型ビルド環境では、追加の設定対応が必要になる場合があります。

.NET Upgrade Assistantを使えばすべて自動で移行できますか。

Upgrade Assistantはプロジェクトファイルの変換や名前空間の一括置換などを自動で行いますが、実行後には追加の手動対応が必要になると公式ドキュメントで案内されています。UWPプロジェクト・iOS拡張プロジェクト・バインディングプロジェクトは、このツールのアップグレード対象に含まれていません。

.NET MAUIへの移行にはどのくらいの期間がかかりますか。

対象アプリの規模やプロジェクト構成によって変動するため、公式ドキュメントでも具体的な標準期間は示されていません。移行対象のプロジェクトタイプの棚卸しを先に行い、社内または委託先とともに個別に見積もることが実務上の進め方になります。

移行は内製と外注のどちらで進めるべきですか。

SDKスタイルへの変換やUpgrade Assistant実行後の手動対応に必要な専門知識、ストア審査やOS追随に継続対応できる体制、移行にかけられる期間の3点を軸に判断する必要があります。社内にモバイル開発の専任体制が薄い場合は、外注委託によって検証まで含めた対応を任せる選択肢が考えられます。

著者:テレリモ総研編集部 鈴木 亮佑


ITアウトソーシング・システム開発のご相談はLASSICへ

元請(プライムベンダー)として、貴社の課題に合わせた体制構築・開発支援をご提案します。まずはお気軽にご相談ください。

無料相談はこちら

ご不明な点はお問い合わせフォームからもご連絡いただけます。

  1. *1 出典:Microsoft公式「The official Xamarin support policy」(https://dotnet.microsoft.com/en-us/platform/support/policy/xamarin
  2. *2 出典:.NET MAUI公式ドキュメント「Upgrade from Xamarin to .NET」(https://learn.microsoft.com/en-us/dotnet/maui/migration/
  3. *3 出典:.NET MAUI公式ドキュメント「What is .NET MAUI?」(https://learn.microsoft.com/en-us/dotnet/maui/what-is-maui
  4. *4 出典:.NET MAUI公式ドキュメント「Upgrade a Xamarin.Forms app to a .NET MAUI app with the .NET Upgrade Assistant」(https://learn.microsoft.com/en-us/dotnet/maui/migration/upgrade-assistant
  5. *5 出典:dotnet/maui公式GitHubリポジトリ「Xamarin End of Support FAQs」(https://github.com/dotnet/maui/discussions/21214


View