Android Jetpack
O Jetpack é um pacote de bibliotecas que ajuda desenvolvedores a seguir as práticas recomendadas, reduzir códigos boilerplate e programar códigos que funcionam de maneira consistente em diferentes dispositivos e versões do Android. Assim, os desenvolvedores podem se concentrar no código que realmente importa para eles.
Jetpack Compose
Desenvolver uma interface com o Compose
Um kit de ferramentas moderno para criar IU nativa que permite simplificar e acelerar o desenvolvimento de IUs no Android.
Aprenda a usar o Jetpack
Treinamento básico
Aprenda sobre as bibliotecas essenciais do Jetpack no curso "Noções básicas do Android com o Compose" e reduza o código boilerplate no seu app.
Tutorial prático
Pratique com três bibliotecas do Jetpack que simplificam a camada de dados: LiveData, ViewModel e Room
App de exemplo Now in Android
Veja como a arquitetura moderna do Android é implementada em um app real
Bibliotecas do Jetpack Ver todas as bibliotecas
* As bibliotecas mais usadas são listadas primeiro
activity * | Acesse APIs combináveis baseadas na Activity. |
appcompat * | Permite o acesso a novas APIs em versões anteriores de API da plataforma (muitas usando o Material Design). |
appsearch * | Crie recursos personalizados de pesquisa no app para os usuários. |
camera * | Crie apps de câmera para dispositivos móveis. |
compose * | Defina a interface de maneira programática com funções combináveis que descrevem a forma e as dependências de dados dela. |
databinding * | Vincule componentes de interface dos seus layouts a fontes de dados no seu app usando um formato declarativo. |
fragment * | Segmente seu app em várias telas independentes hospedadas em uma atividade. |
hilt * | Estenda a funcionalidade de Dagger Hilt para ativar a injeção de dependências de determinadas classes das bibliotecas do AndroidX. |
lifecycle * | Crie componentes com reconhecimento de ciclo de vida que podem ajustar o comportamento com base no estado atual do ciclo de vida de uma atividade ou um fragmento. |
Material Design Components * | Componentes modulares e personalizáveis da interface do Material Design para Android. |
navigation * | Crie e estruture sua interface no app, gerencie links diretos e navegue entre telas. |
paging * | Carregue dados em páginas e os exiba em uma RecyclerView. |
room * | Crie, armazene e gerencie dados persistentes baseados em um banco de dados SQLite. |
test * | Teste no Android. |
work * | Programe e execute tarefas em segundo plano baseadas em restrições. |
ads | Receba um ID de publicidade com ou sem o Google Play Services. |
annotation | Exponha metadados que ajudam as ferramentas e outros desenvolvedores a entender o código do seu app. |
arch.core | Assistente para outras dependências de arquivamento, incluindo regras de teste do JUnit que podem ser usadas com o LiveData. |
asynclayoutinflater | Aumente os layouts de maneira assíncrona para evitar instabilidade na interface. |
autofill | Melhore a precisão do preenchimento automático com hints estendidos. |
benchmark | Meça com precisão a performance do código no Android Studio. |
biometric | Faça a autenticação com biometria ou credenciais do dispositivo e execute operações criptográficas. |
Bluetooth | Use os recursos de Bluetooth da plataforma Android com APIs compatíveis com versões anteriores. |
browser | Exiba páginas da Web no navegador padrão do usuário. |
car-app | Crie apps baseados em modelos para o Android Auto e o Android Automotive OS. |
cardview | Implemente o padrão de card do Material Design, com cantos arredondados e sombras projetadas. |
collection | Reduza o impacto de pequenas coleções novas e já existentes na memória. |
compose.animation | Crie animações nos aplicativos Jetpack Compose para enriquecer a experiência do usuário. |
compose.compiler | Transforme funções @Composable e ative otimizações com um plug-in do compilador Kotlin. |
compose.foundation | Crie aplicativos do Jetpack Compose com elementos básicos prontos que podem ser usados para criar suas próprias peças de sistema de design. |
compose.material | Crie IUs do Jetpack Compose com componentes do Material Design prontos para uso. Este é o ponto de entrada de nível mais alto do Compose, projetado para fornecer componentes que correspondam aos descritos em www.material.io. |
compose.material3 | Crie IUs do Jetpack Compose usando componentes do Material Design 3, a nova versão do Material Design. O Material 3 inclui temas e componentes atualizados, além de recursos de personalização do Material You, como cores dinâmicas, e foi desenvolvido para ser coeso com o novo estilo visual do Android 12 e com a interface do sistema. |
compose.runtime | Elementos fundamentais do modelo de programação e do gerenciamento de estado do Compose e do ambiente de execução principal do plug-in Compose Compiler. |
compose.ui | Componentes fundamentais da interface do Compose necessários para interagir com o dispositivo, incluindo layout, desenho e entrada. |
concurrent | Remova as tarefas da linha de execução principal com corrotinas e aproveite o ListableFuture. |
constraintlayout | Defina a posição e o tamanho dos widgets de maneira flexível com posicionamento relativo. |
contentpager | Carregue e faça a paginação dos dados do ContentProvider em uma linha de execução em segundo plano. |
coordinatorlayout | Posicione widgets de aplicativos de nível superior, como AppBarLayout e FloatingActionButton. |
core | Tenha como objetivo os recursos e as APIs mais recentes da plataforma sem deixar de oferecer suporte a dispositivos mais antigos. |
core.uwb | Implemente a banda ultralarga (UWB) em dispositivos com suporte. |
credentials | Essa biblioteca oferece acesso unificado às credenciais de um usuário. Isso pode incluir senhas, senhas de acesso e credenciais federadas. A biblioteca deve ser usada para proporcionar experiências de login integradas e seguras. |
cursoradapter | Exponha dados do cursor para um widget ListView. |
customview | Implemente visualizações personalizadas. |
datastore | Armazene dados de forma assíncrona, consistente e transacional, superando algumas das desvantagens de SharedPreferences. |
documentfile | Veja um documento de arquivo. |
draganddrop | Aceite dados arrastados de outro app ou dentro do mesmo aplicativo para mostrar uma ação de arrastar e soltar consistente. |
drawerlayout | Implemente um widget de gaveta do Material Design. |
dynamicanimation | Crie animações suaves com uma API de animação baseada em física. |
emoji | Mostre emojis em dispositivos atuais e mais antigos. |
emoji2 | Mostre emojis em dispositivos atuais e mais antigos. |
enterprise | Crie aplicativos empresariais. |
exifinterface | Leia e grave tags EXIF do arquivo de imagem. |
games | Use o SDK para jogos do Android de maneira nativa no seu app para realizar tarefas complexas de jogos, como estabelecer o ritmo dos frames. |
glance | Crie layouts para superfícies remotas usando uma API no estilo Jetpack Compose. |
graphics | Use recursos gráficos em várias versões da Plataforma Android. |
gridlayout | Implemente um layout de grade. |
health | Crie aplicativos de saúde de alta performance de maneira independente da plataforma. |
health.connect | Permite que os desenvolvedores leiam ou gravem registros de saúde e condicionamento físico do usuário. |
heifwriter | Codifique uma imagem ou coleção de imagens no formato HEIF usando os codecs disponíveis no dispositivo Android. |
input | Reduza a latência das interações de entrada prevendo futuros MotionEvents. |
interpolator | Use interpoladores de animação em plataformas mais antigas. |
javascriptengine | Permite que seu app Android avalie o JavaScript. |
jetifier | Uma ferramenta autônoma que migra as dependências de uma biblioteca na Biblioteca de Suporte descontinuada para dependências equivalentes do AndroidX. |
leanback | Use o Compose para TV em vez deste artefato. |
legacy | Esse artefato e as classes dele foram descontinuados. A partir do Android 8, as restrições de verificação de histórico tornam essa classe desnecessária. |
lint (link em inglês) | Verificações de lint para conferir o uso das APIs do Gradle |
loader | Carregue dados da sua interface que resistam a mudanças de configuração. |
localbroadcastmanager | Esse artefato e as classes dele foram descontinuados. Use LiveData ou streams reativos. |
media | Compartilhe conteúdo e controles de mídia com outros apps. Substituída por media2. |
media2 | Compartilhe conteúdo e controles de mídia com outros apps. |
media3 * | Bibliotecas de suporte para casos de uso de mídia. |
mediarouter | Ative a exibição e a reprodução de mídia em dispositivos receptores remotos usando uma interface de usuário comum. |
multidex | Implante aplicativos com vários arquivos dex em dispositivos anteriores ao Android 5. |
metrics | Acompanhe e gere relatórios para várias métricas de execução do aplicativo. |
palette | Extraia paletas de cores representativas das imagens. |
Uma biblioteca para adicionar recursos de visualização de PDF nos apps. | |
percentlayout | Esse artefato e as classes dele foram descontinuados. Use ConstraintLayout e layouts associados. |
preference | Crie telas de configurações interativas sem precisar interagir com o armazenamento do dispositivo ou gerenciar a interface. |
Mostre fotos, documentos e outros gráficos e imagens no seu app. | |
privacysandbox.activity (link em inglês) | TODO |
privacysandbox.ads | Essa biblioteca permite a integração com as APIs que preservam a privacidade e que fazem parte do Sandbox de privacidade do Android. |
privacysandbox.plugins (link em inglês) | Plug-in do Gradle para a Biblioteca de SDKs do Sandbox de privacidade do Android |
privacysandbox.sdkruntime | Essa biblioteca oferece componentes para consumidores que reconhecem o SdkRuntime. |
privacysandbox.tools | Uma biblioteca para usar a funcionalidade Sandbox de privacidade no Android. |
privacysandbox.ui (link em inglês) | TODO |
profileinstaller | Permite que as bibliotecas sejam preenchidas automaticamente antes que os rastros de compilação sejam lidos pelo ART. |
recommendation | Promova conteúdo na tela inicial do Android TV Launcher. |
recyclerview | Mostre grandes conjuntos de dados na interface enquanto minimiza o uso de memória. |
remotecallback | Crie um wrapper que facilita o fornecimento de uma PendingIntent pelos desenvolvedores. |
resourceinspection | Exiba os atributos das visualizações personalizadas no Live Layout Inspector do Android Studio. |
savedstate | Programe componentes conectáveis que salvam o estado da interface quando um processo é encerrado e o restauram quando é reiniciado. |
security | Gerencie chaves com segurança e criptografe arquivos e preferências compartilhadas. |
sharetarget | Forneça compatibilidade com versões anteriores para usar atalhos como destinos de compartilhamento direto. |
slice | Mostre elementos da interface com modelos de fora do app. |
slidingpanelayout | Implemente um padrão de interface de painel deslizante. |
startup | Implemente uma maneira simples e eficaz de iniciar componentes na inicialização do app. |
sqlite | Trabalhe com bancos de dados SQLite locais. Se possível, use o Room. |
swiperefreshlayout | Implemente o padrão de interface de deslizar para atualizar. |
test.uiautomator | Framework para testes funcionais da interface entre apps. |
textclassifier | Identifica conversas, links, seleções e outras construções semelhantes no texto. |
tracing | Crie eventos de rastros no buffer de rastreamento do sistema. |
transition | Anime o movimento na interface com layouts iniciais e finais. |
tv | Fornece aos desenvolvedores funcionalidades do Compose e do Material Design para criar aplicativos direcionados à TV. |
tvprovider | Forneça canais do Android TV. |
vectordrawable | Renderize gráficos vetoriais. |
versionedparcelable | Fornece um formato de serialização binário estável e compacto que pode ser transmitido entre processos ou persistido com segurança. |
viewpager | Mostre visualizações ou fragmentos em um formato deslizante. Se possível, use o viewpager2. |
viewpager2 | Mostre visualizações ou fragmentos em um formato deslizante. |
wear | Crie aplicativos para smartwatches Wear OS by Google. |
wear.compose | Crie apps do Jetpack Compose para dispositivos wearable oferecendo funcionalidade com suporte a dispositivos, tamanhos, formas e gestos de navegação específicos. |
wear.protolayout | Essa biblioteca permite definir um conjunto de layouts de interface e expressões que não são da interface para renderização/avaliação em plataformas remotas. |
wear.tiles | Crie aplicativos para smartwatches Wear OS by Google. |
wear.watchface | Crie aplicativos para smartwatches Wear OS by Google. |
webkit | Trabalhe com APIs WebView modernas no Android 5 e versões mais recentes. |
window | Oferece suporte a diferentes formatos, como dispositivos dobráveis. |
window.extensions.core | As APIs Core para extensões da biblioteca Window Manager |
Novidades
- Compose, agosto de 2023
- O Jetpack Compose 1.5.0 está estável e traz grandes melhorias de desempenho, incluindo uma refatoração de modificadores de alto nível, como "Clickable", que pode melhorar o tempo de composição em 80%. Agosto de 2023, o Compose também oferece uma melhoria de até 70% na alocação de memória, principalmente na pilha de gráficos, o que reduz o consumo de memória do Compose em dispositivos.
- Wear Compose e Tiles 1.2
- Tanto o Wear Compose quanto os blocos do Wear estão na versão estável para melhorar ainda mais a experiência dos desenvolvedores de wearOS. Ambos são complementares, em que o Wear Compose pode ser usado para criar telas de apps complexas em dispositivos Wear, e os blocos do Wear podem ser usados para criar os blocos de apps. A nova versão do Wear Compose contém novas funcionalidades, como "Itens Expansíveis" e "Deslize para mostrar". A versão dos Blocos do Wear agora também oferece suporte a animação de widgets e vinculação de dados da plataforma (como fonte de dados de saúde).
- Window 1.1
- 1.1 estabiliza as APIs de incorporação de atividades, permitindo que apps como WhatsApp, eBay e Temu ofereçam layouts de tela grande. A API é aprimorada com recursos, porque permite que os desenvolvedores modifiquem o comportamento de tela dividida, verifiquem (e alterem) o estado de divisão durante a execução, implementem divisões horizontais e iniciem um modal em tela cheia.
- Notas da versão
- Para mais informações, acesse as notas da versão.
Por que usar o Android Jetpack?
Siga as práticas recomendadas
Criadas com práticas de design modernas, as bibliotecas do Android Jetpack reduzem as falhas e os vazamentos de memória graças à compatibilidade com versões anteriores incorporada.
Elimine os códigos boilerplate
O Android Jetpack gerencia atividades tediosas, como tarefas em segundo plano, navegação e gerenciamento do ciclo de vida, para que você possa se concentrar naquilo que torna seu app incrível.
Reduza a fragmentação
Reduza a complexidade com bibliotecas que funcionam de modo consistente em diferentes dispositivos e versões do Android.