Entendendo a Xamarin

Tempo de leitura: 9 minutos

Este artigo foi criado com base na documentação disponibilizada pela Xamarin.

A plataforma Xamarin consiste em uma série de elementos que lhe permitem desenvolver aplicativos para iOS e Android:

  • Linguagem C# – Permite que você use uma sintaxe familiar e recursos sofisticados como Generics, Linq e da Biblioteca Task Parallel.
  • .NET Framework Mono – Fornece uma implementação de plataforma cruzada dos extensos recursos do framework .NET da Microsoft.
  • Compilador- Dependendo da plataforma, produz um aplicativo nativo (por exemplo iOS) Ou um aplicativo .NET integrado e em tempo de execução (por exemplo, o Android).
  • Ferramentas de IDE – O Xamarin Studio IDE eo Xamarin plug-in para o Visual Studio permitem criar, construir e implantar projetos Xamarin.

Além disso, porque a linguagem subjacente é C# com o framework .NET, os projetos podem ser estruturados para compartilhar código que também pode ser implantado para o Windows Phone.

Compilação

A fonte C# faz o seu caminho em um aplicativo nativo de maneiras muito diferentes em cada plataforma:

  • iOS – C# é  AOT compilado para a linguagem do grupo ARM. O framework .NET está incluído, com classes não utilizadas sendo retiradas durante a ligação para reduzir o tamanho do aplicativo. A Apple não permite a geração de código de tempo de execução em iOS, portanto, algumas características da linguagem não estão disponíveis (ver Xamarin.iOS limitações).
  • Android – C# é compilado para IL e embalado com MonoVM + JIT’ing. As classes não utilizadas são retiradas durante a ligação. O aplicativo é executado lado-a-lado com Java/Dalvik e interage com os tipos nativos via JNI (ver Xamarin.Android limitações).
  • Windows Phone – C# é compilado para IL e executado pelo tempo de execução built-in, e não requer ferramentas Xamarin. Projetando aplicativos do Windows Phone seguindo a orientação de Xamarin torna-se mais simples para reutilizar o código em iOS e Android.

Acesso à plataforma SDK

Xamarin faz com que os recursos fornecidos especificamente pela plataforma SDK sejam facilmente acessados por sintaxes C#:

  • iOS – Xamarin.iOS expõe quadros CocoaTouch SDK da Apple como namespaces que você pode fazer referência a partir de C #. Por exemplo, o quadro UIKit que contém todos os controles de interface do usuário pode ser incluído usando MonoTouch.UIKit.
  • Android – Xamarin.Android expõe do Google Android SDK como namespaces, para que você possa fazer referência a qualquer parte do SDK, como o uso Android.Views; para acessar os controles de interface do usuário.
  • Windows Phone – Windows Phone não é parte da plataforma Xamarin. Quando a construção de aplicativos para Windows Phone em C #, o SDK é implicitamente disponíveis para seu aplicativo, incluindo controles Silverlight / XAML para a interface do usuário.

Integração Seamless para desenvolvedores

A beleza da Xamarin é que, apesar das diferenças entre Xamarin.iOS e Xamarin.Android (juntamente com Windows Phone SDK da Microsoft), oferecem uma experiência perfeita para se trabalhar com código C# que podem ser reutilizados em todas as três plataformas.

A lógica de negócios, o uso de banco de dados, acesso à rede e outras funções comuns podem ser escritos uma vez e re-utilizados em cada plataforma, fornecendo uma base para interfaces de usuários específicos da plataforma que se parecem e funcionam como aplicativos nativos.

Disponibilidade do Ambiente Integrado de Desenvolvimento (IDE)

O desenvolvimento Xamarin pode ser feito em Xamarin Studio ou Visual Studio. O IDE que você escolher será determinado pelas plataformas que você deseja atingir.

Como aplicativos do Windows Phone só podem ser desenvolvidos no Windows, é impossível desenvolver para as três plataformas no mesmo sistema operacional. Todavia, após as orientações deste documento é possível reutilizar o código em todas estas plataformas.

