Livro "Desenvolvimento de aplicativos móveis em C # para iOS e Android"

Caros leitores, temos o prazer de apresentar o livro “Desenvolvimento de aplicativos móveis em C # para iOS e Android” de Vyacheslav Chernikov, autor e especialista em Xamarin, bem conhecido por você, da Binwell. Sem longos prelúdios, passo a palavra ao autor.



Boa tarde, querido habrachitatel. Nos últimos anos, escrevi vários artigos e tutoriais sobre o desenvolvimento de aplicativos móveis usando C # e a estrutura Xamarin, mas inicialmente todos esses guias e parte dos artigos foram concebidos como capítulos do meu primeiro livro, que finalmente viu a luz do dia. Sendo reunidos em um único todo (e há muitas coisas que não foram publicadas antes!), Os materiais do livro levarão o processo de desenvolvimento de aplicativos móveis a um nível totalmente novo - desde a escolha de uma ferramenta e preparação da documentação, até a automação do processo de desenvolvimento e a solução de problemas comuns. Este livro foi concebido como uma adição harmoniosa aos materiais sobre o Xamarin que já estão em russo e inglês, revelando questões como design, arquitetura, criando o esqueleto (quadro) de um projeto, tudo o que geralmente permanece nos bastidores da maioria dos livros e cursos de treinamento .

O livro aborda em detalhes e com um grande número de exemplos de código os seguintes tópicos: comparação de ferramentas nativas e de plataforma cruzada usando Xamarin, ReactNative, PhoneGap, Qt e Flutter como exemplos; design e documentação técnica para o código; arquitetura e estrutura do projeto, colocamos tudo no lugar; DevOps móveis e automação de montagem, teste, entrega e monitoramento; conselhos práticos para todos os dias.



O livro pode ser comprado no site da editora “ DMK Press ” (a opção mais barata!) E nas lojas online Labyrinth , My-Shop.ru , Flip.kz , Oz.by , além de outras lojas on-line, seu número aumenta com a distribuição do livro .

Para a semente (e com o consentimento do editor), darei uma parte do capítulo 3.

3. arquitetura de aplicativo


Portanto, já nos familiarizamos com o funcionamento do Xamarin.Forms e como executar o projeto técnico por conta própria. Agora temos um entendimento do modelo de domínio e é hora de avançar para a arquitetura e a estrutura da solução - como distribuiremos nossas classes em pastas para facilitar a localização posterior do código necessário.

3.1 MVVM multicamada


Em aplicativos móveis, uma arquitetura multicamada é tradicionalmente usada com separação de camadas de acesso a dados, camada de lógica de negócios e camada de exibição da interface do usuário.


Fig. 3.1 Arquitetura clássica de três camadas

Como o padrão de arquitetura MVVM é nativo do Xamarin.Forms, é recomendável usá-lo em aplicativos móveis. O MVVM descreve o relacionamento do View (geralmente as telas do aplicativo são Page), ViewModel e Model.


Fig. 3.2 Padrão MVVM

Assim, a arquitetura típica de um aplicativo baseado no Xamarin.Forms será a seguinte:


Fig. 3.4 Arquitetura básica de aplicativos no Xamarin.Forms

Neste livro, focaremos na arquitetura apresentada, pois é um clássico para o Xamarin.Forms. Cada um dos módulos será descrito em mais detalhes nas seções a seguir.

3.2 Decomposição em Camadas


Se recordarmos o básico, um programa é um conjunto de algoritmos e dados. Aplicativos móveis não são exceção. A arquitetura permite que você separe os algoritmos e os dados para várias finalidades.

Em aplicativos móveis, os seguintes tipos de algoritmos podem ser distinguidos condicionalmente:

  1. controlar o comportamento e a aparência dos componentes da interface do usuário (interface do usuário, interface do usuário);
  2. lógica de interação do usuário e cenários de negócios (lógica de negócios, BL);
  3. lógica de aquisição, armazenamento e transformação de dados (camada de acesso a dados, DAL);
  4. funcionalidade da plataforma não relacionada à interface do usuário (plataforma).
  5. Também existem muitos algoritmos adicionais, como inicialização de aplicativos ou classes e extensões auxiliares adicionais (Extensões), mas eles não são tão fáceis de classificar, pois são específicos para projetos, equipes e bibliotecas selecionadas.
  6. A estrutura de um projeto vazio no Xamarin.Forms é mostrada abaixo. Além disso, é importante entender em quais pastas colocar os arquivos, para que o código permaneça simples.


Fig. 3.5 A estrutura de um projeto vazio no Xamarin.Forms

Se prosseguirmos em como manter o código "em boa forma" (dívida técnica mínima), é importante que a equipe siga acordos uniformes. Abaixo, consideraremos um exemplo da separação de classes em pastas, que corresponderá à arquitetura descrita.

Mas primeiro, vamos relembrar os dados. É importante entender quais deles serão discutidos. Existem dados provenientes do servidor (objeto de transferência de dados, dto), mas existem dados processados ​​no aplicativo (modelos, entidades, objetos de dados). Observe que é mais conveniente receber imediatamente dados prontos da camada DAL, para que seja mais fácil trabalhar com eles. Falaremos mais sobre isso na seção 3.5.

Além disso, em aplicativos móveis, não existe uma quantidade de dados necessária para criar modelos espessos e "manchar" a lógica de negócios neles (uma abordagem de grandes sistemas corporativos). POCO convencional suficiente (objeto CLR antigo simples) sem lógica. Portanto, todos os dados finalizados vêm da camada DAL, as classes DTO que outras camadas não têm conhecimento ficam ocultas. Abaixo está a diferença entre modelos espessos e objetos POCO.


Fig. 3.6 A diferença entre um modelo "grosso" e um objeto POCO

Além disso, aderiremos à seguinte notação:

  1. Data Objects - modelos de dados simples (POCO) com os quais a lógica de negócios continuará trabalhando.
  2. Data Services - serviços de aquisição, transformação e armazenamento de dados.
  3. Serviços Comerciais - serviços de processamento de dados e cenários de negócios.
  4. Serviços de plataforma - serviços para acesso direto à funcionalidade da plataforma.

Ficaria muito grato por seus comentários e comentários, fique em contato!

Source: https://habr.com/ru/post/pt484602/


All Articles