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