Entendendo Android Jetpack-parte 2

Victor Bruno Botelho
4 min readFeb 18, 2019

--

Como vimos no ultimo artigo o Android Jetpack é dividido em quatro partes principais, demos um pequena introdução e falamos sobre os componentes da parte de arquitetura, nessa segunda parte iremos falar sobre os componentes Base.

Os componentes de base(Foundation) fornecem funcionalidade transversal, como retrocompatibilidade, testes e compatibilidade com a linguagem Kotlin.

E os Componentes são divididos em quatro partes que irei comentar aqui.

AppCompat

A AppCompat é uma coleção de bibliotecas que pode ser definida em dois grupos de bibliotecas a de compatibilidade e a bibliotecas de componentes .

A versão atual do AppCompat (v28.x) é a versão final. As próximas versões deste código usarão exclusivamente o Jetpack.

Você deve estar se perguntando porquê a Google está fazendo isso se já funcionava do jeito que estava, antigamente um dos motivos são os names spaces grandes e confusos agora são mais consistentes agora começam com (androidx. *) para as bibliotecas de suporte facilitando o uso, também o versionamento agora é semântico começando do 1.0.0 agora cada componente pode ser atualizado individualmente, facilitando atualizações e evitando importar vários componentes desnecessários.

Android KTX

O Android KTX é um conjunto de extensões do Kotlin que faz parte da família Android Jetpack.

Ele otimiza as APIs do Jetpack e da plataforma Android para uso no Kotlin. O objetivo do Android KTX é tornar o desenvolvimento de Android com o Kotlin mais conciso, agradável e idiomático aproveitando recursos da linguagem Kotlin, como funções/propriedades de extensão, lambdas, parâmetros nomeados e valores padrão de parâmetro. O Android KTX não adiciona novos recursos às APIs do Android já existentes.

Multidex

Um programa aplicativo Android é compilado em um arquivo .dex que, por sua vez, é compactado em um único arquivo .apk.
O DVM (Dalvik Virtual Machine) usa arquivos / arquivos .dex para executar bytecodes.

Mas o que significa Dex ?

Dex significa Dalvik Executable, que é o que o processador de máquinas virtuais do Google (Dalvik) usa para lidar com aplicativos Android. O Android foi criado com aplicativos pequenos e simples em mente e as restrições em um único executável da Dalvik fixaram o teto das referências de código em 65.536 métodos.

Este número não é por acado, ele representa a quantidade máxima de referências que podem existir em arquivos de bytecode Dalvik Executables (DEX) (64×1024). esses arquivos são usados na execução do nosso aplicativo e estão presentes no nosso .APK.

Mas 65.536 métodos não é muito ?

Pode parecer bem difícil exceder esse numero mas se você usar muitas bibliotecas de terceiros como Retrofit, Facebook e outras e esse numero pode aumentar muito , quando um aplicativo é criado do zero ele já vem com varias bibliotecas inclusas então você pode estar começando com 1/4 da capacidade já utilizada

Pensando em solucionar esse problema, foi criado o MultiDex. Como o nome sugere, ele permite que código de múltiplos arquivos DEX possam ser lidos e referenciados. Nós só precisamos habilitar o MultiDex em nossa aplicação e toda mágica deve acontecer.

Test

A Android Testing Support Library fornece uma estrutura extensa para testar aplicativos Android. Essa biblioteca fornece um conjunto de APIs que permitem compilar e executar código de teste para seus aplicativos, inclusive testes de JUnit 4 e de interface do usuário (UI) funcionais. Para executar testes criados com essas APIs, use o Android Studio IDE ou a linha de comando.

A Android Testing Support Library contém as seguintes ferramentas de automação de testes:

  • AndroidJUnitRunner: Executor de teste compatível com JUnit 4 para Android
  • Espresso: Estrutura de teste de UI; adequado para teste funcional da UI dentro de um aplicativo
  • UI Automator: Estrutura de teste de UI; adequado para teste funcional de UI de vários aplicativos entre sistemas e aplicativos instalados

Conclusão

Como o primeiro artigo que falamos sobre arquitetura esse demos uma pequena introdução ao modulo de Foundation(Base)Android Jetpack que é muito importante sabermos para entender e usarmos corretamente os componente que nos auxiliam no desenvolvimento de nossas aplicações, abaixo deixarei a documentação oficial pra quem quiser se aprofundar mais ainda.

--

--