Programa do Curso
Introdução
Semana 1: Visão Geral do Desenvolvimento Móvel
- Ecossistema Móvel e Plataformas
- Visão geral dos sistemas operacionais móveis (iOS e Android)
- Diferenças-chave entre desenvolvimento para iOS, Android e multiplataforma
- Lojas de aplicativos populares (Apple App Store, Google Play Store)
- Introdução ao desenvolvimento nativo, híbrido e multiplataforma
- Nativo vs Híbrido vs Multiplataforma
- Vantagens e desafios de cada método de desenvolvimento
- Visão geral de Swift (para iOS), Kotlin (para Android) e React Native (multiplataforma)
- Como o código é convertido para plataformas móveis (JavaScript para código nativo no React Native)
- Fundamentos da Programação
- Introdução a conceitos de programação (variáveis, tipos de dados, funções, fluxo de controle)
- Comparação das sintaxes de Swift, Kotlin e JavaScript
- Escrita de programas simples usando Swift, Kotlin e JavaScript
- Configuração de Ambientes de Desenvolvimento
- Instalação do Xcode e Android Studio
- Configuração do React Native CLI e Expo
- Execução de aplicativos básicos "Hello World" em simuladores e emuladores
Semana 2: Introdução ao Swift, Kotlin e JavaScript
- Programação em Swift para iOS
- Variáveis, constantes e tipos de dados no Swift
- Estruturas de fluxo de controle (
if,switch, loops) - Funções e parâmetros no Swift
- Introdução à interface do Xcode e ao Swift Playgrounds
- Programação em Kotlin para Android
- Variáveis, tipos de dados e funções no Kotlin
- Compreensão da segurança contra nulos do Kotlin
- Estruturas de fluxo de controle e loops
- Introdução à interface do Android Studio e ao Kotlin Playground
- JavaScript para React Native
- Variáveis, constantes e fluxo de controle no JavaScript
- Recursos ES6: arrow functions, template literals e destructuring
- Escrita e execução de programas básicos em JavaScript no React Native usando Expo
Semana 3: Design de Interface do Usuário para iOS
- Elementos de UI no iOS
- Introdução ao UIKit e SwiftUI
- Adição e personalização de elementos de UI como botões, rótulos e campos de texto
- Uso do Interface Builder para projetar UI
- Trabalho com Storyboards e design de UI multi-tela
- Auto Layout e Constraints
- Compreensão do sistema Auto Layout
- Uso de constraints para layouts responsivos em diferentes tamanhos de tela
- Criação de stack views e ajuste dinâmico de elementos de UI
- Fundamentos do SwiftUI
- Introdução ao design de UI declarativa no SwiftUI
- Criação de componentes de UI simples usando SwiftUI
Semana 4: Design de Interface do Usuário para Android
- Layouts XML no Android
- Introdução ao design de layout baseado em XML
- Trabalho com layouts comuns: LinearLayout, RelativeLayout, ConstraintLayout
- Adição e personalização de elementos de UI: botões, textos e imagens
- Uso do ConstraintLayout para layouts responsivos e dinâmicos
- Material Design
- Integração dos princípios do Material Design (cores, ícones, tipografia)
- Uso de componentes do Material (botões, floating action buttons, cards)
- Implementação de temas e estilização para aplicativos Android
Semana 5: Design de Interface do Usuário no React Native
- Layout Flexbox no React Native
- Compreensão do Flexbox para design de layout responsivo
- Criação de layouts baseados em colunas e linhas
- Estilização de componentes de UI com propriedades do Flexbox (justifyContent, alignItems, etc.)
- Componentes do React Native
- Trabalho com componentes básicos como
Text,View,TextInputeButton - Criação de elementos de UI interativos, como formulários e botões
- Uso do componente
ScrollViewpara conteúdo dinâmico
- Trabalho com componentes básicos como
Semana 6: Manipulação de Dados no iOS e Android
- Manipulação de Dados no iOS
- Uso do UserDefaults para persistência simples de dados
- Introdução ao Core Data para armazenamento local de dados complexos
- Recuperação de dados de APIs usando URLSession
- Parsing de dados JSON e exibição na UI
- Manipulação de Dados no Android
- Uso do SharedPreferences para armazenar pequenas quantidades de dados
- Introdução ao SQLite e Room Persistence Library para gerenciamento de bancos de dados
- Recuperação de dados de APIs usando Retrofit
- Parsing de JSON e manipulação de respostas de API
Semana 7: Gerenciamento de Estado e APIs no React Native
- Estado e Props no React Native
- Gerenciamento do fluxo de dados dentro dos componentes do React Native
- Uso do hook
useStatepara gerenciar o estado local do componente - Passe de dados entre componentes pais e filhos via props
- Recuperação de Dados no React Native
- Uso da API Fetch e Axios para fazer requisições HTTP
- Exibição dos dados recuperados em listas (usando
FlatList,SectionList) - Persistência de dados localmente usando AsyncStorage no React Native
Semana 8: Navegação no iOS e Android
- Navegação no iOS
- Introdução aos navigation controllers e gerenciamento de múltiplas telas
- Uso de segues para transição entre view controllers
- Passe de dados entre view controllers
- Implementação do TabBar e NavigationBar para navegação estruturada
- Navegação no Android
- Trabalho com Activities e Intents para aplicativos multi-tela
- Passe de dados entre Activities usando Bundles
- Criação de Navigation Drawer e BottomNavigationView
- Implementação de fragments para navegação de UI flexível
Semana 9: Navegação no React Native
- Fundamentos do React Navigation
- Instalação e configuração do React Navigation
- Uso do Stack Navigator para transições entre telas
- Implementação do Tab Navigator e Drawer Navigator para navegação complexa
- Passe de parâmetros entre telas e gerenciamento do estado de navegação
Semana 10: Recursos Avançados
- Recursos Avançados no iOS:
- Core Location e mapas
- Acesso à localização do dispositivo com Core Location
- Exibição de mapas usando MapKit
- Manipulação de geolocalização e rastreamento da localização do usuário
- Câmera e mídia
- Acesso à câmera e biblioteca de fotos do dispositivo
- Captura e exibição de imagens com UIImagePickerController
- Armazenamento e recuperação de arquivos de mídia
- Core Location e mapas
- Recursos Avançados no Android
- Localização e mapas
- Uso da API do Google Maps para exibir mapas e localização do usuário
- Acesso aos dados de GPS e manipulação de geolocalização
- Câmera e mídia
- Uso do CameraX para capturar fotos e gerenciar permissões de câmera
- Exibição de imagens e gerenciamento de armazenamento de mídia
- Localização e mapas
- Recursos Avançados no React Native
- Mapeamento no React Native
- Integração de mapas usando
react-native-maps - Manipulação de serviços baseados em localização (geolocalização, roteamento)
- Integração de mapas usando
- Acesso à câmera e mídia
- Uso da biblioteca React Native Camera para captura de fotos
- Acesso ao armazenamento de mídia do dispositivo e gerenciamento de arquivos
- Mapeamento no React Native
Semana 11: Depuração e Testes
- Depuração e Testes no iOS
- Uso do depurador do Xcode
- Definição de breakpoints e inspeção de variáveis no Xcode
- Uso do console para depuração em tempo real
- Problemas comuns de depuração e como resolvê-los
- Testes unitários no iOS
- Escrita e execução de testes unitários usando o framework XCTest
- Mocking de objetos e teste de componentes de UI
- Uso do depurador do Xcode
- Depuração e Testes no Android
- Uso do Logcat no Android Studio
- Logging e análise de erros usando o Logcat
- Depuração de aplicativos Android com breakpoints
- Testes unitários no Android
- Escrita de testes unitários usando JUnit
- Teste de componentes de UI do Android com Espresso
- Uso do Logcat no Android Studio
- Depuração e Testes no React Native
- Ferramentas de depuração do React Native
- Uso do Chrome DevTools e React Native Debugger para depuração em tempo real
- Logs de console e inspeção de requisições de rede
- Testes unitários no React Native
- Escrita de testes unitários usando Jest e Enzyme
- Teste de componentes do React Native e gerenciamento de casos de teste
- Ferramentas de depuração do React Native
Semana 12: Implantação de Aplicativos e Projeto Final
- Implantação e Distribuição
- Submissão à App Store para iOS
- Preparação do aplicativo para distribuição (ícones, certificados, provisioning profiles)
- Uso da App Store Connect para submeter o aplicativo para revisão
- Uso do TestFlight para testes beta
- Submissão à Play Store para Android
- Preparação do APK e assinatura do aplicativo para distribuição
- Uso do Google Play Console para submissão e acompanhamento do aplicativo
- Compreensão das políticas e diretrizes da Play Store
- Submissão à App Store para iOS
- Desenvolvimento do Projeto Final
- Desenvolvimento do projeto final
- Criação de um aplicativo totalmente funcional à sua escolha
- Incorporação de recursos avançados, como chamadas de API, navegação, mídia e localização
- Apresentação e demonstração do aplicativo final para colegas e instrutores
- Desenvolvimento do projeto final
Resumo e Próximos Passos
Requisitos
- Compreensão básica de conceitos de programação
- Conhecimento básico de JavaScript
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