O melhor e o pior do Xamarin

O que é o Xamarin? É impossível ignorar Xamarin ao falar sobre as principais abordagens para o desenvolvimento de aplicativos móveis. O Xamarin é uma ferramenta usada para o desenvolvimento de aplicativos móveis multiplataforma que permite aos engenheiros compartilhar cerca de 90% do código nas principais plataformas. Sendo uma ferramenta relativamente nova, ela é baseada na pilha de tecnologia da Microsoft e já possui uma comunidade de mais de 1,4 milhão de desenvolvedores. A plataforma foi construída pelos desenvolvedores por trás do Mono, uma plataforma de desenvolvimento de código aberto baseada no .NET Framework, liderada por Miguel de Icaza e introduzida pela primeira vez em 2001. A empresa Xamarin foi fundada em 16 de maio de 2011. No entanto, ao contrário de seu antecessor, Xamarin foi criado como um projeto comercial até que a empresa foi adquirida pela Microsoft em 2016. A Xamarin se tornou um produto de plataforma cruzada popular para o desenvolvimento de aplicativos móveis no ecossistema da Microsoft. Esta aquisição quebrou a barreira financeira para o uso de Xamarin. Como a Microsoft fez o Xamarin SDK open-source, ele se tornou parte do Xamarin Visual Studio Integrated Development Environment (discutimos os melhores IDEs a serem usados ​​no desenvolvimento do Xamarin abaixo). Quais são as principais características do Xamarin? Linguagem C#: O Xamarin usa uma única linguagem, o C #, para criar aplicativos para todas as plataformas móveis. Ao contrário das soluções interpretadas, como o Appcelerator Titanium, o Xamarin é compilado de forma nativa, o que o torna uma opção para criar aplicativos de alto desempenho com aparência e comportamento nativos. Baseado no framework .NET. C # é um idioma maduro com forte digitação de segurança que impede o código de comportamento inesperado. Como o C # é uma das linguagens do .NET Framework, ele pode ser usado com vários recursos úteis do .NET, como Lambdas, LINQ e Asynchronous programming (Asynk). Tecnicamente falando, o Xamarin usa C # e bibliotecas nativas envolvidas na camada .Net para o desenvolvimento de aplicativos entre plataformas. Esses aplicativos são frequentemente comparados aos nativos das plataformas de desenvolvimento móvel iOS e Android em termos de desempenho e experiência do usuário. Além disso, o Xamarin pode aproveitar todo o acesso nativo e mais recente à API para usar os recursos da plataforma subjacente nos aplicativos Xamarin, como o ARKit no iOS ou no Android Multi-Window. Embora o código relacionado à lógica de negócios, ao acesso ao banco de dados e à comunicação de rede possa ser compartilhado entre as plataformas, o Xamarin permite que você crie uma camada de código da interface do usuário específica da plataforma. Assim, os aplicativos de plataforma cruzada Xamarin parecem 100% nativos para qualquer dispositivo, proporcionando uma melhor experiência do usuário em comparação com aplicativos híbridos genéricos. Compilação. A plataforma tem dois produtos principais: Xamarin.iOS e Xamarin.Android. No caso do iOS, o código-fonte é compilado diretamente no código nativo do assembly Ahead of Time (ARM), enquanto os aplicativos Android Xamarin são compilados primeiro na Intermediate Language e, em seguida, – no código de assembly nativo na execução Compilação em tempo). No entanto, em ambos os casos, o processo é automatizado e adaptado para lidar com problemas como alocação de memória, coleta de lixo e interoperabilidade de plataforma por padrão. Xamarin.Forms. Xamarin.Forms é um produto separado projetado para criar protótipos ou aplicativos móveis simples compartilhando 100% do código no iOS e Android. Xamarin.Mac. Além disso, os engenheiros podem usar o Xamarin.Mac para criar aplicativos para o Mac OS. Estes e alguns outros produtos de células Xamarin serão discutidos em breve. SDKs de plataforma. O Xamarin fornece acesso a SDKs específicos da plataforma (CocoaTouch para iOS e Android SDK) por meio da sintaxe simples do C #. Ligações de código específicas da plataforma. Na maioria dos casos, os engenheiros serão capazes de lidar com o desenvolvimento, mantendo a aparência nativa das respectivas plataformas dentro do ambiente Xamarin. No entanto, o Xamarin permite chamar o código da plataforma existente (por exemplo, Swift para iOS) se você precisar reutilizar alguns módulos ou realizar algumas funções específicas da plataforma, como verificação de código de barras, integração com PayPal ou Google Analytics. Suporte de wearables. O Xamarin suporta a criação de aplicativos para dispositivos Apple e Android Watch. Os engenheiros podem usar o Visual Studio para Mac e Windows para criar aplicativos iOS Apple Watch. Além disso, Xamarin suporta totalmente o Android Wear. Estrutura do projeto Xamarin. Espera-se que a maior parte do trabalho relacionado a Xamarin seja executada por meio de um computador de desenvolvimento Windows com o Visual Studio e o Xamarin instalados. Os aplicativos podem ser depurados diretamente da área de trabalho ou em dispositivos e emuladores. Se você planeja desenvolver aplicativos iOS no Windows, também é possível que o Visual Studio se conecte ao designer de storyboard do iOS e ao simulador do iOS. Há também o Visual Studio para Mac, que permite a execução de um simulador no Mac ou diretamente em um iPhone com fio. A depuração é executada via Visual Studio. Como qualquer outra tecnologia, Xamarin tem seus próprios benefícios e desvantagens, que foram objeto de uma discussão acalorada recentemente. Para tomar uma decisão informada sobre Xamarin vs desenvolvimento nativo, vamos pesar todos os prós e contras do desenvolvimento de aplicativos com Xamarin. Se você está realmente pressionado pelo tempo, recomendamos assistir a este vídeo fornecendo uma visão geral de alto nível dos pontos fortes e fracos da plataforma Xamarin em menos de seis minutos. Se você quiser detalhes, continue lendo.