Os requisitos de desenvolvimento para cada plataforma são discutidos em mais detalhe abaixo.

iOS

Desenvolver aplicativos iOS requer um computador Mac, executando o Mac OS X. Você também pode usar o Visual Studio para escrever e implementar aplicativos iOS com iOS plugin do Visual Studio de Xamarin. No entanto, um Mac ainda é necessário para fins de build, publicação e licenciamento.

O Xcode IDE da Apple deve ser instalado para fornecer o compilador e simulador para teste. Para testar em um dispositivo real e apresentar candidaturas para a distribuição, você deve se juntar Developer Program da Apple (US$ 99 USD por ano). Cada vez que você enviar ou atualizar um aplicativo, ele deve ser analisado e aprovado pela Apple antes de ser disponibilizado para os clientes baixarem.

O código é escrito com a Xamarin Studio ou Visual Studio IDE e layouts de tela podem ser construídos de forma programática ou editado com iOS Designer de Xamarin em qualquer IDE.

Consulte o Guia de Instalação do Xamarin.iOS para obter instruções detalhadas sobre como se configurar.

Android

O desenvolvimento de aplicativos Android exige que os SDKs Java e Android sejam instalados. Eles fornecem o compilador, emulador e outras ferramentas necessárias para a construção, implantação e testes. Java, do Google Android SDK e ferramentas de Xamarin podem ser instalados e executados nas seguintes configurações:

  • Mac OS X com o Xamarin Studio IDE
  • Windows 7 ou 8 com a Xamarin Studio IDE
  • Windows 7 ou 8 com o Visual Studio 2010, 2012 ou 2013

Xamarin fornece um instalador unificado que vai configurar o seu sistema com o pré-requisito de Java, Android e ferramentas Xamarin (incluindo um designer visual para layouts de tela).

Você pode construir e testar aplicativos em um dispositivo real, sem qualquer licença da Google, no entanto, para distribuir seu aplicativo por meio de uma loja (como o Google Play, Amazon ou Barnes & Noble) uma taxa de inscrição deverá ser paga ao operador. Então, Google Play vai publicar seu aplicativo instantaneamente, enquanto as outras lojas têm um processo de aprovação semelhante ao da Apple.

Windows Phone

Aplicativos do Windows Phone são construídos com o conjunto de ferramentas Microsoft Visual Studio 2010, 2012 ou 2013. Eles não usam Xamarin diretamente. No entanto, o código C# pode ser compartilhado entre o Windows Phone, iOS e Android usando as ferramentas da Xamarin.

Criando a interface de usuário (UI)

Um dos principais benefícios do uso de Xamarin é que a interface de usuário do aplicativo usa controles nativos em cada plataforma,criando aplicativos que são indistinguíveis a partir de um aplicativo escrito em Objective-C ou Java (para iOS e Android, respectivamente).

Quanto à construção de telas em seu aplicativo, você pode dispor os controles em código ou criar telas completas, usando as ferramentas de design disponíveis para cada plataforma.

Criar controles programaticamente

Cada plataforma permite que os controles de interface do usuário possam ser adicionados à uma tela usando o código. Isto pode ser muito demorado, uma vez que pode ser difícil de visualizar o projeto acabado quando coordenadas de pixel embutirem para posições e tamanhos de controle.

Criar programaticamente controles tem seus benefícios, porém, é particularmente bom em iOS para a construção de pontos de vista que redimensionam ou prestam de forma diferente entre os tamanhos de tela de iPhone e iPad.

Visual Designer

Cada plataforma tem um método diferente para colocar telas:

  • iOS – iOS Designer de Xamarin para Xamarin Studio e Visual Studio facilita a construção de Visualizações usando a funcionalidade e propriedade campos de arrastar-e-soltar. Coletivamente, essas Visualizações compõem um Storyboard, e pode ser acessado no arquivo .STORYBOARD que está incluído em seu projeto.
  • Android – Xamarin fornece uma drag-and-drop designer de interface do usuário Android para ambos Xamarin Studio e Visual Studio. Layouts de tela Android são salvos como arquivos .AXML ao usar ferramentas Xamarin.
  • Windows Phone – Microsoft fornece um designer de interface do usuário de arrastar-e-soltar no Visual Studio e Blend. Os layouts de tela são armazenados como arquivos XAML.

