Communitygithub.com

aj-geddes/android-kotlin-development

Desenvolva aplicativos Android nativos com Kotlin. Abrange MVVM com Jetpack, Compose para UI moderna, Retrofit para chamadas de API, Room para armazenamento local e arquitetura de navegação.

O que é android-kotlin-development?

Esta skill capacita agentes de IA (como Claude Code, Cursor ou Codex) a desenvolver aplicativos Android nativos utilizando Kotlin. Ela é útil por fornecer um conjunto completo de práticas modernas de desenvolvimento Android, incluindo a arquitetura MVVM com a suíte Android Jetpack (ViewModel, LiveData, etc.), a interface de usuário declarativa com Jetpack Compose, chamadas de rede com Retrofit, armazenamento local com Room e navegação arquitetural com Navigation Component. A skill segue as melhores práticas recomendadas pelo Google e oferece suporte a plataformas de agentes de IA que interpretam instruções em formato markdown. Como funciona: o agente utiliza as diretrizes e exemplos contidos no SKILL.md para gerar código Kotlin, estruturar projetos Android, configurar dependências e implementar funcionalidades completas, seguindo o padrão MVVM e as bibliotecas modernas do ecossistema Android.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/aj-geddes/useful-ai-prompts/tree/main/skills/android-kotlin-development

Perguntar na sua IA favorita

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

Documentação

O que android-kotlin-development faz?

Desenvolva aplicativos Android nativos com Kotlin. Abrange MVVM com Jetpack, Compose para UI moderna, Retrofit para chamadas de API, Room para armazenamento local e arquitetura de navegação.

Visão Geral

Esta skill orienta o desenvolvimento de aplicativos Android nativos usando a linguagem Kotlin, seguindo as melhores práticas e bibliotecas oficiais do ecossistema Android. Ela cobre a arquitetura MVVM com Android Jetpack, interface de usuário moderna com Jetpack Compose, comunicação com APIs via Retrofit, persistência de dados local com Room e navegação estruturada com Navigation Component.

Pré-requisitos

  • Conhecimento básico de Kotlin
  • Android Studio instalado
  • SDK do Android configurado

Estrutura do Projeto

app/
├── src/
│   ├── main/
│   │   ├── java/com/example/app/
│   │   │   ├── data/          # Repositórios, DAOs, modelos de dados
│   │   │   ├── ui/            # Telas, ViewModels, componentes Compose
│   │   │   ├── navigation/    # Gráfico de navegação
│   │   │   ├── network/       # Interfaces Retrofit
│   │   │   └── di/            # Injeção de dependência (Hilt)
│   │   └── res/               # Recursos (layouts, strings, etc.)
│   └── test/                  # Testes unitários

Configuração Inicial

Adicione as dependências no arquivo build.gradle.kts do módulo app:

dependencies {
    // Jetpack Compose
    implementation("androidx.compose.ui:ui:1.5.0")
    implementation("androidx.compose.material3:material3:1.1.0")
    
    // ViewModel e LiveData
    implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.6.1")
    implementation("androidx.lifecycle:lifecycle-livedata-ktx:2.6.1")
    
    // Retrofit
    implementation("com.squareup.retrofit2:retrofit:2.9.0")
    implementation("com.squareup.retrofit2:converter-gson:2.9.0")
    
    // Room
    implementation("androidx.room:room-runtime:2.5.0")
    kapt("androidx.room:room-compiler:2.5.0")
    
    // Navigation
    implementation("androidx.navigation:navigation-compose:2.7.0")
}

Padrão MVVM

A arquitetura MVVM é implementada com:

  1. Model: classes de dados e repositórios
  2. ViewModel: estado e lógica de negócio
  3. View: telas Compose observando o estado

Exemplo de ViewModel

class MainViewModel : ViewModel() {
    private val _state = MutableStateFlow(MainState())
    val state: StateFlow<MainState> = _state.asStateFlow()
    
