Accompanist para Kotlin: guia completo com exemplos práticos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Accompanist para Kotlin: guia completo com exemplos práticos

1. O que é e para que serve

Accompanist é uma coleção de bibliotecas complementares (extensions) para Jetpack Compose, desenvolvida pela equipe do Google. Ela oferece soluções prontas para tarefas que ainda não fazem parte da API estável do Compose ou que exigem uma implementação complexa "do zero". A biblioteca resolve problemas que todo desenvolvedor Compose enfrenta: manipulação de gestos, barras do sistema, animações, WebViews, adaptação para diferentes telas e muito mais.

Para que serve? Primeiro, o Accompanist economiza tempo. Em vez de escrever seu próprio manipulador de gestos ou modificador personalizado para barras do sistema, você usa um componente pronto e testado. Segundo, a biblioteca segue as recomendações oficiais do Google e frequentemente serve como protótipo para futuras APIs estáveis do Compose. Por exemplo, o HorizontalPager do Accompanist foi posteriormente adicionado ao Compose Foundation como HorizontalPager.

No momento da escrita deste artigo, o Accompanist inclui módulos como: systemuicontroller (controle da barra de status e navegação), permissions (solicitação de permissões em tempo de execução), webview (incorporação de WebView), pager (rolagem horizontal/vertical de páginas), swiperefresh (gesto pull-to-refresh), placeholder (carregamento esqueleto), adaptive (layouts adaptáveis), navigation-animation (animações de transição) e outros.

2. Instalação

Accompanist é uma biblioteca para Gradle (Android/Kotlin Multiplatform). A instalação é feita adicionando dependências ao arquivo build.gradle.kts (ou build.gradle) do seu módulo. Comandos como pip, npm, cargo ou go get não são usados, pois não se trata de Python, JavaScript, Rust ou Go.

Comando exato para adicionar um módulo específico (por exemplo, systemuicontroller):

// build.gradle.kts (Module)
dependencies {
    implementation("com.google.accompanist:accompanist-systemuicontroller:0.34.0")
    // Para outros módulos:
    // implementation("com.google.accompanist:accompanist-permissions:0.34.0")
    // implementation("com.google.accompanist:accompanist-pager:0.34.0")
    // implementation("com.google.accompanist:accompanist-swiperefresh:0.34.0")
    // implementation("com.google.accompanist:accompanist-webview:0.34.0")
    // implementation("com.google.accompanist:accompanist-placeholder:0.34.0")
}

Importante: verifique a versão mais recente no GitHub Releases. A versão 0.34.0 é a última estável no momento da escrita. Certifique-se de que sua versão do Kotlin e Compose seja compatível com a versão escolhida do Accompanist.

3. Início rápido — exemplo mínimo funcional

Vamos criar uma tela que altera a cor da barra de status ao pressionar um botão. Para isso, usaremos o módulo systemuicontroller.

import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
import com.google.accompanist.systemuicontroller.rememberSystemUiController

@Composable
fun QuickStartExample() {
    val systemUiController = rememberSystemUiController()
    var isDark by remember { mutableStateOf(false) }

    // Define a cor da barra de status com base no estado
    LaunchedEffect(isDark) {
        if (isDark) {
            systemUiController.setStatusBarColor                    

Recommendations