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 e Button
    • Criar elementos de IU interactivos, como formulários e botões
    • Usando o componente ScrollView para conteúdo dinâmico

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
  • 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
  • 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)
    • 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

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
  • 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
  • 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

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
  • 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

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
 420 Horas

Declaração de Clientes (5)

Próximas Formações Provisórias

Categorias Relacionadas