Aprendendo Kotlin de K a N
### **Módulo 1: Introdução ao Kotlin e Fundamentos de Programação** (4h)
- **Introdução à Linguagem Kotlin**
- História e características principais.
- Comparação com outras linguagens (Java, Swift).
- **Primeiros Passos com Kotlin**
- Configuração do ambiente de desenvolvimento (IDE IntelliJ, Android Studio).
- Estrutura básica de um programa Kotlin.
- **Conceitos de Programação Estruturada**
- Variáveis e tipos de dados.
- Operadores e expressões.
- Controle de fluxo: condicionais (`if`, `when`) e loops (`for`, `while`).
### **Módulo 2: Estruturas de Dados e Funções em Kotlin** (4h)
- **Funções e Modularização**
- Declaração de funções e parâmetros.
- Retorno de valores e funções de ordem superior.
- Lambda e funções anônimas.
- **Coleções em Kotlin**
- Listas, conjuntos e mapas.
- Manipulação de coleções e operações funcionais.
- Funções de extensão para coleções.
### **Módulo 3: Programação Orientada a Objetos em Kotlin** (4h)
- **Fundamentos da Orientação a Objetos**
- Classes e objetos.
- Propriedades, métodos e inicializadores.
- Encapsulamento, herança e polimorfismo.
- **Pilares da Orientação a Objetos**
- Classes abstratas e interfaces.
- Sobrescrita de métodos e sobrecarga.
- Data classes e classes seladas.
### **Módulo 4: Recursos Avançados e Boas Práticas** (4h)
- **Recursos Avançados do Kotlin**
- Null Safety e uso do operador Elvis.
- Trabalhando com corrotinas e programação assíncrona.
- Introdução à programação funcional em Kotlin.
- **Boas Práticas e Padrões de Projeto**
- Imutabilidade e uso seguro de coleções.
- Aplicação de padrões de projeto (Singleton, Factory).
- Estruturação de código e Clean Code em Kotlin.
