segunda-feira, 11 de junho de 2018

Melhores práticas no desenvolvimento do Android - Part 1

Vamos dar uma olhada em algumas práticas padrão que devemos aplicar ao criar aplicativos Android.

As melhores práticas são simplesmente padrões profissionais que são aceitáveis em um campo. Aqui, veremos essas práticas relacionadas ao desenvolvimento do Android.

Introducao.

A plataforma Android administra o mercado de celulares no momento. Durante o Google IO em maio de 2017, o Google anunciou que havia 2 bilhões de dispositivos Android ativos por mês. Isso é cerca de 74% da participação de mercado do sistema operacional móvel de acordo com o StatCounter em fevereiro de 2018. Esta é uma das principais razões para o grande surgimento de desenvolvedores do Android nos últimos tempos. Como resultado do grande patrocínio da plataforma móvel, a maneira como construímos soluções móveis também é muito importante.  

Se você está construindo para bilhões de usuários, nós temos que crescer acima apenas construindo apenas para as funcionalidades temos que considerar outros fatores, como escalabilidade, melhor experiência do usuário, etc.Recentemente, tem havido muitas promessas no desenvolvimento do Android desde a introdução formal do Kotlin. Em maio de 2017, ainda durante o Google IO, o Google anunciou seu apoio ao idioma. Kotlin é uma linguagem de programação estaticamente tipada que é executada na máquina virtual Java. É estaticamente digitado porque o tipo de dados das variáveis ​​é conhecido em tempo de compilação. A linguagem vem com muitos novos recursos:

  • Segurança nula. 
  • Inferência inteligente.
  • Interoperabilidade com Java. 
  • Pode ser compilado para bytecode ou JavaScript da JVM

Kotlin nos ajuda a escrever código duas vezes mais rápido do que com Java. O Android lançou um conjunto de funções de extensão para tornar o código no Android ainda mais conciso. A linguagem está em desenvolvimento desde 2010 e a versão atual no momento de escrever este artigo é v1.2.30.

Neste artigo, veremos algumas práticas recomendadas no desenvolvimento do Android para nos ajudar a criar aplicativos melhores. Nós também faremos uso de Kotlin para os trechos. Vamos pular neles imediatamente!

Padrões de design

Os padrões de projeto são soluções gerais e reutilizáveis ​​para problemas comuns em um determinado contexto no design de software. É mais como um modelo para uma solução. Além de ser apenas uma possível solução para um problema, ajuda a comunicação entre os desenvolvedores, pois fica mais fácil trabalhar em equipes quando todos estão familiarizados com os padrões acordados a seguir. Padrões de design não saíam da bolsa, eles existiam desde então. De acordo com Javamann no StackOverflow: "Nós usamos padrões de design nos anos 80, nós simplesmente não sabíamos que eles eram padrões de design".
Image result for Android patterns design 
Alguns padrões praticados durante o desenvolvimento de aplicativos para Android incluem injeção de dependência, o padrão singleton, o padrão de separação de interesses entre outros. Vamos olhar brevemente para dois deles.Injeção de dependênciaA injeção de dependência (DI) é um conceito em que um objeto não precisa configurar suas próprias dependências (objetos). Em vez disso, as dependências são passadas por outro objeto. DI sugere que objetos sejam inicializados em outro lugar e dados ao objeto solicitante. Existem várias formas de injeções:


  • Injeção de construtor - onde as dependências são passadas através do construtor. 
  • Injeção de campo - onde as dependências são enviadas para os campos de classe diretamente, etc.

O último é muito difícil de implementar por si mesmo e, portanto, o uso de uma biblioteca DI Dagger2 é recomendado. Abaixo está um trecho rápido para mostrar uma instância de injeção de dependência:  


..
Aqui, esta classe MainActivitySample possui uma dependência MainActivityRepo e não é responsável por inicializá-la. Em vez disso, o objeto está sendo inicializado em outro lugar e servido à classe por meio do construtor. Este é um exemplo de injeção de construtor. O DI, a longo prazo, nos ajuda a criar aplicativos levemente acoplados e testáveis. Isso porque, se um objeto mudar, digamos, alterações de MainActivityRepo, é mais fácil reconfigurar o objeto de uma única fonte, em vez de ir para todas as classes que o usam para fazer isso.

Separação de Preocupações (SoC)

Este é um padrão que incentiva a dissociação do seu código em unidades distintas com responsabilidades bem definidas. Em uma plataforma como o Android, onde há componentes como atividades, fragmentos, serviços, provedores de conteúdo e receptores de transmissão sendo controlados pelo sistema operacional Android, negligenciar isso tem repercussões nos aplicativos que criamos. É aqui que entram os padrões de arquitetura. Os padrões arquiteturais podem ajudar a separar nossa apresentação de dados do processamento de dados. Existem vários padrões de arquitetura que existem, como Model View ViewModel (MVVM), Model View Presenter (MVP), etc.

Vamos dar uma breve olhada na arquitetura do MVP. Essa arquitetura é composta de três partes distintas:


  • The View: esta é a parte que exibe o conteúdo para o usuário, como uma barra de progresso, diálogos, etc.
  • The Model: é responsável por fornecer dados ao aplicativo, seja do DB ou de um serviço da web. Esta deve ser sua única fonte de verdade (dados).
  • The Presenter: essa parte lida com a lógica de negócios, como chamar o modelo para obter dados e, em seguida, atualiza a exibição.

Um típico fluxo de MVP funciona assim:

Seu aplicativo começa mostrando um diálogo de progresso. É responsabilidade do View fazer isso. Ao mostrar a caixa de diálogo, ela precisa exibir dados na interface do usuário, informa o presenter. O presenter chama o model e depois que os dados são obtidos, ele é retornado ao presenter que, por sua vez, retorna os dados para a View. Ao usar uma arquitetura, certifique-se de manter essa estrutura em todo o aplicativo. Quando você separa com sucesso seu código dessa forma, fica fácil manter, enviar novos recursos e testar. Os documentos do Android fornecem um tutorial detalhado sobre um guia para a arquitetura apropriada usando os componentes da arquitetura. Aqui está outro guia que oferece uma boa visão geral dos padrões de design no Android.

Experiência de usuário

A experiência do usuário nesse contexto refere-se à satisfação da interação de um usuário com seu aplicativo. Todos concordamos que, recentemente, houve um aumento na demanda por melhores experiências em dispositivos móveis. Aqui estão algumas coisas a serem observadas para melhorar a experiência de nossos aplicativos:

UI excelente

Uma sensação encantadora e experiência de um aplicativo começa com um bom design. Certifique-se de obter um que corresponda aos princípios de design de materiais do Google. Alguns desses princípios incluem:

  • Fornecendo um botão de navegação para cima.
  • Consistência em combinações de cores.
  • Uso de ícones apropriados para retratar a funcionalidade, etc. 



Continua na parte 02

Sem comentários:

Enviar um comentário