「Xamarin はいいぞ」ばかり言ってる私ですが、Xamarin がハマらないケースも当然あるわけで。
いくつかピックアップしてみたいと思います。
Android / iOS のスペシャリスト
Android または iOS、Java や Swift が大好きで最先端を突っ走ってる人。
あるいは、最新のOSの機能をガンガンアプリに取り入れていくプロダクト。
彼(または彼女)達に「Xamarin 使えよ、C# 使えよ」って言っても彼らの楽しみを奪ってしまうのでしない方がいいし、SDK が新しくなったら即使いたいという欲求はネイティブでないと満たせないですよね。
配布サイズを気にするプロダクト
Xamarin でアプリを作ると、Monoランタイムを同梱するため配布パッケージの容量がびっくりするくらい増えます。(Android の場合、HelloWorld でも 10MByte は切れないんじゃなかったかな?)
プロダクトが、世界をターゲットにしていて、それに回線の細い新興国も含まれている場合、注意した方がよいと思います。
ガワネイティブでいいやつ
Cordova, Monaca とかそういうの。例えばショッピングサイトのネイティブアプリだと、コンテンツの差し替えが激しいので HTML5 でモバイルWebサイトと共通化できたほうが運用の効率がよいです。
宗教上の理由
マイクロソフトに親を殺された人は使わないでしょう。ただ、過去に何があったかは知らないですけど、今のマイクロソフトはあなたを殺しませんよ?
こんなもんかなあ。逆を言えば、上に当てはまらなければ Xamarin を選択しない理由はないわけで。
やっぱり、「Xamarin はいいぞ」