Desenvolvimento de Apps Móveis com 

Paulo Henrique Araujo - M18

O Que é Xamarin

  • Possibilita o desenvolvimento de Apps móveis nativas utilizando C#.
  • Também permite utilizar features do C# e do .NET, como async/await
  • Todos os apps gerados são nativos, então qualquer erro no Android nativo, vai ocorrer no Xamarin

Reaproveitamento de Código

  • Desenvolvimento mobile cross-plataform.
  • C#  - > iOS, Android e Windows Phone.
  • Todos os apps gerados são nativos, então qualquer erro no Android nativo, vai ocorrer no Xamarin

Reaproveitamento de Código

  • É possível reaproveitar toda a camada de negócios(acesso a dados, classes de domínio, logging, etc)
  • Necessário apenas especializar sua interface (UI) e as chamadas à APIs especificas de cada plataforma.

Xamarin Forms

  • Em 2014, surgiu o Xamarin Forms
  • Acrescenta uma "camada de abstração" na criação de interfaces usando C# ou XAML(Extensible Aplication Markup Language)

Xamarin Forms

Compartilhando código

  • Shared Project
  • Portable Class Libraries

Shared Project

  • Compartilhamento direto dos arquivos do código entre os projetos (iOS, Android)
  • São usadas marcações no arquivo chamadas DIRETIVAS DE COMPILAÇÃO

Shared Project

Prós

Contras

  • Permite o compartilhamento de código entre múltiplas plataformas
  • Acesso total aos componentes .NET e APIs diretamente nas plataformas
  • Não geram uma DLL durante a compilação, e os arquivos são tratados como parte do projeto
  • Manutenção e Testes em arquivos compartilhados

Portable Class Library  (PCL)

  • Ao contrário da Shared, é gerado uma Dynamic Link Library (DLL) que referencia para as respectivas plataformas

Portable Class Library  (PCL)

Portable Class Library  (PCL)

Prós

Contras

  • Compartilhamento de código de forma inteligente e testável
  • Aplicação com baixo acoplamento
  • Flexibilidade para manutenção e testes
  • Exige maior expertise em padrões de projeto visando o compartilhamento de códigos
  • Somente um "subset" (subconjunto) do .NET estará disponível
  • Não ofere suporte a diretivas de compilação

Afinal, qual usar ?

Afinal, qual usar ?

  • Em projetos pequenos, pode-se utilizar Shared, porém, o código é mais "chato" de ser lido e entendido

 

 

  • Em projetos grandes, PCL é recomendado, usando Injeção de Dependência para implementar os recursos específicos de cada plataforma.

Concluindo...

  • Xamarin Forms sai na frente no requisito TEMPO​
  • Enquanto Xamarin "Nativo" sai na frente quanto a EXPERIÊNCIA DO USUÁRIO

Demo

Disponível em : https://github.com/pauloharaujos/Talk_XamarinMobileAppDevelopment

Dúvidas ?

Obrigado

:)

Desenvolvimento Híbrido de Apps com Xamarin

By Paulo Henrique

Desenvolvimento Híbrido de Apps com Xamarin

  • 182