Programa do Curso
Introdução
Semana 1: Introdução a Mobile Development
- Ecossistema de aplicações móveis e tendências
- Introdução ao panorama das aplicações móveis (iOS e Android)
- Diferenças entre aplicações nativas, híbridas e multiplataforma
- Visão geral do fluxo de trabalho e das ferramentas de desenvolvimento de aplicações móveis
- Desenvolvimento nativo vs. multiplataforma
- Principais diferenças entre o desenvolvimento de aplicações para uma única plataforma (nativo) e para várias plataformas (multiplataforma)
- Vantagens e desvantagens de cada abordagem
- Visão geral das plataformas nativas comuns (iOS, Android) e das ferramentas multiplataforma (React Native, Flutter)
- Introdução ao JavaScript Programming
- Sintaxe básica e estrutura do JavaScript
- Variáveis, constantes e tipos de dados (número, cadeia de caracteres, booleano, objeto)
- Operadores e expressões
- Fluxo de controlo:
if
,else
,switch
- Introdução às funções e ao âmbito de aplicação (âmbito global vs âmbito local)
- Configuração do Xcode para desenvolvimento iOS
- Introdução ao IDE Xcode: interface, ferramentas e fluxo de trabalho
- Instalação do Xcode e execução do simulador iOS
- Introdução à linguagem de programação Swift
- Escrever uma aplicação básica Swift e executá-la no simulador iOS
- Configurar o Android Studio para Android Desenvolvimento
- Instalar o Android Studio e configurar o ambiente
- Configurar e utilizar o emulador Android
- Introdução à linguagem de programação Kotlin e sintaxe básica
- Escrever uma aplicação Kotlin básica e executá-la no emulador Android
- Configuração do ambiente de desenvolvimento nativo do React
- Instalação do Node.js e do React Native CLI
- Introdução à Expo e criação de um projeto com a Expo
- Execução de uma aplicação "Hello World" simples nos emuladores iOS e Android
Semana 2: Fundamentos de iOS e Android
- Introdução ao Swift e ao Xcode IDE
- Variáveis e tipos de dados em Swift (Int, Float, String, Bool, etc.)
- Constantes com
let
e variáveis comvar
- Instruções de fluxo de controlo
(if
,switch
, loops) - Funções e parâmetros em Swift
- Tratamento de erros em Swift
- Conceção da interface do utilizador em iOS
- Introdução aos storyboards e ao Xcode Interface Builder
- Conceber layouts de aplicações utilizando o Auto Layout e restrições
- Adicionar componentes de IU: botões, etiquetas, campos de texto, imagens
- Tratamento de interações e eventos do utilizador (por exemplo, cliques em botões)
- Criar um formulário de início de sessão simples e validar a entrada do utilizador
- Introdução ao Kotlin e ao Android Studio IDE
- Sintaxe básica do Kotlin (variáveis, tipos de dados e funções)
- Compreender a segurança nula e as classes de dados do Kotlin
- Introdução à arquitetura e aos componentes da aplicação Android (Activities, Fragmentos)
- Lidar com o ciclo de vida da atividade em aplicações Android
- Desenho da interface do utilizador em Android
- Projetar UIs Android usando arquivos de layout XML
- Trabalhar com gestores de layout (LinearLayout, RelativeLayout, ConstraintLayout)
- Adicionar componentes interactivos (botões, vistas de texto, editar textos)
- Utilização de Java/Kotlin para tratar a entrada do utilizador e as transições de atividade
- Construir um formulário de login com validação de entrada
- Noções básicas de depuração no Xcode e no Android Studio
- Como utilizar pontos de interrupção, registos e a consola do depurador
- Ferramentas e técnicas de depuração comuns para iOS (Xcode Instruments, Simulator)
- Ferramentas de depuração comuns para Android (Logcat, Android Debug Bridge)
- Testar e executar aplicativos em dispositivos reais
- Conectando dispositivos físicos ao Xcode e ao Android Studio
- Implantação de aplicativos em dispositivos físicos (iPhones e Android telefones)
- Simulação de diferentes condições de rede, níveis de bateria e métricas de desempenho
Semana 3: Desenvolvimento multiplataforma com React Native
- Introdução ao React Native e ao JavaScript para dispositivos móveis
- O que é React Native e por que usá-lo?
- Visão geral de como o React Native traduz o JavaScript em código nativo
- Sintaxe JSX: Escrever estruturas do tipo HTML em JavaScript
- Componentes React: Componentes funcionais versus componentes baseados em classes
- Estado e Props: Gerir o fluxo de dados em componentes React Nativos
- Estilos em React Nativo
- Introdução ao Flexbox e sua importância no design de layout
- Criação de layouts responsivos para iOS e Android
- Aplicação de estilos específicos da plataforma utilizando o módulo
Platform
do React Native
- React Navegação para aplicações multiplataforma
- Introdução à React Navegação e aos contentores de navegação
- Criar a navegação em pilha para transições de ecrã
- Implementação da navegação por separadores e gavetas para aplicações mais complexas
- Passagem de dados entre ecrãs e gestão de estados de navegação
- [Caraterísticas nativas do dispositivo
- Utilização de funcionalidades do dispositivo, como a câmara e a localização em React Native
- Integração de APIs como Geolocalização, Câmara e AsyncStorage
- Tratamento das permissões de acesso ao hardware do dispositivo (diferenças entre iOS e Android)
- Armazenamento de dados localmente com AsyncStorage e integração de bibliotecas de terceiros para persistência
- Preparar aplicações para implementação
- Configurar definições de aplicações para produção no Xcode e no Android Studio
- Criar APKs para Android e testar em dispositivos reais
- Preparar iOS aplicações para submissão na App Store (ícones de aplicações, assinatura de certificados)
- Finalização de React projectos nativos para implementação de produção em ambas as plataformas
- Apresentação final do projeto
- Apresentação da aplicação nativa multiplataforma React final à turma
- Recolha de feedback e discussão de potenciais melhorias
- Sessão final de perguntas e respostas e observações finais
Resumo e próximos passos
Requisitos
- Conhecimento básico dos conceitos de programação
Público
- 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.