Skip to content

Instantly share code, notes, and snippets.

@wwwjsw
Created August 19, 2025 20:11
Show Gist options
  • Select an option

  • Save wwwjsw/bcbca11a5a8dfcf9931411df7fbbc92a to your computer and use it in GitHub Desktop.

Select an option

Save wwwjsw/bcbca11a5a8dfcf9931411df7fbbc92a to your computer and use it in GitHub Desktop.

Ementa: Aprendizado de Kotlin Multiplatform (KMP) e Compose Multiplatform (CMP)

Objetivo:
Capacitar desenvolvedores a criar aplicações nativas multiplataforma (Android, iOS, Desktop e Web) usando Kotlin Multiplatform para lógica compartilhada e Compose Multiplatform para UIs declarativas.


Módulo 1: Fundamentos do Kotlin Multiplatform (KMP)

  • Introdução ao KMP:
    • Visão geral, vantagens e casos de uso.
    • Diferenças entre KMP e outras soluções multiplataforma (Flutter, React Native).
  • Configuração do Ambiente:
    • Setup com Android Studio/Kotlin Plugin.
    • Estrutura de um projeto KMP (módulos common, android, iOS, desktop).
  • Lógica Compartilhada:
    • Código comum com expect/actual.
    • Gerenciamento de dependências (Gradle).
    • Acesso a APIs nativas (platform-specific).

Módulo 2: Compose Multiplatform (CMP) para UI

  • Introdução ao Jetpack Compose/Compose Multiplatform:
    • Conceitos de UI declarativa.
    • Compatibilidade com Android, iOS, Desktop e Web.
  • Componentes e Layouts:
    • Building blocks (Column, Row, Box, Modifier).
    • Material Design e temas multiplataforma.
  • Estado e Navegação:
    • Gerenciamento de estado com mutableStateOf.
    • Navegação entre telas (bibliotecas como Voyager ou Decompose).

Módulo 3: Integração com Plataformas Nativas

  • Android:
    • Uso direto do Compose para Android.
  • iOS:
    • Geração de frameworks Swift via KMP.
    • Integração com UIViewController e SwiftUI.
  • Desktop (JVM):
    • Desenvolvimento para Windows, Linux e macOS.
    • Acesso a recursos do sistema (arquivos, hardware).
  • Web (Experimental):
    • Compose para Web com DOM e Canvas.

Módulo 4: Dados e Concorrência

  • Armazenamento:
    • SQLDelight para banco de dados multiplataforma.
    • Preferências compartilhadas (DataStore multiplataforma).
  • Redes e APIs:
    • Ktor Client para requisições HTTP.
    • Serialização com Kotlinx Serialization (JSON/Protobuf).
  • Concorrência:
    • Coroutines em multiplataforma.
    • Threading em iOS (Main Dispatch Queue).

Módulo 5: Ferramentas e Boas Práticas

  • Debugging e Testes:
    • Testes unitários no módulo comum.
    • Debug multiplataforma (Android Studio, Xcode).
  • CI/CD e Publicação:
    • Builds para App Store, Play Store e distribuição desktop.
    • GitHub Actions ou Gradle para automação.
  • Performance:
    • Otimização de startup e redução de binários.
    • Analisadores de memory leaks (KMP/Native).

Módulo 6: Projeto Prático

  • Aplicação Completa:
    • Desenvolvimento de um app com:
      • Lógica de negócio em KMP.
      • UI unificada com Compose Multiplatform.
      • Integração com APIs nativas (câmera, GPS, notificações).
    • Publicação em pelo menos 2 plataformas.

Recursos Recomendados:

  • Documentação Oficial:
  • Cursos:
    • "Kotlin Multiplatform by Example" (JetBrains).
    • "Compose Multiplatform para iOS e Desktop" (YouTube/Pluralsight).
  • Comunidade:
    • Slack/Fórum do Kotlin.
    • Repositórios GitHub (KMP Samples, Compose Multiplatform).

Duração Sugerida: 6-8 semanas (com foco em prática e projetos incrementais).

Pré-requisitos:

  • Conhecimento sólido em Kotlin.
  • Experiência prévia com Android Jetpack Compose (recomendado).
  • Noções de Swift/Objective-C (para iOS) e JVM (para desktop).

Esta ementa combina fundamentos técnicos com aplicação prática, preparando o dev para criar aplicações robustas em múltiplas plataformas com produtividade elevada. 🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment