As 5 principais tecnologias de desenvolvimento Android para assistir em 2020

Embora o ambiente de programação mude todos os dias, o Android é sem dúvida a iteração de atualização mais frequente, com novidades todos os anos ou até todos os meses. Este artigo apresenta as 5 principais tecnologias de desenvolvimento Android nas quais os desenvolvedores precisam se concentrar em 2020.

Na conferência Droidcon London 2019, onde muitas equipes de desenvolvimento do Android participaram, uma série de novas tecnologias foi deslumbrante. Desde a guitarra inteligente acessível [1] introduzida por Joe Birch até a próxima biblioteca Jetpack Compose [2], existem muitas inovações e a comunidade em geral precisa encontrar várias tecnologias principais para não se perder.

Este artigo orientará você sobre algumas das principais tecnologias que precisam ser focadas e, ao mesmo tempo, explicará por que essas tecnologias devem ser implementadas primeiro e algumas maneiras iniciais de alcançá-las. É importante enfatizar que, embora a implementação dessas tecnologias não surpreenda seus usuários finais, eles podem ajudar os desenvolvedores a criar recursos chocantes e proporcionar aos desenvolvedores uma base de código mais agradável!

1. Kotlin

Kotlin é geralmente considerado como o próximo Java, patrocinado pelo Google e JetBrains (desenvolvedor do Android Studio). O Java é a linguagem de desenvolvimento preferida para aplicativos Android desde o início, mas o Kotlin ganhou popularidade rapidamente nos últimos anos. Hoje, quase 60% dos 10.000 aplicativos do Google Play usam o Kotlin [3]. Embora alguns casos exijam acesso ao código nativo subjacente, o C ++ continuará sendo usado; em outros casos, o Kotlin pode substituir o Java.

A principal vantagem do Kotlin é a interoperabilidade total com Java, o que significa que os desenvolvedores podem migrar o código antigo o máximo possível, sem reescrever completamente o aplicativo inteiro. As duas linguagens são muito compatíveis, e o Android Studio pode até converter automaticamente de Java para Kotlin.

Essa compatibilidade, combinada com uma sintaxe mais concisa e centenas de pequenas melhorias, torna o Kotlin o quarto maior "mais popular" e o quinto maior "desejo" na pesquisa de desenvolvedores de StackOverflow em 2019 [4] A linguagem de programação é a mais alta entre todas as linguagens de programação móveis.

Uma boa maneira de migrar aplicativos existentes é convertê-los para o Kotlin ao modificar arquivos Java existentes. Embora isso signifique que você precise converter arquivos editados com frequência no passado, ele aumentará a complexidade da revisão de código (como possíveis conflitos), mas como a área convertida pode ser revisada, pode garantir que quaisquer problemas sejam encontrados.

O código Kotlin atualmente usado no Candyspace responde por 86% (e vem crescendo), e os 14% restantes são códigos de utilidade / transformação, que não foram alterados em alguns anos.

2. Jetpack

A biblioteca AndroidX / Jetpack do Google é um conjunto de ferramentas práticas projetadas para simplificar requisitos comuns de aplicativos. Por exemplo, Sala [5] para o banco de dados no dispositivo ou LiveData [6] para atualizar o conteúdo da exibição quando os dados subjacentes são alterados.

Com a biblioteca Jetpack, o novo projeto evita o incômodo de reinventar a roda e não precisa esperar outros desenvolvedores abrirem sua implementação de código-fonte.Agora, todos os desenvolvedores podem obter esses elementos básicos. Essas bibliotecas são atualizadas com freqüência, novos recursos são constantemente introduzidos e correções de erros serão lançadas a tempo. Como essas bibliotecas são criadas para trabalharem juntas, o uso de mais bibliotecas AndroidX pode ajudar a minimizar acidentes no aplicativo.

