Drjacky/claude-android-ninja

Habilidade de Agente para desenvolvimento Android com Kotlin e Jetpack Compose, abrangendo arquitetura modular, Navigation3, convenções Gradle, gerenciamento de dependências e práticas recomendadas de teste.

O que é claude-android-ninja?

Esta habilidade de agente (Drjacky/claude-android-ninja) especializa-se no desenvolvimento de aplicativos Android utilizando Kotlin e Jetpack Compose. Ela oferece suporte a uma ampla gama de tópicos, incluindo arquitetura modular (com camadas de Domínio, Dados, UI e Comuns), MVVM, injeção de dependência com Hilt, Room 3, DataStore, Paging 3 e projetos multi-módulo. A habilidade fornece referências detalhadas para padrões como Compose Navigation3, temas Material 3, otimização de desempenho, segurança, testes e muito mais. Projetada para plataformas como Claude Code, Cursor e Codex, ela opera a partir de um arquivo SKILL.md que contém uma árvore de decisão de fluxo de trabalho para orientar o agente em tarefas comuns, como criar novos projetos, configurar Gradle, adicionar dependências, construir telas de UI e lidar com estados. A habilidade também inclui templates de arquivos de configuração (settings.gradle.kts.template, libs.versions.toml.template, proguard-rules.pro.template) e plugins de convenção Gradle, que são copiados para o projeto do usuário durante a configuração inicial, garantindo consistência e seguindo as melhores práticas da comunidade Android.

Funciona com✓Claude Code~Codex CLI~Cursor
Part ofMobile
npx skills add Drjacky/claude-android-ninja

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Desenvolvimento Android com Kotlin e Compose

Use ao construir aplicativos Android com Kotlin, Jetpack Compose, MVVM, Hilt, Room 3, DataStore, Paging 3 ou projetos multi-módulo. Dispara em solicitações para criar projetos Android, telas, ViewModels, repositórios, módulos de funcionalidade, ou perguntas sobre padrões de arquitetura Android.

Referência Rápida

TarefaArquivo de Referência
Estrutura do projeto e módulosmodularization.md
Camadas de arquitetura (Domínio, Dados, UI, Comum, ...)architecture.md
Padrões Compose, Motion Material, animação, modificadores, estabilidadecompose-patterns.md
Acessibilidade, TalkBack, rótulos, regiões ativas, verificações a11y do Espressoandroid-accessibility.md
Notificações, serviços em primeiro plano, mídia/áudio, PiP, compartilhamentoandroid-notifications.md
Sincronização de dados e padrões offline-firstandroid-data-sync.md
Temas Material 3, tokens de espaçamento, ajuste de categoria, cores dinâmicasandroid-theming.md
Navigation3, navegação adaptativa, níveis de qualidade para telas grandesandroid-navigation.md
Melhores práticas Kotlin, interoperabilidade com ciclo de vida de Viewkotlin-patterns.md
Melhores práticas de Corrotinascoroutines-patterns.md
Gradle, sabores de produto, BuildConfig, desempenho de buildgradle-setup.md
Abordagem de testetesting.md
Internacionalização e localizaçãoandroid-i18n.md
Ícones, especificações do launcher adaptativo, desenho personalizadoandroid-graphics.md
Permissões em tempo de execuçãoandroid-permissions.md
Padrões de delegação Kotlinkotlin-delegation.md
Relatório de falhascrashlytics.md
Diretrizes do StrictModeandroid-strictmode.md
Dependências multi-módulodependencies.md
Qualidade de código (Detekt)code-quality.md
Cobertura de código (JaCoCo)android-code-coverage.md
Segurança, Play Integrity (Standard/Classic), decodificação no servidor, requestHash/nonce, política em níveis, remediação; Gerenciador de Credenciais; verificações locais de root como complementoandroid-security.md
Padrões de designdesign-patterns.md
Desempenho, Play Vitals, relatórios opcionais em CI (API Play Developer Reporting), inicialização, recomposição, travamentos, bateriaandroid-performance.md
Depuração, níveis de Logcat, ANR, padrões de erro do Gradle, R8, vazamentos de memóriaandroid-debugging.md
Guias de migração (XML, RxJava, Navigation, Compose, Room 2→3)migration.md

Árvore de Decisão do Fluxo de Trabalho

Criando um novo projeto? → Comece com assets/settings.gradle.kts.template para configurações e includes de módulo → Comece com assets/libs.versions.toml.template para o catálogo de versões → Copie todos os arquivos de assets/convention/ para build-logic/convention/src/main/kotlin/ → Crie build-logic/settings.gradle.kts (veja assets/convention/QUICK_REFERENCE.md) → Adicione includeBuild("build-logic") ao settings.gradle.kts raiz → Adicione entradas de plugin ao gradle/libs.versions.toml (veja assets/convention/QUICK_REFERENCE.md) → Copie assets/proguard-rules.pro.template para app/proguard-rules.pro → Leia modularization.md para estrutura e tipos de módulo → Use gradle-setup.md para arquivos de build e lógica de build

