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.
- 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).
- Código comum com
- 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).
- Gerenciamento de estado com
- 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.
- 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).
- 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).
- 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.
- Desenvolvimento de um app com:
- 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. 🚀