O uso da biblioteca Jetpack desde o início do trabalho de desenvolvimento pode economizar centenas de horas, mas também podemos migrar aplicativos existentes para a biblioteca Jetpack. Embora possa parecer complicado, porque essas bibliotecas são muito populares, é fácil encontrar diretrizes para o trabalho de migração. Pelo menos, os elementos subjacentes do Android (visualizações, fragmentos etc.) podem ser convertidos automaticamente [7].

No Candyspace, usamos Data Binding e ViewModel, e em breve poderemos ingressar no Room and Navigation.

3. design modular

Desde o início, o aplicativo foi construído como um enorme módulo "aplicativo", que contém tudo o que é necessário para todo o aplicativo. Embora isso facilite o compartilhamento de recursos, também significa que algumas partes desse aplicativo não podem ser reutilizadas por outros aplicativos / projetos de código aberto; mais importante, toda a base de código deve ser recompilada ao fazer alterações no aplicativo.

Por outro lado, se o aplicativo consistir em muitos módulos menores, você só precisará recompilar o código que fez as alterações, o que reduz bastante o tempo de compilação. Além disso, o design modular abre a porta para aplicativos com recursos avançados do Android (como aplicativos instantâneos - os usuários podem usar alguns dos recursos do seu aplicativo sem instalar nada e recursos dinâmicos - instalar partes do aplicativo sob demanda).

Dividir um aplicativo existente em vários módulos pode ser uma tarefa muito complicada, pois encontrará o problema anteriormente oculto ("O que é o DateUtility? Por que você precisa dele em todas as classes!?"); Mas Quando a transformação estiver concluída, a base de código entrará em um estado mais saudável. Além disso, se um novo aplicativo exigir funcionalidade semelhante, você poderá reutilizar rapidamente os módulos existentes, economizando tempo!

Um exemplo de arquitetura de aplicativo modular (fonte: criada pelo autor deste artigo)

Embora projetar uma arquitetura modular possa ser uma tarefa complexa, escrevi alguns princípios orientadores antes [8], que foram inspirados no artigo de Nikits Kozlov sobre modularidade e tempo de construção [9]. A Plaid também escreveu um artigo descrevendo sua experiência de migração para o design modular [10].

Na Candyspace, nossos projetos de aplicativos são completamente modulares para minimizar a interrupção do tempo de desenvolvimento devido ao tempo de construção.

4. Pacote de aplicativos

Ao usar APKs tradicionais para distribuir aplicativos para os dispositivos dos usuários, todos os recursos preparados para todos os dispositivos devem ser instalados. Isso significa que pode haver 5 cópias de cada imagem de bitmap (para precisão de tela diferente), várias versões de bibliotecas para diferentes arquiteturas de dispositivos e até vários conjuntos de margens e valores de preenchimento.

Ao usar o App Bundle para distribuir um aplicativo, o APK que o usuário baixa contém apenas os recursos de que eles realmente precisam. Dessa forma, o tamanho médio do aplicativo será reduzido em 20%, e o tamanho do aplicativo será reduzido significativamente mais depois que o aplicativo não otimizado alterar o formato.

Exemplo de redução do tamanho do aplicativo (dados do Google I / O 2018)

Os bundles de aplicativos nasceram há apenas 18 meses, mas mais de 25% dos aplicativos já estão instalados neste formato! Este é o formato recomendado pelo Google [11], e a maioria dos aplicativos pode usar esse formato quase sem alterações, basta processar a assinatura do App Bundle na Play Store.

Na Candyspace, estamos migrando para os App Bundles enquanto tentamos evitar interromper nosso fluxo de trabalho existente (Slack, build de QAing, instalação que não é do Google Play). O artigo de Alistair Sykes é uma excelente referência de migração [12], que leva em consideração o servidor de CI, o Slack e o compartilhamento de aplicativos internos do Google Play.

5. Teste

Sim teste. Obviamente, o teste não é um novo recurso brilhante, nem é o que os usuários podem ver, mas para garantir a confiabilidade de um aplicativo que já possui uma certa base de usuários, você deve testá-lo completamente. Como a taxa de falha afetará diretamente a sua classificação na Play Store (e definitivamente a arrastará para baixo!), Tente mantê-la em um nível baixo.

imagem

Pirâmide de teste (fonte: developer.android.com)

Os três tipos de teste mais comuns para Android são (em ordem decrescente):

  • Testes de unidade, por exemplo: Minha função de raiz quadrada retornará raiz quadrada?

Esses testes constituirão a maior parte do seu processo de teste; são usados ​​para garantir que um segmento de código específico (como uma função) possa funcionar conforme o esperado. Quando você tem confiança em uma parte, pode usá-lo para ...

  • Teste de integração. Por exemplo: Meu módulo de matemática pode funcionar com o módulo de posição?

Esses testes garantem que suas várias áreas de código (módulos ou camadas) possam funcionar juntas corretamente. Depois de saber que os componentes do aplicativo podem se comunicar corretamente, você pode adicionar ...

  • Teste de interface do usuário automatizado, por exemplo: os usuários podem marcar um local no aplicativo?

Somente esses testes são executados no dispositivo ou emulador e garantem que o aplicativo forneça a experiência completa do usuário conforme o esperado. Esses testes geralmente são muito mais lentos (e mais inconvenientes para a execução) do que outros tipos de testes.

O Google recomenda que a distribuição de testes seja definida como 70% dos testes de unidade, 20% dos testes de integração e 10% dos testes em larga escala.A parte menor requer mais tempo de execução, tempo de manutenção e tempo de implementação.

O melhor recurso de teste é o documento oficial [13], porque fornece uma introdução a todos os tipos de teste e tutoriais sobre como implementá-lo no projeto.

Na Candyspace, nos concentramos em testes de unidade, que representam uma proporção maior do que o Google sugere para garantir que o comportamento de todas as novas classes seja previsível. No momento, estamos aprimorando o teste automatizado da interface do usuário para reduzir a dependência de testes manuais.

Em qualquer campo da programação, existem centenas de opiniões diferentes sobre a melhor maneira de resolver problemas; mas o Android tem uma vantagem absoluta: o Android tem uma grande comunidade de desenvolvedores, o que significa que uma nova tecnologia muito boa será desenvolvida rapidamente Popular entre aqueles. Quando você solicita ajuda a um estranho na Internet, se estiver procurando por "Jetpack LiveData" em vez de "a biblioteca que o desenvolvedor anterior copiou e converteu de um amigo de desenvolvedor da Web", as chances de obter uma resposta com êxito são altas Muito mais!

A chave para manter uma base de código saudável é poder se adaptar a esses padrões em mudança e refatorar projetos existentes. Para entender as práticas e as melhores práticas de desenvolvimento mais recentes do Android, recomendo que você siga o Blog do desenvolvedor do Android [14], / r / AndroidDev subreddit [15] e o Podcast fragmentado [16].

Para a tecnologia mais recente, recomendo a você a maneira mais simples e eficaz de melhorar: mapa do cérebro + vídeo + informações

Neste também possuem uma parte incluída de terminar Ali P6P7 Andrews [+] Avançado partilha de informação levanta questões sair da superfície necessária , bem como avançada arquitetura técnica avançada Brain Mapping, entrevista Android com desenvolvimento temático, materiais avançados arquitetura avançada destes Estes são todos os bons materiais que vou ler repetidamente no meu tempo livre. No mapa do cérebro, cada tópico dos pontos de conhecimento é equipado com um projeto de combate real correspondente, o que pode efetivamente ajudá-lo a dominar os pontos de conhecimento.

Em suma, ele também está aqui para ajudá-lo a aprender e avançar, além de poupar a todos o tempo de procurar informações na Internet para aprender, e você também pode compartilhar com seus amigos para aprender juntos.

Publicado 488 artigos originais · elogiou 85 · 230.000 visualizações +

Acho que você gosta

Origin blog.csdn.net/Coo123_/article/details/104436968
Recomendado
Clasificación