Prós de usar Xamarin para o desenvolvimento

Existem boas razões pelas quais o Xamarin é usado por várias empresas, incluindo Trello, Slack e GitHub.

Uma pilha de tecnologia para codificar todas as plataformas

Xamarin usa o C # complementado com o framework .Net para criar aplicativos para qualquer plataforma móvel. Assim, você pode reutilizar até 96% do código-fonte, acelerando o ciclo de engenharia. O Xamarin também não requer alternar entre os ambientes de desenvolvimento: você pode criar todos os seus aplicativos Xamarin no Visual Studio, que substituíram completamente o Xamarin Studio. As ferramentas de desenvolvimento de plataforma cruzada são fornecidas como parte interna do IDE sem custo adicional.

Desempenho próximo ao nativo

Ao contrário das soluções híbridas tradicionais, baseadas nas tecnologias da Web, um aplicativo de plataforma cruzada construído com o Xamarin ainda pode ser classificado como nativo. As métricas de desempenho são comparáveis ​​às do Java para Android (conforme explicado aqui) e do Objective-C ou Swift para o desenvolvimento de aplicativos iOS nativos. Além disso, o desempenho do Xamarin está sendo constantemente aprimorado para corresponder totalmente aos padrões de desenvolvimento nativo. O Visual Studio oferece uma solução completa para criar, testar e acompanhar o desempenho do aplicativo: o Visual Studio App Center permite que você execute testes de interface do usuário automatizados e identifique problemas de desempenho antes do lançamento. No entanto, este serviço é fornecido por uma taxa adicional.

Experiências de usuários nativos

O Xamarin permite que você crie experiências sem falhas usando elementos da interface do usuário específicos da plataforma. Aplicativos multiplataforma simples para iOS, Android ou Windows são criados usando a ferramenta Xamarin.Forms, que converte componentes de UI de aplicativo em elementos de interface específicos da plataforma durante a execução. Como o uso de Xamarin.Forms aumenta significativamente a velocidade de desenvolvimento de aplicativos, é uma ótima opção para projetos de negócios. No entanto, pode haver um leve declínio no desempenho devido à camada extra de abstração. Para interface do aplicativo personalizada e maior desempenho, você ainda pode usar o Xamarin.iOS e o Xamarin.Android separadamente para garantir excelentes resultados.

Suporte total de hardware

Com o Xamarin, sua solução obtém a funcionalidade do aplicativo de nível nativo. Ele elimina todos os problemas de compatibilidade de hardware, usando plug-ins e APIs específicas, para trabalhar com a funcionalidade de dispositivos comuns nas plataformas. Juntamente com o acesso a APIs específicas da plataforma, o Xamarin suporta a vinculação com bibliotecas nativas. Isso permite uma melhor personalização e funcionalidade de nível nativo com pouca sobrecarga.

Tecnologia de código aberto com forte suporte corporativo

Depois que a empresa foi adquirida pela Microsoft em fevereiro de 2016, as políticas de licenciamento da Xamarin sofreram mudanças radicais. Xamarin SDK, incluindo tempo de execução, bibliotecas e ferramentas de linha de comando, tornou-se open source e disponível para todos sob a licença MIT como parte do Visual Studio. Ao eliminar a grande barreira, o custo da licença, a Microsoft abriu o caminho para o crescimento da plataforma. Além disso, liderado pela Microsoft e suportado pelo Unity, JetBrains e Red Hat, o .NET Foundation em geral e o Xamarin especificamente se tornaram uma pilha de tecnologia confiável e poderosa.

Manutenção Simplificada

Devido à sua aplicação multiplataforma, o Xamarin facilita a manutenção e as atualizações. Você pode simplesmente implantar as alterações ou atualizações no arquivo de origem e elas serão aplicadas aos aplicativos iOS e Android. No entanto, isso funciona apenas para os aplicativos que usam Xamarin.Forms ou a lógica de negócios, código compartilhado, atualizações para aplicativos Xamarin.iOS e Xamarin.Android. Assim, ajuda você a economizar seu tempo e dinheiro enquanto mantém seus aplicativos atualizados.

Completo ecossistema de desenvolvimento

Xamarin vem em um pacote com um conjunto completo de ferramentas de desenvolvimento, incluindo seu próprio IDE (Xamarin Studio que agora é substituído pelo Visual Studio), as próprias plataformas (Xamarin SDKs), testes (Xamarin Test Cloud), distribuição e análise (Hockeyapp e Xamarin. Insights). Assim, você não precisa investir em ferramentas adicionais ou integrar os aplicativos de terceiros para criar, testar e implantar seus aplicativos Xamarin.

Xamarin.Forms: um framework para aplicativos simples e protótipos

Xamarin sugere que os desenvolvedores criem aplicativos móveis de duas maneiras. O primeiro é usar Xamarin.iOS e Xamarin.Android, que é considerado a principal abordagem. Usando Xamarin.Forms, o Visual Studio Library é o segundo. O Xamarin.Forms permite a criação rápida de protótipos ou a produção de aplicativos com menos funcionalidades específicas da plataforma. É por isso que Xamarin.Forms é o melhor ajuste para aplicativos em que o compartilhamento de código é mais importante do que a interface do usuário personalizada. Você poderá criar uma única interface e compartilhá-la nas plataformas sem projetar para cada plataforma individualmente. Você também pode criar aplicativos em que algumas partes de suas interfaces de usuário são criadas com Xamarin.Forms e as outras são projetadas usando o kit de ferramentas de UI nativo. Enquanto Xamarin.Forms continua a ser um compromisso em termos de aparência nativa comparado com Xamarin.iOS e Xamarin.Android, há uma comunidade vibrante que presta atenção a essa ferramenta. Por exemplo, alguns provedores de tecnologia contribuem com suas bibliotecas, como o Telerik UI, que enriquecem os recursos de engenharia, fornecendo componentes de interface do usuário pré-configurados.

Xamarin.Forms Live Player

Como o Xamarin.Forms é voltado para o desenvolvimento rápido e sem atrito, a Microsoft sugere o uso de uma ferramenta Live Player. É um aplicativo instalado em telefones reais para testar e depurar imediatamente seus aplicativos sem a implantação de emuladores ou a vinculação de um dispositivo a uma estação de trabalho. Após a instalação do Live Player, um desenvolvedor varre um código QR no Visual Studio usando uma câmera do telefone, que fornece acesso a um aplicativo desenvolvido atualmente. Um aplicativo no telefone é sincronizado em tempo real com o do Visual Studio. Isso simplifica drasticamente todos os procedimentos de configuração e depuração. Infelizmente, a Microsoft interrompeu o suporte ao Live Player, mas você ainda pode baixar o aplicativo e emparelhá-lo com o Visual Studio.

Criando aplicativos para Macs com a ferramenta Xamarin.Mac

O Xamarin.Mac permite o desenvolvimento de aplicativos totalmente nativos para Mac usando C # e .NET. Integra-se com as mesmas bibliotecas que são usadas para desenvolver em Objective-C com Xcode. Usando o Xamarin.Mac combinado com Xamarin.iOS e Xamarin.Android, os desenvolvedores podem compartilhar até 90% do código nativo em Android, iOS e Mac OS. Além disso, o Xamarin.Mac integra-se ao Xcode, portanto, um desenvolvedor pode usar o Interface Builder do Xcode para criar as interfaces de usuário de um aplicativo.