Em todos os casos, os elementos que você cria visualmente pode ser referenciados em seu código.

Considerações sobre Interface de Usuário

Um dos principais benefícios do uso de Xamarin para construir aplicações multi-plataforma é que eles podem tirar proveito de toolkits UI nativos para apresentar uma interface familiar para o usuário.
Algumas representações de interface do usuário trabalham em múltiplas plataformas (por exemplo, todas as três plataformas usam um semelhante controle de lista de rolagem), mas para que seu aplicativo “perceba” direito a IU deve-se tirar proveito de elementos de interface do usuário específicos da plataforma, quando apropriado. Exemplos de metáforas de interface do usuário específicos da plataforma incluem:

  • iOS – navegação hierárquica com a tecla virtual de volta, abas na parte inferior da tela.
  • Android – botão de hardware / sistema de software de volta, menu de ação, abas no topo da tela.
  • Windows Phone – botão de hardware para trás, controle de layout panorama.

Biblioteca e Código Re-Use

A plataforma Xamarin permite a reutilização de código C# em todas as plataformas, bem como a integração de bibliotecas escritas nativamente para cada plataforma existente.

C# fonte e bibliotecas

Como os produtos Xamarin usam C # e .NET Framework, um monte de códigos de fonte existente podem ser re-utilizados em projetos Xamarin.iOS ou Xamarin.Android. Muitas vezes, a fonte pode ser simplesmente adicionada à uma solução Xamarin e que vai trabalhar imediatamente. Se uma função de framework .NET sem suporte tem sido utilizada, alguns ajustes podem ser necessários.

Exemplos de fonte C # que podem ser usados em Xamarin.iOS ou Xamarin.Android incluem: SQLite-NET, NewtonSoft.JSON e SharpZipLib.

Objective-C Ligações + Projetos Vinculados

Xamarin fornece uma ferramenta chamada btouch que ajuda a criar ligações que permitem bibliotecas Objective-C para serem utilizados em projetos Xamarin.iOS.

Exemplos de bibliotecas Objective-C que podem ser usadas em Xamarin.iOS incluem: RedLaser código de barras, o Google Analytics e integração PayPal. Vinculações Open-source Xamarin.iOS estão disponíveis no github.

4 Comentários


  1. boa noite, sou programador e desenvolvo em vb6 ainda e quero utilizar c# para construir apps pode me orientar por onde começar a dominar c# e criar apps?

    Responder

    1. Cara, o meu caso é exatamente igual ao seu, também sou programador VB6 e queria desenvolver apps utilizando C#, só que não sei por onde começar, gostaria de uma ajuda aí, só uma orientação pra começar a dominar essas ferramentas. Desde já agradeço!

      Responder

      1. Olá Meus caros!
        Vejo que há 1 ano vocês entraram em contato espero que possa ajudar!

        Meu nome é Rafael tenho 10 anos de experiência com C# e no meu caso eu comprei o livro https://www.estantevirtual.com.br/autor/john-sharp
        2008
        E fiz um projeto piloto baseado nas entidades de banco de dados
        Cliente, Produto, Compra e ItemCompra
        Com este pequeno projeto ingressei no mundo C# e ajudei a criar a primeira calculadora de Gás e Efeito Estufa do Brasil em SilverLight

        Espero ter ajudado
        Forte abraço,
        Rafael

        Responder

  2. Muito bom esse artigo!
    O Xamarin é uma plataforma de desenvolvimento mobile que vem crescendo bastante nos últimos anos, e muito desse sucesso ocorre devido à sua estrutura de compartilhamento de código. Quando comparamos, por exemplo, um projeto Xamarin para Android e iOS, temos em torno de 75% do código compartilhado. Isso possibilita um ganho muito grande em tempo de desenvolvimento se fizermos uma comparação direta com Java (para Android) e Swift/Objective-C (para iOS).

    Responder

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *