Arquitetura

Arquitetura Mobile – Parte 1

Fala pessoal, como estão?

Hoje vamos iniciar uma série muito interessante sobre o desenvolvimento de uma arquitetura para nossas Apps. Nesta série, vamos abordar assuntos muito interessantes que também fazem parte do nosso mundo do desenvolvimento Mobile. Já conhecemos todos os beneficios que o Xamarin nos proporciona para a criação de nossas aplicações, mas somente conhecer esta tecnologia basta para que nossa APP seja um sucesso?

É isso que vamos conhecer no decorrer dos artigos.

Tecnologias e conceitos

Nosso intuito com este artigo é expor ao leitor situações do cotidiano do desenvolvimento de aplicações mobile, não somente na visão da concepção das telas e versões para plataformas específicas, como alguns padrões e conceitos arquitecturais que são muito importantes.

Vamos trabalhar com as seguintes tecnologias:

  • EntityFramework – Vamos utilizar o entity como nosso ORM para persistência dos dados do nosso aplicativo no banco de dados
  • Unity Container – Container de Injeção de dependências e inversão de controle
  • WebAPI 2 – Para expor nossa lógica de negócio através de serviços REST

Além dessas tecnologias, vamos abordar alguns conceitos arquitecturais, como separação de responsabilidades, inversão de controle, entre outros.

Para o desenvolvimento vamos utilizar o próprio Visual Studio ou o Xamarin Studio.

A aplicação

Vamos desenvolver uma aplicação para cadastrar nossas receitas. Esta aplicação será muito simples, mas utilizará vários conceitos importantes. Um esboço de como será a aplicação é exibido abaixo:

Xamarin.Receitas
Receitas X

Temos, basicamente, 4 telas:

  • Login – Vamos fazer o login para proteger nossas receitas
  • Listagem de categorias – Serão listadas todas as categorias das receitas
  • Listagem de receitas – Serão listadas todas as receitas de uma determinada categoria
  • Receita – Nesta tela será exibida a receita na íntegra.

São telas simples e o Mockup nos dá uma ideia de como ficará nossa APP.

Arquitetura

O ponto mais importante é nossa arquitetura. Além da utilização do Xamarin.Forms, que irá prover nossa aplicação para as principais plataformas, vamos utilizar outros recursos para construção do backend. Para simplificar o entendimento vejamos a imagem abaixo:

Arquitetura
Arquitetura

É uma representação simplificada, mas que demonstra os principais componentes do nosso Backend. Vamos entender melhor sobre cada pacote:

  • Web API –  Será a porta de entrada das requisições da nossa aplicação mobile, nossos dados de receitas e suas respectivas regras. Nesta camada vamos utilizar o WebAPI 2, além do UnityContainer para fazer a Injeção de dependência. Além disso, será a camada que fará a orquestração de negócio. Com isso, tudo o que nossa aplicação backend expor poderá ser utilizado tanto por uma aplicação mobile, quanto por uma aplicação Web.
  • Repository – É um padrão de projeto muito utilizado no desenvolvimento de aplicações. Esta camada será a responsável por fazer todas as operações relacionadas a dados da nossa aplicação.
  • Domain – É uma das camadas mais importantes. Será nesta camada que faremos todas as nossas classes de domínio para abstrair os dados do banco de dados. Contaremos com o EntityFramework no modelo Code First para o mapeamento das nossas entidades de domínio.
  • Dependency Resolver –  Talvez a camada mais simples, porém a mais importante. Ela terá como responsabilidade a adição de objetos no container do inversor de controle.

Considerações finais

Esta será uma aplicação simples, no ponto de vista de funcionalidade, porém, nas devidas proporções, será uma aplicação que provê um ambiente robusto com grandes possibilidades. Os conceitos descritos nestes artigos são aplicados em grandes projetos de software e possuem muitas vertentes que podem ser exploradas. Em alguns momentos serão abstraídas complexidades como forma de manter a didática para o leitor, facilitando o entendimento e nesta situação haverão observações no artigo. Além das definições arquitecturais, algumas boas práticas no Xamarin também serão enfatizadas.

Espero que aproveitem esta série para iniciar sua jornada no desenvolvimento de aplicações mobile de grande porte e já comecem a estudar os novos conceitos e tecnologias que serão abordadas para que haja o máximo de aprendizado.

Até o próximo artigo!

Atualização: Já estão disponíveis a parte 2 e a parte 3 desta série, confira agora! 

Arquitetura Mobile – Parte 1
5 (100%) 3 votos

Albert Tanure

Arquiteto de Software com atuação na área de desenvolvimento a 10 anos. Gosto muito de desenvolver, aprender, gadgets e tenho grande disposição para ensinar e compartilhar conhecimento. Atuante na comunidade Xamarin como XSP e comunidade Microsoft como MTAC.

Um comentário em “Arquitetura Mobile – Parte 1

Deixe uma resposta

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

%d blogueiros gostam disto: