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 Também na biblioteca
Internacionalização (i18n) em PHP: biblioteca gettext e abordagens modernas
Validação de dados em Go: bibliotecas, exemplos e melhores práticas
remeda para TypeScript: guia completo com exemplos práticos
Biblioteca Padrão Swift: visão geral completa para iOS/macOS
parking_lot Rust: guia completo com exemplos práticos