Xamarin University oferece onboard suave

A Xamarin University é um portal de e-learning dedicado para pessoas que estão se familiarizando com o pacote. A universidade atende a engenheiros que conhecem o C #, bem como a qualquer pessoa com pouca experiência em programação. Se você acabou de incorporar novos engenheiros ao seu produto baseado em Xamarin, a Universidade fornecerá todos os conhecimentos essenciais. O portal oferece aulas do nível iniciante ao avançado, que incluem aprendizado autoguiado gratuito, aulas on-line ao vivo, palestras no escritório e palestras.

Xamarin Contras a Considerar

No entanto, ainda existem algumas desvantagens que podem lançar uma sombra sobre a plataforma. Então, por que não usar o Xamarin?

Suporte ligeiramente atrasado para as atualizações mais recentes da plataforma

Isso depende completamente da equipe de desenvolvedores Xamarin. É impossível que ferramentas de terceiros forneçam o suporte imediato para as versões mais recentes do iOS e Android: leva algum tempo para implementar as alterações e / ou introduzir novos plug-ins, etc. Embora a Xamarin afirme fornecer suporte no mesmo dia, ainda pode alguns atrasos.

Acesso limitado a bibliotecas de código aberto

O desenvolvimento nativo faz uso extensivo de tecnologias de código aberto. Com o Xamarin, você precisa usar apenas os componentes fornecidos pela plataforma e alguns recursos de código aberto .Net, voltados para desenvolvedores e consumidores. Embora a escolha não seja tão rica quanto para o desenvolvimento de aplicativos para dispositivos móveis Android e iOS, os componentes Xamarin fornecem milhares de controles de interface personalizados, vários gráficos, temas e outros recursos avançados que podem ser adicionados a um aplicativo em apenas um alguns cliques. Isso inclui processamento interno de pagamentos (como o Stripe), integração de Beacons e wearables, serviços de notificação por push, soluções de armazenamento em nuvem, recursos de streaming de multimídia e muito mais.

Problemas do Ecossistema Xamarin

Obviamente, a comunidade Xamarin é significativamente menor que a do iOS ou Android. Assim, encontrar um desenvolvedor Xamarin experiente pode ser um desafio. Embora a plataforma esteja crescendo, é alimentada pelo suporte da Microsoft. Com base nas informações de diferentes fontes, a comunidade Xamarin faz 10% da sociedade global de desenvolvimento móvel. Apesar do fato de que o número de engenheiros da Xamarin não se compara às comunidades nativas do iOS ou do Android, a plataforma oferece suporte extensivo a seus desenvolvedores. Ou seja, existe uma plataforma educacional dedicada, a Universidade Xamarin, que fornece recursos e treinamento prático para aqueles que são novos nessa tecnologia. Usando esse suporte, a curva de aprendizado de um engenheiro experiente em C # / .Net é mínima.

Conhecimento Básico dos Idiomas Nativos Requeridos

Ao usar o Xamarin.iOS e o Xamarin.Android para criar aplicativos móveis com aparência e comportamento verdadeiramente nativos, você ainda precisará escrever uma camada de código específica da plataforma. Assim, pelo menos, um conhecimento básico de tecnologias nativas (Java / Kotlin para Android e Objective-C / Swift para iOS) é necessário. No entanto, isso não se aplica a Xamarin.Forms.

Não é adequado para aplicativos com gráficos pesados

O principal benefício do Xamarin é a capacidade de compartilhar seu código nas plataformas. No entanto, você só pode compartilhar a lógica, o código da interface do usuário será principalmente específico da plataforma. Isso torna a criação de jogos, a rica UI personalizada ou animações complexas no Xamarin bastante sem sentido. Com uma pequena quantidade de código compartilhado, Xamarin se torna opção inviável. Θ tamanho maior do aplicativo Dependendo do tipo e da complexidade, os aplicativos Xamarin normalmente são maiores do que os nativos (o último pode ter metade do tamanho de um aplicativo Xamarin). Um simples aplicativo “olá, mundo” para Android pode levar até 16 MB, sendo que grande parte dele é usado pelos conjuntos de bibliotecas associadas, conteúdo, tempo de execução Mono e Biblioteca de Classes Base (BCL).