Configurando arquivos de build Gradle? → Use gradle-setup.md para padrões de build.gradle.kts de módulo → Use gradle-setup.md → "Desempenho de Build" para fluxo de otimização, diagnósticos e solução de gargalos → Copie plugins de convenção de assets/convention/ para build-logic/ no seu projeto → Veja assets/convention/QUICK_REFERENCE.md para instruções de configuração e exemplos → Copie assets/proguard-rules.pro.template para app/proguard-rules.pro para regras do R8

Configurando qualidade de código / Detekt? → Use code-quality.md para configuração do plugin de convenção Detekt → Comece com assets/detekt.yml.template para regras e habilite regras do Compose

Adicionando ou atualizando dependências? → Siga dependencies.md → Atualize assets/libs.versions.toml.template se a dependência estiver faltando

Adicionando um novo módulo de funcionalidade? → Siga a nomenclatura de módulos em modularization.md → Implemente a Apresentação no módulo de funcionalidade → Siga o fluxo de dependências: Funcionalidade → Core/Domínio → Core/Dados

Construindo telas/componentes de UI? → Leia compose-patterns.md para arquitetura de tela, estado, componentes, modificadores → Use compose-patterns.md -> Gerenciamento de Estado -> "UX de carregamento e atualização" para layout estável durante carregamentos e atualizações (evite spinners de tela cheia que limpam o contexto) → Use android-theming.md para cores, tipografia e formas do Material 3 → Sempre alinhe o código Kotlin com kotlin-patterns.md → Crie Tela + ViewModel + UiState no módulo de funcionalidade → Use componentes compartilhados de core/ui quando possível

Lidando com Estado e Eventos? → Use StateFlow para estado; Channel + receiveAsFlow() para comandos estritos de UI de uso único; SharedFlow para eventos multicast ou com replay (veja coroutines-patterns.md) → Sobreviva à morte do processo com SavedStateHandle (veja compose-patterns.md)

Configurando o tema do app (cores, tipografia, formas)? → Siga android-theming.md para temas do Material 3 e cores dinâmicas → Use funções de cores semânticas de MaterialTheme.colorScheme (nunca cores fixas); pareie cada preenchimento com seu parceiro on* - veja Regras de Pareamento de Cores → Declare o conjunto completo de cores M3 em Color.kt (containers de superfície, dim/bright, *Fixed/*FixedDim) para que a cor dinâmica e variantes de contraste permaneçam consistentes - veja Referência Completa de Funções de Cor e Hierarquia de Containers de Superfície → Expresse profundidade primeiro através do tom do container, use sombras apenas para componentes que flutuam sobre conteúdo arbitrário - veja Elevação Tonal vs Sombras → Use outline para bordas interativas/foco, outlineVariant para divisores decorativos - veja outline vs outlineVariant → Suporte temas claro/escuro com alternância de preferência do usuário → Habilite cor dinâmica (Material You) para API 31+, harmonize cores de marca/extendidas contra primary - veja Harmonização de Cores de Marca → Honre o controle deslizante de contraste do sistema no Android 14+ (API 34) fornecendo variantes de esquema de Contraste Médio/Alto e lendo UiModeManager.getContrast() - veja Preferência de Contraste do Usuário → Para substituições de paleta específicas de região (escopos destrutivos, barras de ferramentas sobre mídia), use um MaterialTheme aninhado com colorScheme.copy(...) - veja Temas com Escopo → Escolha Card / OutlinedCard / ElevatedCard pela separação de superfície, não pela importância, e sobrescreva formas no nível do token - veja Variantes de Card e Padrões de Forma de Componente

Escrevendo qualquer código Kotlin? → Sempre siga kotlin-patterns.md → Garanta que as práticas estejam alinhadas com architecture.md, modularization.md e compose-patterns.md

Configurando as camadas de dados/domínio? → Leia architecture.md → Hilt @Binds, escopos e antipadrões de DI: architecture.md -> Camada de Domínio -> "Configuração de Injeção de Dependência" → Crie interfaces de Repositório em core/domain → Crie implementações em core/data usando Room 3/Retrofit/DataStore → Use DataStore para pares chave-valor simples, Room 3 para dados relacionais complexos (DAOs suspend / Flow, SQLiteDriver)

Implementando Listas e Rolagem? → Use LazyColumn/LazyRow com chaves estáveis e contentType (veja compose-patterns.md) → Para grandes conjuntos de dados, use Paging 3 (veja compose-patterns.md -> "Paging 3")

Lidando com Navegação? → Use Navigation3 para navegação adaptativa (veja android-navigation.md) → Evite antipadrões de navegação (veja android-navigation.md -> "Antipadrões de Navegação")

Otimizando Desempenho? → Siga a Lista de Verificação de Desempenho em android-performance.md → Se o usuário solicitar vitals do Play Console automatizados (CI/Slack, sem interface do Play Console), use android-performance.md → Opcional: observabilidade de Play Vitals (API Play Developer Reporting) → Use BasicTextField2 para entrada de texto de alta frequência

Testando? → Leia testing.md para filosofia e padrões de teste → Use Turbine para testar emissões de Flow (veja testing.md -> "Testando Emissões de Flow com Turbine") → Crie Reposit

Habilidades Relacionadas