Programa do Curso
Introdução
Semana 1: Conceitos Avançados de Swift, Kotlin e JavaScript
- Swift (iOS)
- Funções avançadas: Closures, captura de valores, funções de ordem superior.
- Programação orientada a protocolos e genéricos.
- Gestão de memória com ARC (Automatic Reference Counting).
- Kotlin (Android)
- Funções de extensão e Biblioteca Padrão do Kotlin.
- Coroutines para programação assíncrona.
- Classes seladas, enums e tratamento avançado de erros.
- JavaScript (React Native)
- Recursos avançados ES6+: Destructuring, async/await, promises.
- Conceitos de programação funcional em JavaScript.
- Trabalhando com bibliotecas de terceiros no React Native.
Semana 2: Arquitetura e Padrões de Design para Aplicativos Móveis
- MVVM (Model-View-ViewModel) para iOS e Android
- Compreensão da arquitetura MVVM para iOS (Swift) e Android (Kotlin).
- Implementação de ViewModels e observação de dados com LiveData (Android) e Combine (iOS).
- Programação reativa com RxSwift e RxKotlin.
- Arquitetura Baseada em Componentes no React Native
- Compreensão dos ciclos de vida dos componentes e hooks.
- Melhores práticas para gerenciar estado e props em escala.
- Uso da API do Contexto do React para gerenciamento global de estado.
Semana 3: Conceitos Avançados de Rede
- Rede em iOS (Swift)
- Trabalhando com URLSession para solicitações de rede personalizadas.
- Chamadas avançadas de API REST e tratamento de erros.
- Trabalhando com Codable e análise de JSON.
- Melhores práticas para comunicação segura de APIs (pinning SSL, OAuth).
- Rede em Android (Kotlin)
- Retrofit para fazer chamadas de API e tratar respostas.
- Tratamento avançado de erros de API e mecanismos de retry.
- Usando Gson ou Moshi para análise de JSON.
- Comunicação segura usando HTTPS e autenticação OAuth.
Semana 4: Rede no React Native
- Integração de API com Axios e Fetch
- Integração avançada de API com Axios e Fetch.
- Estratégias de tratamento de erros e retries em solicitações de rede.
- Trabalhando com autenticação (JWT, OAuth).
- WebSockets e Comunicação em Tempo Real
- Introdução aos WebSockets no React Native.
- Criando recursos de chat ou notificações em tempo real com conexões WebSocket.
- Gestão de conexões persistentes e atualizações de dados.
Semana 5: Técnicas Avançadas de Persistência de Dados
- Core Data e SQLite (iOS)
- Relacionamentos avançados, buscas e consultas no Core Data.
- Uso direto do SQLite para aplicativos iOS e gestão de conexões ao banco de dados.
- Tratamento eficiente de dados e otimização.
- Persistência Room e SQLite (Android)
- Relacionamentos e consultas avançados no banco de dados Room.
- Gestão de grandes conjuntos de dados e otimização do desempenho do banco de dados.
- Uso do ProGuard para proteger as estruturas do banco de dados.
- Firebase para Armazenamento em Nuvem (iOS e Android)
- Integração com Firebase para gerenciamento de banco de dados em tempo real.
- Melhores práticas para sincronizar dados locais e na nuvem.
Semana 6: Gerenciamento Avançado de Estado no React Native
- Redux para Gestão de Estado
- Conceitos avançados do Redux: Middlewares, Thunks e Sagas.
- Otimização do Redux para desempenho e escalabilidade.
- Recoil para Gestão de Estado
- Introdução ao Recoil: uma alternativa mais flexível ao Redux.
- Lidando com gerenciamento de estado em larga escala entre componentes.
- Atualizações eficientes de estado e gerenciamento atômico de estado.
Semana 7: Animações Avançadas no iOS e Android
- iOS (Swift)
- Core Animation: Animando visualizações, camadas e transições.
- UIKit Dynamics: Criando animações baseadas em física.
- Transições personalizadas e animações entre controladores de visualização.
- Android (Kotlin)
- MotionLayout para criar animações complexas.
- TransitionManager e transições de elementos compartilhados.
- Animações de propriedade para escala, rotação e mudanças de alfa em visualizações.
Semana 8: Animações e UI/UX no React Native
- Animações do React Native
- Uso da API Animated e Reanimated para animações complexas.
- Implementação de gestos e interações usando o React Native Gesture Handler.
- Melhores práticas para animações com bom desempenho no React Native.
- Criação de Componentes UI Personalizados
- Criando componentes reutilizáveis e personalizáveis no React Native.
- Implementando designs responsivos com media queries e flexbox.
Semana 9: Integração de Módulos Nativos e Recursos do Dispositivo
- Acessando Recursos Nativos do Dispositivo
- Uso avançado da câmera, geolocalização, Bluetooth e sensores.
- Criando módulos nativos em Swift e Kotlin para integração com React Native.
- Integrando ARKit para realidade aumentada no iOS.
- Integrando CameraX e ARCore para realidade aumentada no Android.
- Ponte do React Native e Módulos Nativos
- Criando módulos nativos personalizados para integrar com funcionalidades específicas da plataforma.
- Criando pontes Java e Swift para aplicativos React Native.
- Melhores práticas para gerenciar código nativo em um ambiente multiplataforma.
Semana 10: Testes e Depuração de Aplicativos Avançados
- Testes no iOS (Swift)
- Escrita de testes unitários com XCTest e testes de interface do usuário para iOS.
- Uso do Xcode Instruments para perfilamento de desempenho e detecção de vazamentos de memória.
- Integração contínua e fluxos de teste com Jenkins e CircleCI.
- Testes no Android (Kotlin)
- Testes avançados JUnit e Espresso para aplicativos Android.
- Perfilamento de desempenho e identificação de gargalos usando o Android Profiler.
- Uso do Firebase Test Lab para testes automatizados em múltiplos dispositivos.
- Testes no React Native
- Testes unitários com Jest e testes de componentes com Enzyme.
- Testes de ponta a ponta usando Detox e configurações de teste automatizado.
- Perfilamento de desempenho usando o React Native Debugger e Flipper.
Semana 11: Implantação do Aplicativo e Integração Contínua
- Implantação na App Store (iOS)
- Preparando seu aplicativo para submissão: certificados da App Store, perfis de provisionamento e testes beta via TestFlight.
- Usando o Fastlane para automatizar a implantação do aplicativo iOS.
- Gestão do App Store Connect e configuração dos processos de revisão do aplicativo.
- Implantação no Google Play (Android)
- Preparação do APK e assinatura para submissão no Google Play.
- Automação da implantação de aplicativos Android com Fastlane e Gradle.
- Uso do Google Play Console para revisão do aplicativo e testes beta.
- Configuração de Pipelines CI/CD
- Configurando Jenkins, GitHub Actions ou CircleCI para pipelines automatizados de build e implantação.
- Uso do Fastlane para fluxos de trabalho CI/CD tanto no iOS quanto no Android.
- Melhores práticas para lidar com versionamento, números de build e canais de lançamento.
Semana 12: Projeto Final (Capstone Project)
- Desenvolvimento do Projeto Final
- Projetar e desenvolver um aplicativo totalmente funcional que incorpore recursos avançados aprendidos ao longo do curso.
- Implementar UI/UX personalizado, animações avançadas, gerenciamento de estado, integração de módulos nativos e comunicação de API em tempo real.
- Otimizar o aplicativo para desempenho e implantá-lo na App Store e Google Play.
Resumo e Próximos Passos
Requisitos
- Sólido entendimento de conceitos de programação, especialmente em Swift, Kotlin e JavaScript.
- Experiência prévia na construção de aplicativos básicos para iOS, Android ou React Native.
- Conhecimento de padrões de design como MVC ou MVVM e experiência com gerenciamento básico de estado.
Público-Alvo
- Desenvolvedores móveis
- Programadores
Testemunhos de Clientes (3)
Tudo está bem.
Adrian Rybka - SEOyon
Curso - Flutter Development Bootcamp with Dart
Máquina Traduzida
Informações adicionais muito úteis
Grzegorz - Comp S.A.
Curso - BLoC Pattern
Máquina Traduzida
Desenvolvendo o aplicativo de autenticação do usuário e a atividade kahoot (garanti que estou absorvendo as aulas de treinamento :) e está sendo divertido!)
Jhoanne - Pag-IBIG Fund
Curso - .NET MAUI Fundamentals
Máquina Traduzida