O que é o Xamarin?
O Xamarin é uma plataforma de software livre para a criação de aplicativos modernos e de alto desempenho para iOS, Android e Windows com o .NET. O Xamarin é uma camada de abstração que gerencia a comunicação de código compartilhado com o código de plataforma subjacente. O Xamarin é executado em um ambiente gerenciado que fornece conveniências, como alocação de memória e coleta de lixo.
O Xamarin permite que os desenvolvedores compartilhem uma média de 90% de seu aplicativo entre plataformas. Esse padrão permite que os desenvolvedores gravem toda a lógica de negócios em uma única linguagem (ou reutilizem o código do aplicativo existente), mas alcancem o desempenho e a aparência nativos em cada plataforma.
Os aplicativos Xamarin podem ser escritos em PC ou Mac e compilados em pacotes de aplicativos nativos, como um arquivo .apk no Android ou um arquivo .ipa no iOS.
Observação
Compilar e implantar aplicativos para iOS atualmente requer um computador MacOS. Para obter mais informações sobre requisitos de desenvolvimento, confira requisitos do sistema.
Para quem é o Xamarin
O Xamarin é para os desenvolvedores com os objetivos a seguir:
- Compartilhe código, teste e lógica de negócios entre plataformas.
- Escreva aplicativos multiplataforma em C# no Visual Studio.
Como o Xamarin funciona
O diagrama mostra a arquitetura geral de um aplicativo Xamarin multiplataforma. O Xamarin permite que você crie uma interface do usuário nativa em cada plataforma e escreva lógica de negócios, em C#, que é compartilhada entre plataformas. Na maioria dos casos, 80% do código do aplicativo são compartilháveis usando o Xamarin.
O Xamarin é criado com base no .NET, que lida automaticamente com tarefas como alocação de memória, coleta de lixo e interoperabilidade com plataformas subjacentes.
Para obter mais informações sobre a arquitetura específica da plataforma, confira Xamarin.Android e Xamarin.iOS.
Recursos adicionados
O Xamarin combina as habilidades das plataformas nativas, ao mesmo tempo em que adiciona recursos que incluem:
- Associação completa para os SDKs subjacentes – o Xamarin contém associações para praticamente todos os SDKs de plataforma subjacente no iOS e Android. Além disso, essas associações são fortemente tipadas, o que significa que são fáceis de navegar e usar e oferecem uma verificação de tipo de tempo de build e durante o desenvolvimento. As associações fortemente tipadas levam a menos erros de runtime e aplicativos de maior qualidade.
- Objective-C, Java, C e C++ Interop – o Xamarin oferece recursos para invocar diretamente bibliotecas Objective-C, Java, C e C++, permitindo que você use uma ampla gama de código de terceiros. Essa funcionalidade permite que você use as bibliotecas do iOS e Android existentes escritas em Objective-C, Java ou C/C++. Além disso, o Xamarin oferece projetos de associação que permitem associar bibliotecas Objective-C e Java nativas usando uma sintaxe declarativa.
- Construções de Linguagem Moderna – os aplicativos Xamarin são escritos em C#, uma linguagem moderna que inclui aprimoramentos significativos com relação a Objective-C e Java, como *Recursos de Linguagem Dinâmica, constructos funcionais como lambdas, LINQ, programação paralela, genéricos e muito mais.
- BCL (Biblioteca de Classes Base) robusta – os aplicativos Xamarin usam a BCL do .NET, uma grande coleção de classes com recursos abrangentes e simplificados, como suporte eficiente a XML, Banco de Dados, Serialização, E/S, Cadeia de Caracteres e Rede, e muito mais. O código C# existente pode ser compilado para uso em um aplicativo, que fornece acesso a milhares de bibliotecas que adicionam funcionalidade além da BCL.
- IDE (ambiente de desenvolvimento integrado) moderno – o Xamarin usa o Visual Studio, um IDE moderno que inclui recursos como preenchimento automático de código, um sistema sofisticado de gerenciamento de projetos e soluções, uma biblioteca de modelos de projetos abrangente, um controle do código-fonte integrado e muito mais.
- Suporte multiplataforma móvel: o Xamarin oferece suporte sofisticado multiplataforma para as três principais plataformas: iOS, Android e Windows. Os aplicativos podem ser gravados para compartilhar até 90% de seu código e Xamarin.Essentials oferecem uma API unificada para acessar recursos comuns nas três plataformas. O código compartilhado pode reduzir significativamente os custos de desenvolvimento e o tempo de colocação no mercado para desenvolvedores móveis.
Xamarin.Android
Os aplicativos Xamarin.Android compilam de C# para IL (linguagem intermediária) que, em seguida, passa por compilação JIT (Just-In-Time) em um assembly nativo quando o aplicativo é iniciado. Os aplicativos Xamarin.Android são executados no ambiente de execução Mono, lado a lado com a máquina virtual ART (Runtime do Android). O Xamarin fornece associações .NET para os namespaces Android.* e Java.*. O ambiente de execução Mono chama esses namespaces por meio de MCW (Wrappers Chamáveis Gerenciados) e fornece ACW (Wrappers Chamáveis Android) para o ART, permitindo que ambos os ambientes invoquem o código entre si.
Para obter mais informações, confira a Arquitetura do Xamarin.Android.
Xamarin.iOS
Os aplicativos Xamarin.iOS são totalmente compilados AOT (Ahead-of-Time) de C# para o código do assembly ARM nativo. O Xamarin usa Seletores para expor Objective-C ao C# gerenciado e Registrars expor o código C# gerenciado a Objective-C. Os seletores e Registrars coletivamente são chamados de "associações" e permitem que Objective-C e C# se comuniquem.
Para obter mais informações, confira a Arquitetura do Xamarin.iOS.
Xamarin.Essentials
Xamarin.Essentials é uma biblioteca que fornece APIs multiplataforma para recursos de dispositivo nativo. Como o próprio Xamarin, Xamarin.Essentials é uma abstração que simplifica o processo de acesso à funcionalidade nativa. Alguns exemplos de funcionalidade fornecidos por Xamarin.Essentials incluem:
- Informações do dispositivo
- Sistema de arquivos
- Acelerômetro
- Discagem telefônica
- Conversão de texto em fala
- Bloqueio de tela
Para obter mais informações, consulte Xamarin.Essentials.
Xamarin.Forms
Xamarin.Forms é uma estrutura de interface do usuário de software livre. Xamarin.Forms permite que os desenvolvedores criem aplicativos Xamarin.iOS, Xamarin.Android e Windows de uma única base de código compartilhada. Xamarin.Forms permite que os desenvolvedores criem interfaces de usuário no XAML com code-behind em C#. Essas interfaces do usuário são renderizadas como controles nativos de alto desempenho em cada plataforma. Alguns exemplos de recursos fornecidos por Xamarin.Forms incluem:
- Idioma da interface do usuário XAML
- Associação de dados
- Gestos
- Efeitos
- Estilo
Para obter mais informações, consulte Xamarin.Forms.
Introdução
Os guias a seguir ajudarão você a criar seu primeiro aplicativo usando o Xamarin:
- Introdução ao Xamarin.Forms
- Introdução ao Xamarin.Android
- Introdução ao Xamarin.iOS
- Introdução ao Xamarin.Mac
Vídeo relacionado
Encontre mais vídeos sobre o Xamarin no Channel 9 e no YouTube.