Sumário
Breve histórico
Quando se fala em desenvolvimento mobile várias alternativas surgem além das tradicionais abordagens nativas. Um dos nomes que têm mais destaque é o Xamarin. O Xamarin é uma abordagem que utiliza código C# para gerar aplicações Android e iOS., utilizando o compilador Mono para Android e o Mono para iOS. Ao utilizar uma só linguagem para os dois ambientes a promessa é ter uma alta taxa de reaproveitamento de código para aplicativos. Mas como usar Xamarin?
A Promessa de usar xamarin
Ao utilizar o C# como linguagem de programação, em detrimento do Java, Objetive-C ou Swift, o Xamarin propõe códigos mais limpos, com a facilidade do .NET, podendo utilizar a IDE do Visual Studio.

O aproveitamento de código prometido é alto: 75% para aplicações Xamarin.Droid e Xamarin.iOS e cerca de 100% para a abordagem Xamarin.Forms.
Características das aplicações corporativas
O objetivo deste artigo é analisar a aplicabilidade do Xamarin no desenvolvimento de aplicações corporativas. Para isso é necessário destacar quais são as características deste tipo de desenvolvimento.
Requisitos mutantes: hoje em dia desenvolvimento ágil já é senso comum. Isso acaba por criar requisitos que podem variar ao longo do período de desenvolvimento. Ao unificar lógicas de negócio, o Xamarin diminui drasticamente o retrabalho gerado pela mudança de requisitos. A exceção para esse fato é quando o requisito requer acesso a recursos que são específicos das plataformas, como, por exemplo, acesso à câmera do aparelho.
Prazos curtos: ao compartilhar o código, o tempo de desenvolvimento de um requisito é reduzido de forma geral, já que mesmo a interface gráfica pode ser reaproveitada (no Forms).
Aproveitar o pré-conhecimento da equipe: é comum empresas terem muitos desenvolvedores com um grande conhecimento do .NET. Ao usar Xamarin, o potencial destes profissionais é aproveitado, tendo uma curva de aprendizado bem menor do que por exemplo, aprender Objetive-C.
O site StackOverflow faz anualmente uma pesquisa com seus usuários. Apesar de provavelmente não representar o mercado brasileiro com fidelidade, podemos ter uma ideia clara da popularidade das linguagens entre profissionais.
Popularidade das linguagens segundo o StackOverflow (2017)
Nota-se aqui a grande discrepância entre as linguagens utilizadas para desenvolvimento iOS (Swift e Objetive-C) e o C#.
Para o desenvolvimento nativo Android, neste caso o Xamarin não apresenta grande vantagem, uma vez que o Java também é uma linguagem popular.
Nem tudo são flores…
No papel o Xamarin se apresenta como uma ferramenta mágica que vai acabar de vez com o problema do desenvolvimento mobile. Mas será que é assim mesmo na realidade?
O Xamarin tenta estar sempre atualizado com os lançamentos das plataformas especificas e isso é algo muito positivo, porém esses releases rápidos tem uma consequência severa: bugs na plataforma.

O Xamarin Forms foi feito inicialmente para prototipagem. Ao ver o sucesso da plataforma a empresa resolveu mudar o foco da tecnologia. Ele foi transformado num produto para a produção. Mas a verdade é que ele ainda mantem instabilidades.
A boa notícia é que a comunidade está crescendo e isso pressiona a Microsoft priorizar a correção das falhas que ainda existem.
—
Como sempre: não existe receita de bolo. A utilização do Xamarin em um projeto deve ser estudada, para colocar na balança suas características. Mas de forma geral é uma tecnologia promissora, que se apresenta como uma alternativa válida para o desenvolvimento de aplicações mobile.