Problemas de compatibilidade com bibliotecas e ferramentas de terceiros

Pode haver alguns problemas ao integrar recursos de terceiros ao aplicativo Xamarin. Embora a maioria das ferramentas e bibliotecas ofereçam suporte completo para tecnologias nativas, a conformidade com Xamarin pode não ser fornecida pelo vedor. Embora o Xamarin tenha sua própria loja de componentes, sempre há uma chance de que você precise de um recurso específico ou integração no seu aplicativo que não seja fornecido pela plataforma.

IDE do Xamarin Visual Studio

Se você tem a sensação de que Xamarin é ideal para você, você terá interesse em conhecer os IDEs Xamarin principais que podem ser usados ​​e como eles se comparam. O Visual Studio (VS) é um Microsoft Integrated Development Environment, software usado para criar, depurar e publicar aplicativos em todas as plataformas e dispositivos. Existem três versões principais do Visual Studio para Xamarin – Visual Studio Community, Visual Studio Professional e Visual Studio Enterprise. Os principais fatores para a escolha de uma versão aceitável são a experiência dos desenvolvedores (estudantes ou engenheiros profissionais) e o tamanho da equipe. Os programadores podem desenvolver software para Web, celular, servidor e desktop com todas as versões. Comunidade Visual Studio é uma boa opção para estudantes, projetos de código aberto, pequenas equipes de desenvolvimento com até 5 usuários. O pacote da comunidade também é bom para equipes que são novas no Visual Studio. Esta versão é gratuita para uso. O Visual Studio Professional é um conjunto de ferramentas e serviços criados para desenvolvedores profissionais, pequenas equipes e uso corporativo. Esta versão fornece recursos poderosos para entender rapidamente seu código: mostrando referências de código, alterações em seu código, exibindo quem modificou um método pela última vez ou descobrindo se os testes estão sendo passados. A versão profissional inclui o Team Foundation Server 2017 que fornece recursos como ferramentas ágeis de planejamento de projetos, planos de entrega, gráficos e muito mais. O preço anual para esta versão é de US $ 539 por usuário. O Visual Studio Enterprise tem ferramentas e serviços de suporte fortes. Eles permitem gerenciar processos complexos entre o desenvolvimento e as operações de TI; rastreamento de qualidade com ferramentas de rastreamento manual e automatizado; acesso a treinamentos profissionais; e todo o ecossistema de engenharia e testes da Microsoft. Inclui extensões Microsoft para Visual Studio Team Foundation Server e Visual Studio Team Services. Nesta versão, o Team Foundation Server fornece o Gerenciador de Testes, o Gerenciamento de Pacotes e o Pipeline Privado. A versão Enterprise também tem suporte prioritário, ofertas de parceiros e muito mais. O preço anual do Enterprise Studio é de US $ 2.999 por usuário. Para uso corporativo, também recomendamos verificar o Visual Studio App Center. É uma ferramenta que organiza o fluxo de trabalho de desenvolvimento de aplicativos em diferentes tecnologias móveis, incluindo o Xamarin. Aqui, as equipes de engenharia que trabalham em vários aplicativos podem reunir suas ferramentas. Ele automatiza o empacotamento de aplicativos por meio do GitHub ou do Bitbucket, fornece integração para diferentes serviços de teste, permite a distribuição de aplicativos de e-mail para testes, rastreio de falhas e análise. O Visual Studio Online (VSO) é um conjunto de ferramentas que permite aos desenvolvedores configurar facilmente a integração contínua em diferentes plataformas. A integração contínua é uma prática de software na qual todas as alterações de código são imediatamente testadas e integradas à base de código principal. Ajuda a verificar e depurar código rapidamente. Essa versão é provavelmente a mais relevante e interessante para desenvolvedores de dispositivos móveis.

Alternando do Android Studio ou Xcode para o Visual Studio

