Mestrado | Informática

Desenvolvimento Para Plataformas iOS

Área Científica

Ciências Informáticas

Duração

Semestral

ECTS

5

Horas de Contacto Teórico Práticas

35h

OBJETIVOS DA APRENDIZAGEM

O1 – Conhecer a linguagem Swift, incluindo sintaxe, estruturas de controle, funções, closures, e conceitos de orientação a objetos.
O2 – Utilizar o SwiftUI para desenvolvimento de interfaces.
O3 – Implementar persistência de dados local.
O4 – Configurar e empregar Firebase para autenticação e armazenamento.
O5 – Consumir e desenvolver APIs REST, realizar parsing de JSON e integrar APIs externas.
O6 – Desenvolver e utilizar APIs remotas, construindo uma aplicação completa que interaja com um backend relacional remoto.
O7 – Planear e executar um projeto final em grupo que sintetize todas as competências adquiridas, demonstrando a capacidade de desenvolver uma aplicação iOS completa.

PROGRAMA

1. Linguagem Swift
1.1. Introdução ao Swift
1.2. Conceitos Básicos de Swift: Variáveis, constantes, tipos de dados, e controle de fluxo.
1.3. Funções e Closures: Definição e uso.
1.4. Orientação a Objetos em Swift: Classes, estruturas, herança, e protocolos.

2. Desenvolvimento IOS
2.1. Introdução ao SwiftUI
2.2. Conceitos Básicos de SwiftUI: Views, modifiers, e state management.
2.3. Layout e Navegação: Construção de interfaces com stacks, listas, e navegação
2.4. Data Binding e State Management
2.5. Comparação com Storyboard (interfaces visuais)

3. Persistência Local
3.1. UserDefaults
3.2. Sqlite
3.3. Analise de Core Data

4. Backend as a Service (Firebase)
4.1. Integração com Firebase
4.2. Firebase Auth, Realtime database e Firestore

5. Consumo de APIs
5.1. HTTP e REST: Conceitos básicos.
5.2. URLSession: Realização de chamadas de rede.
5.3. Codable: Conversão entre JSON e modelos Swift.
5.4. Integração com APIs Externas

6. Persistência Remota
6.1. Construção de API (3 horas)
6.2. Conceitos Básicos de Backend: REST
6.3. Elaboração de API para ser consumida
6.4. Aplicação completa – demostração de aplicação completa usando API e base de dados relacional remota.

7. Projeto Final – Desenvolvimento de App, em grupo

Para todos os módulos serão elaboradas pequenas aplicações para demonstrar as funcionalidades

DEMONSTRAÇÃO DE COERÊNCIA ENTRE CONTEÚDOS PROGRAMÁTICOS E RESULTADOS DA APRENDIZAGEM

Os conteúdos programáticos da UC são planeados para garantir uma progressão lógica na aprendizagem dos estudantes, começando com a aquisição de competências fundamentais na linguagem Swift e avançando para a utilização dessas competências no desenvolvimento de interfaces com SwiftUI. À medida que os alunos consolidam seus conhecimentos básicos, progridem para tópicos mais complexos, como a persistência de dados local e a integração com serviços de backend. Este planeamento assegura que cada módulo apoie o anterior, culminando na realização de um projeto final que integra e aplica todos os conceitos aprendidos durante o curso. Assim, o objetivo 1 é alcançado através dos pontos 1.1 a 1.4, onde os alunos aprendem os fundamentos e a orientação a objetos em Swift. Os pontos 2.1 a 2.5 permitem realizar o objetivo 2, que envolve o domínio de SwiftUI para criação de interfaces eficazes. O objetivo 3 é concretizado através dos pontos 3.1 a 3.3. Os pontos 4.1 e 4.2 permitem atingir o objetivo 4. O objetivo 5 é alcançado por meio dos pontos 5.1 a 5.4, onde os estudantes aprendem a consumir e desenvolver APIs REST. Finalmente, o objetivo 6 é realizado através dos pontos 6.1 a 6.4, preparando os alunos para desenvolver e consumir suas próprias APIs, e o objetivo 7 é concretizado com a realização de um projeto final em grupo, conforme descrito no ponto 7.

METODOLOGIA DE ENSINO E AVALIAÇÃO

A unidade curricular é de natureza teórico-prática, com 35 horas de contacto planeadas. A aprendizagem será fortemente baseada na prática, conforme é exigido pelo ensino de linguagens de programação e tecnologias associadas. O processo de ensino-aprendizagem será baseado na demonstração de conceitos teóricos, depois demonstração pratica e desenvolvimento de pequenas aplicações IOS, realizadas individualmente. Estas aplicações são desenhadas para permitir que os alunos apliquem de forma concreta os conhecimentos teóricos adquiridos, facilitando a progressão na compreensão e na capacidade de aplicar os conteúdos estudados. No final é elaborado um projeto em grupo reunindo os conhecimentos adquiridos.
De acordo com o Regulamento de Funcionamento do ISTEC a avaliação é efetuada através de
um exame escrito individual e obrigatório. Na classificação final, poderão ser considerados
elementos de avaliação contínua, tais como testes, trabalhos individuais ou em grupo, assim
como a participação nas aulas presenciais e em recursos de aprendizagem proporcionados por
sistemas de e-learning.

DEMONSTRAÇÃO DE COERÊNCIA ENTRE METODOLOGIAS DE ENSINO E RESULTADOS DE APRENDIZAGEM

Na unidade curricular, a metodologia teórico-prática é essencial para que os alunos compreendam e apliquem efetivamente os conceitos essenciais de programação em Swift, bem como os princípios do desenvolvimento de interfaces com SwiftUI. Iniciando com os fundamentos da linguagem Swift, o curso avança para aspetos mais complexos como a arquitetura de aplicações iOS, design de interfaces de utilizador, e adaptação a diferentes dispositivos, complementados com módulos sobre persistência de dados local e integração com Firebase. Este enfoque prático é continuado com a implementação de funcionalidades avançadas e o consumo de APIs. O projeto final, que exige a integração de todas as tecnologias estudadas, confirma a coerência entre as metodologias de ensino adotadas e os objetivos de aprendizagem, preparando os estudantes para desenvolverem aplicações iOS completas e eficientes.

BIBLIOGRAFIA

Devido à bibliografia existente em português usar linguagens de programação e versões de ambientes de desenvolvimento já desatualizadas, a bibliografia recomendada é constituída de livros na língua inglesa. Em virtude da natureza altamente dinâmica das áreas, serão disponibilizados recursos na internet atuais, bem como slides do professor.
Ward, M. (2020). Swift Programming: The Big Nerd Ranch Guide, 3rd Edition, Big Nerd Ranch Guides}. ISBN: 9780135266601
Keur, C., & Hillegass, A. (2017). iOS Programming: The Big Nerd Ranch Guide (6th ed.). Big Nerd Ranch. ISBN: 978-0134682334
Slides disponibilizados pelo docente
Recursos atuais na internet