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