    fun loadData() {
        viewModelScope.launch {
            _state.update { it.copy(isLoading = true) }
            // chamada de API via Retrofit
            val result = repository.getData()
            _state.update { it.copy(data = result, isLoading = false) }
        }
    }
}

Exemplo de Tela Compose

@Composable
fun MainScreen(viewModel: MainViewModel = viewModel()) {
    val state by viewModel.state.collectAsState()
    
    when {
        state.isLoading -> CircularProgressIndicator()
        state.error != null -> Text("Erro: ${state.error}")
        else -> LazyColumn {
            items(state.data) { item ->
                Text(item.name)
            }
        }
    }
}

Chamadas de API com Retrofit

Defina uma interface para a API:

interface ApiService {
    @GET("users")
    suspend fun getUsers(): List<User>
}

Configure o cliente Retrofit:

val retrofit = Retrofit.Builder()
    .baseUrl("https://api.exemplo.com/")
    .addConverterFactory(GsonConverterFactory.create())
    .build()

Armazenamento Local com Room

Defina uma entidade e DAO:

@Entity
data class User(
    @PrimaryKey val id: Int,
    val name: String
)

@Dao
interface UserDao {
    @Query("SELECT * FROM user")
    suspend fun getAll(): List<User>
    
    @Insert
    suspend fun insert(user: User)
}

Navegação

Configure o gráfico de navegação:

NavHost(navController = navController, startDestination = "home") {
    composable("home") { HomeScreen(onNavigateToDetail = { id ->
        navController.navigate("detail/$id")
    })}
    composable("detail/{id}") { backStackEntry ->
        DetailScreen(id = backStackEntry.arguments?.getString("id") ?: "")
    }
}

Testes

Utilize JUnit, Mockito e kotlinx-coroutines-test para testar ViewModels e repositórios.

Recursos Adicionais

Individual skills in this repo

This repo contains 11 individual skills — each has its own dedicated page.

aj-geddes/ansible-automation

Infrastructure automation and configuration management using Ansible playbooks, roles, and inventory. Use for deploying applications, patching, and managing servers.

aj-geddes/architecture-diagrams

Create system architecture diagrams using Mermaid, PlantUML, C4 model, flowcharts, and sequence diagrams. Use when documenting architecture, system design, data flows, or technical workflows.

aj-geddes/code-review-analysis

Perform comprehensive code reviews with best practices, security checks, and constructive feedback. Use when reviewing pull requests, analyzing code quality, checking for security vulnerabilities, or providing code improvement suggestions.

aj-geddes/flask-api-development

Develop lightweight Flask APIs with routing, blueprints, database integration, authentication, and request/response handling. Use when building RESTful APIs, microservices, or lightweight web services with Flask.

aj-geddes/ios-swift-development

Develop native iOS apps with Swift. Covers MVVM architecture, SwiftUI, URLSession for networking, Combine for reactive programming, and Core Data persistence.

aj-geddes/jenkins-pipeline

Build Jenkins declarative and scripted pipelines with stages, agents, parameters, and plugins. Implement multi-branch pipelines and deployment automation.

aj-geddes/markdown-documentation

Master markdown formatting, GitHub Flavored Markdown, README files, and documentation formatting. Use when writing markdown docs, READMEs, or formatting documentation.

aj-geddes/nginx-configuration

Configure Nginx web server for high-performance reverse proxy, load balancing, SSL/TLS, caching, and API gateway functionality.

aj-geddes/nodejs-express-server

Build production-ready Express.js servers with middleware, authentication, routing, and database integration. Use when creating REST APIs, managing requests/responses, implementing middleware chains, and handling server logic.

aj-geddes/rest-api-design

Design RESTful APIs following best practices for resource modeling, HTTP methods, status codes, versioning, and documentation. Use when creating new APIs, designing endpoints, or improving existing API architecture.

aj-geddes/wireframe-prototyping

Create wireframes and interactive prototypes to visualize user interfaces and gather feedback early. Use tools and techniques to communicate design ideas before development.

Habilidades Relacionadas