Se sua equipe de desenvolvimento considerar a transição do Android Studio (AS) ou do Xcode para o Visual Studio, a curva de aprendizado não será tão alta. As comparações recurso a recurso mostram que os IDEs são praticamente os mesmos em termos de fluxos de desenvolvimento com poucas nuances para cada um dos ambientes. Do Android Studio para o Visual Studio. Enquanto o suporte oficial do Android Studio é focado nas linguagens Java, C / C ++, Kotlin e XML, o VS suporta todas as principais linguagens de programação, incluindo as de AS. Isso se deve ao amplo espectro de plataformas que o IDE atende. O VS oferece mais liberdade de engenharia e permite trabalhar com diferentes projetos de um ambiente. Se você estiver usando o Google Cloud Platform integrado ao AS para executar máquinas virtuais ou apenas gerenciar projetos, o Google também terá a gentileza de fornecer sua extensão de plataforma de nuvem para VS. Basicamente, você pode usar o ecossistema de nuvem da Microsoft e o Google Cloud diretamente do VS. O Visual Studio pode ser instalado em todas as plataformas principais: Windows, Android, Mac OS e Linux. Recentemente, muitos desenvolvedores tendem a concordar que o Xamarin pode ser considerado uma ferramenta de desenvolvimento “nativa”. De fato, há uma opinião de que “tudo o que pode ser feito em um aplicativo iOS usando Objective-C ou Swift, e qualquer coisa que possa ser feita em um aplicativo Android usando Java, pode ser feito em C # usando Xamarin”. No entanto, existem muitas armadilhas no debate nativo x Xamarin. Vejamos como o Xamarin se compara às ferramentas de desenvolvimento nativas e plataformas de desenvolvimento híbridas (Ionic, PhoneGap / Cordova). Embora as ferramentas de desenvolvimento móvel híbrido estejam evoluindo rapidamente, elas ainda não têm o desempenho e os recursos nativos que a Xamarin oferece com praticamente o mesmo custo. Ao considerar as duas abordagens, o dilema mais popular é Xamarin vs Ionic ou Xamarin vs React Native (veja também nossa história sobre os prós e contras de ReactJS e React Native para uma explicação completa da estrutura). No entanto, este último tende a perder devido a uma série de restrições nas tecnologias subjacentes (web stack). No entanto, existe uma ferramenta de desenvolvimento móvel baseada em JavaScript que supera as soluções híbridas, pelo menos em termos de interface do usuário. É o NativeScript. Essa estrutura de código aberto de plataforma cruzada, apoiada pelo Telerik, permite implementar a interface do usuário nativa e conectar-se a APIs nativas para melhorar a experiência móvel ao usar uma única base de código. Sua principal diferença é que ele usa marcação XML, que é compilada em equivalentes nativos do Android e do iOS, em vez de HTML webview. Essa abordagem preenche a lacuna entre o desenvolvimento nativo e híbrido, semelhante à maneira como Xamarin faz. A principal diferença entre as duas ferramentas está nas linguagens de programação que elas usam. Portanto, a comparação entre o Xamarin e o NativeScript deve ser objeto de uma pesquisa mais detalhada. Ao mesmo tempo, Xamarin vs nativo Android / iOS debate de desenvolvimento parece ser ainda mais complicado: Ambas as opções provam para entregar valor em termos de qualidade e desempenho do produto, a escolha normalmente depende do tipo de aplicativo que você deseja construir.

Considerações

Ao comparar os prós e contras, os inconvenientes listados são geralmente considerados como um dano colateral. A maioria dos proprietários de empresas escolhe a plataforma de desenvolvimento de aplicativos para dispositivos móveis da Xamarin, uma vez que diminui o tempo de comercialização e o custo de engenharia, compartilhando o código e usando uma única pilha de tecnologia. No entanto, o objetivo do aplicativo e seu público-alvo pode ser um fator ainda mais importante a ser considerado. Com base na experiência de nossa equipe, o melhor caso de uso da Xamarin são soluções móveis corporativas. Com a interface padrão que cobre 90% dos projetos, toda a lógica principal do produto pode ser facilmente compartilhada entre as plataformas. Assim, a personalização da plataforma levará apenas 5 a 10 por cento do esforço de engenharia. No caso de aplicativos voltados ao consumidor com interface pesada, a quantidade de código compartilhado diminui drasticamente. Assim, o desenvolvimento multi-plataforma Xamarin perde seu maior benefício e pode ser igual em tempo e custo para soluções nativas. No entanto, se você está procurando uma alternativa Xamarin para criar um aplicativo móvel multiplataforma, pode ficar desapontado. Embora as ferramentas de desenvolvimento móvel multiplataforma mais utilizadas sejam o PhoneGap / Apache Cordova, o Ionic Framework, o Appcelerator / Titanium, elas dependem principalmente de tecnologias da Web, como o HTM5 ou o JavaScript. É por isso que nenhuma dessas ferramentas pode ter o mesmo nível de desempenho e funcionalidade nativa que a Xamarin oferece.]]>