A panacéia multi-plataforma?
Para a maior parte, Xamarin.Forms define suas abstrações com foco em áreas da interface do usuário móvel que são comuns a iOS, Android e Windows Phone. Esses objetos visuais Xamarin.Forms são mapeados para objetos específicos da plataforma, mas Xamarin.Forms tende a evitar a implementação de qualquer coisa que é exclusivo para uma plataforma particular.
Por esta razão, apesar da enorme ajuda que Xamarin.Forms pode oferecer na criação de plataforma aplicações independentes, não é um substituto completo para a programação API nativa. Se a sua aplicação depende fortemente de recursos da API nativas, como determinados tipos de controles ou widgets, então você pode querer ficar com Xamarin.iOS, Xamarin.Android, eo nativo do Windows API Phone.
Provavelmente você também quiser ficar com as APIs nativas para aplicações que exigem gráficos vetoriais ou complexa interação sensível ao toque. A versão atual do Xamarin.Forms não está completamente pronto para esses cenários.
Por outro lado, Xamarin.Forms é ótimo para prototipagem ou fazer uma rápida aplicação de prova de conceito. E depois de ter feito isso, você pode simplesmente achar que você pode continuar usando Xamarin.Forms recursos para construir o aplicativo inteiro. Xamarin.Forms é ideal para aplicações de linha de negócios.
Mesmo se você começar a construir uma aplicação com Xamarin.Forms e, em seguida, implementar grandes partes dele com APIs da plataforma, você está fazendo isso dentro de uma estrutura que lhe permite compartilhar código e que oferece formas estruturadas para fazer visuais específicos da plataforma.