はじめに
こんにちは、@hiro128_777です。
2年ちょっと前に、Xamarin 今そこにある危機という記事を書きましたが、それから2年とちょっとが経過し、Xamarin を取り巻く環境はどう変わったのか、果たして Xamarin は危機を脱したのか、という観点で見ていきたいと思います。
いつの間にか変わっていった 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 と双方向の相互運用が可能です。さらに、iOS と Android の API のほとんどが使用できます。(最近サポートされていない機能も増えていますが…)その結果、Xamarin.iOS, Xamarin.Android は、それ単体で iOS, Andtroid のネイティブアプリを開発できる Toolkit であるのと同時に、リリース当初から C# 版の iOS SDK, Android SDK としても利用できるポテンシャルがありました。その結果として、Uno.Platformや、Mobile Blazor Bindings のような Xamarin.iOS, Xamarin.Android の上で稼働するフレームワークが登場してくるというなかなか面白い展開になっています。
これは iOS と Android の API を可能な限り全て 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 の今後がとても楽しみです!