Programa do Curso
Introdução
Semana 1: Visão geral de Mobile Development
- Ecossistema e plataformas móveis
- Visão geral dos sistemas operativos móveis (iOS e Android)
- Principais diferenças entre iOS, Android e desenvolvimento multiplataforma
- Lojas de aplicações 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 Nativo (multiplataforma)
- Como o código é traduzido para plataformas móveis (Java Script para código nativo em React Native)
- Programming Fundamentos
- Introdução aos conceitos de programação (variáveis, tipos de dados, funções, fluxo de controlo)
- Comparação da sintaxe de Swift, Kotlin e JavaScript
- Escrever programas simples usando Swift, Kotlin e JavaScript
- Configuração de ambientes de desenvolvimento
- Instalação do Xcode e do Android Studio
- Configurando React Native CLI e Expo
- Executando aplicativos básicos "Hello World" em simuladores e emuladores
Semana 2: Introdução a Swift, Kotlin e JavaScript
- Swift Programming para iOS
- Variáveis, constantes e tipos de dados em Swift
- Instruções de fluxo de controlo
(if
,switch
, loops) - Funções e parâmetros em Swift
- Introdução à interface do Xcode e aos Swift Playgrounds
- Kotlin Programming para Android
- Variáveis, tipos de dados e funções em Kotlin
- Entendendo a segurança de nulos em Kotlin
- Fluxo de controlo e estruturas de ciclos
- Introdução à interface do Android Studio e ao Kotlin Playground
- [Script para Java Nativo
- Variáveis, constantes e fluxo de controlo em JavaScript
- Recursos do ES6: funções de seta, literais de modelo e desestruturação
- Escrever e executar programas JavaScript básicos em React Native usando Expo
Semana 3: iOS Design da interface do utilizador
- UI Elements em iOS
- Introdução ao UIKit e SwiftUI
- Adicionar e personalizar elementos de IU como botões, etiquetas e campos de texto
- Usando o Interface Builder para projetar a IU
- Trabalhar com Storyboards e conceber UIs de vários ecrãs
- Layout automático e restrições
- Compreender o sistema Auto Layout
- Utilizar restrições para layouts responsivos em diferentes tamanhos de ecrã
- Criar vistas de pilha e ajustar dinamicamente os elementos da IU
- SwiftNoções básicas de IU
- Introdução ao design declarativo da IU em SwiftUI
- Construção de componentes simples de UI usando SwiftUI
Semana 4: Android Design da interface do utilizador
- [Layouts em XML
- Introdução ao design de layout baseado em XML
- Trabalhar com layouts comuns: LinearLayout, RelativeLayout, ConstraintLayout
- Adição e personalização de elementos da IU: botões, visualizações de texto, visualizações de imagem
- Utilizar ConstraintLayout para layouts responsivos e dinâmicos
- Design de materiais
- Integração dos princípios do Material Design (cores, ícones, tipografia)
- Utilização de componentes materiais (botões, botões de ação flutuantes, cartões)
- Implementar temas e estilos para Android aplicações
Semana 5: React Design nativo da interface do utilizador
- [Layout Flexbox nativo
- Compreender o Flexbox para design de layout responsivo
- Criando layouts baseados em colunas e linhas
- Estilizar componentes de IU com propriedades Flexbox (justifyContent, alignItems, etc.)
- React Componentes nativos
- Trabalhar com componentes principais como
Text
,View
,TextInput
eButton
- Criar elementos de IU interactivos, como formulários e botões
- Usando o componente
ScrollView
para conteúdo dinâmico
- Trabalhar com componentes principais como
Semana 6: Manipulação de dados em iOS e Android
- iOS Manipulação de dados
- Usando UserDefaults para persistência de dados simples
- Introdução ao Core Data para armazenamento local de dados complexos
- Obtenção de dados de APIs usando URLSession
- Analisar dados JSON e apresentá-los na IU
- Android Manipulação de dados
- Utilização de SharedPreferences para armazenar pequenas quantidades de dados
- Introdução à SQLite e à Room Persistence Library para gestão de bases de dados
- Obtenção de dados de APIs utilizando Retrofit
- Analisando JSON e manipulando respostas de API
Semana 7: React Estado nativo Management e APIs
- Estado e Props em React Native
- Gerenciando o fluxo de dados dentro de componentes React Native
- Usando o gancho
useState
para gerenciar o estado do componente local - Passando dados entre componentes pai e filho via props
- Obtenção de dados em React Native
- Usando a API Fetch e Axios para fazer solicitações HTTP
- Exibição de dados obtidos em listas (usando
FlatList
,SectionList
) - Persistindo dados localmente usando AsyncStorage em React Native
Semana 8: Navegação em iOS e Android
- iOS Navegação
- Introdução aos navigation controllers e gestão de múltiplos ecrãs
- Usando segues para fazer a transição entre view controllers
- Passagem de dados entre view controllers
- Implementação de TabBar e NavigationBar para navegação estruturada
- Android Navegação
- Trabalhar com Activities e Intents para aplicações com vários ecrãs
- Passagem de dados entre Activities utilizando Bundles
- Criar uma gaveta de navegação e uma BottomNavigationView
- Implementando fragmentos para navegação UI flexível
Semana 9: Navegação em React Nativo
- Noções básicas de navegação React
- Instalando e configurando a React Navegação
- Usando o Stack Navigator para transições de ecrã
- Implementando o Tab Navigator e o Drawer Navigator para navegação complexa
- Passagem de parâmetros entre ecrãs e gestão do estado de navegação
Semana 10: Funcionalidades avançadas
- iOS Funcionalidades avançadas:
- Localização central e mapas
- [Localização do dispositivo com o Core Location
- Exibir mapas usando o MapKit
- Gerir a geolocalização e o rastreio da localização do utilizador
- Câmara e multimédia
- [Câmara do dispositivo e biblioteca de fotografias
- Capturar e apresentar imagens com o UIImagePickerController
- Armazenamento e recuperação de ficheiros multimédia
- Localização central e mapas
- Android Funcionalidades avançadas
- Localização e mapas
- Utilizar a API Google Maps para apresentar mapas e a localização do utilizador
- [Obtenção de dados GPS e tratamento da geolocalização
- Câmara e multimédia
- Utilizar o CameraX para capturar fotografias e gerir as permissões da câmara
- Apresentação de imagens e gestão do armazenamento multimédia
- Localização e mapas
- React Funcionalidades avançadas nativas
- React Mapas nativos
- Integração de mapas usando
react-native-maps
- Manipulação de serviços baseados em localização (geolocalização, mapeamento de rotas)
- Integração de mapas usando
- Acesso à câmara e aos média
- Utilização da biblioteca React Native Camera para captura de fotografias
- Armazenamento de mídia no dispositivo Access e manipulação de arquivos
- React Mapas nativos
Semana 11: Depuração e testes
- iOS Depuração e teste
- Utilizar o depurador do Xcode
- Definição de pontos de interrupção e inspeção de variáveis no Xcode
- Utilizar a consola para depuração em tempo real
- Problemas comuns de depuração e como resolvê-los
- Testes unitários em iOS
- Escrever e executar testes unitários utilizando a estrutura XCTest
- Objetos de simulação e teste de componentes da interface do usuário
- Utilizar o depurador do Xcode
- Android Depuração e teste
- Usando o Logcat no Android Studio
- Registo e análise de erros utilizando o Logcat
- Depuração de aplicações Android com pontos de interrupção
- Testes unitários em Android
- Escrever testes unitários usando JUnit
- Testando Android componentes da interface do usuário com o Espresso
- Usando o Logcat no Android Studio
- React Depuração e teste nativos
- Ferramentas de depuração nativas React
- Utilizar o Chrome DevTools e o React Native Debugger para depuração em tempo real
- Registos de consola e inspeção de pedidos de rede
- Testes unitários em React Native
- Escrever testes unitários usando Jest e Enzyme
- Testando componentes do React Native e gerenciando casos de teste
- Ferramentas de depuração nativas React
Semana 12: Implantação de aplicativos e projeto de conclusão de curso
- Implantação e distribuição
- iOS Submissão à App Store
- Preparando seu aplicativo para distribuição (ícones, certificados, perfis de provisionamento)
- Utilizar o App Store Connect para submeter a aplicação para revisão
- Utilizar o TestFlight para testes beta
- Android Submissão à Play Store
- Preparar o APK e assinar a aplicação para distribuição
- Utilizar a Google Play Console para submeter e acompanhar aplicações
- Compreender as políticas e diretrizes da Play Store
- iOS Submissão à App Store
- Desenvolvimento do projeto de fim de curso
- Desenvolvimento do projeto final
- Criar uma aplicação totalmente funcional à sua escolha
- Incorporar funcionalidades avançadas como chamadas API, navegação, multimédia e localização
- Apresentar e demonstrar a aplicação final a colegas e instrutores
- Desenvolvimento do projeto final
Resumo e próximos passos
Requisitos
- Conhecimento básico dos conceitos de programação
- Conhecimentos básicos de JavaScript
Público-alvo
- Programadores de telemóveis
- Programadores
Declaração de Clientes (5)
O Edward é um facilitador espetacular
Zibusiso Ncube - Agricatural Research Council
Curso - Ionic 4 and Angular for Developers
Máquina Traduzida
A minha parte preferida é a das perguntas e respostas com o Sr. José. José. Ele é muito conhecedor e sabe responder às nossas perguntas.
John Henry - Toyota Motor Philippines
Curso - .NET MAUI (Intermediate)
Máquina Traduzida
Miguel's knowledge of the subject was extensive. He made the training easy to understand and the flow was balanced; adding on to each section with new features as needed. He covered everything that was asked and answered each and every question thoroughly. It was a very pleasant experience.
Paul Coaton - SEMPCheck Services
Curso - Flutter Development Bootcamp with Dart
The trainer was enthusiastic, kind, and loved the topic
Isaac Murphy - Royal New Zealand Airforce
Curso - Build Native iOS and Android Apps with Flutter
Learning the steps required to implement the MVVM model.