個人的なメモ

Tomohiro Suzuki @hiro128_777 のブログです。Microsoft MVP for Developer Technologies 2017- 本ブログと所属組織の公式見解は関係ございません。

Xamarin.iOS, Xamarin.Android は クロスプラットフォーム開発ツールから C# 版の iOS SDK, Android SDK になりました。

はじめに

こんにちは、@hiro128_777です。
2年ちょっと前に、Xamarin 今そこにある危機という記事を書きましたが、それから2年とちょっとが経過し、Xamarin を取り巻く環境はどう変わったのか、果たして Xamarin は危機を脱したのか、という観点で見ていきたいと思います。

hiro128.hatenablog.jp


いつの間にか変わっていった Xamarin.iOS, Xamarin.Android の位置づけ


Xamarin はご存知の通り、まず、Xamarin.iOS, Xamarin.Android がリリースされ、その後、Xamarin.Forms がリリースされました。
その経緯もあり、ネイティブ iOS SDK や ネイティブ Android API の Wrapper である Xamarin.iOS, Xamarin.Android と、それらを抽象化した UI Toolkit である Xamarin.Forms という構造であるものの、ブランディングとしては別のプロダクトとしてアップデートされていきました。


また、Xamarin.iOS, Xamarin.Android は両者ともそれぞれ、iOS Runtime、Android Runtime と双方向の相互運用が可能です。さらに、iOSAndroidAPI のほとんどが使用できます。(最近サポートされていない機能も増えていますが…)その結果、Xamarin.iOS, Xamarin.Android は、それ単体で iOS, Andtroid のネイティブアプリを開発できる Toolkit であるのと同時に、リリース当初から C# 版の iOS SDK, Android SDK としても利用できるポテンシャルがありました。その結果として、Uno.Platformや、Mobile Blazor Bindings のような Xamarin.iOS, Xamarin.Android の上で稼働するフレームワークが登場してくるというなかなか面白い展開になっています。


これは iOSAndroidAPI を可能な限り全て C# のエコシステムから触れるようにするという Xamarin.iOS, Xamarin.Android のコンセプトが非常優れていたからこその結果だと思っています。正直、昨今 Xamarin.iOS, Xamarin.Android それ自体にスポットが当たることは少なくなってきましたが、Xamarin.Forms や Uno.Platform、Mobile Blazor Bindings の支える重要な API として Xamarin.iOS, Xamarin.Android は今後も生き残っていくことになりました。


というわけで、Xamarin はひとまず危機を脱したと考えています。Visual Studio for Mac も順調にバージョンアップしており、C# で当たり前に iOS API, Android API を触れるのは、私としては非常に嬉しい結果になったと言えます。


今年は Surface Duo も発売され、.NET 5 として Xamarin は統合され、「dotnet new XamarinForms」というコマンドも通るようになるらしいので、Xamarin の今後がとても楽しみです!

Mac Catalyst もサポートして欲しいですが…)