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 o sistema operativo iOS e o desenvolvimento aplicacional
O2 – Compreender os mecanismos de persistência e os sistemas de notificações disponíveis em iOS
O3 – Compreender a necessidade de um layout adaptativo
O4 – Conhecer o paradigma da programação orientada a protocolo
O5 – Desenvolver aplicações móveis nativas para sistemas iOS e fazer o upload para a App Store.

PROGRAMA

1. Arquitetura iOS
2. Anatomia de uma app
3. Ciclo de vida de uma app
4. Introdução ao Swift e iOS

4.1. Tipos de dados básicos
4.2. Range
4.3. Tuplos
4.4. Enums
4.5. Opcionais
4.6. Estruturas de dados

4.6.1.Controlo de acesso
4.6.2.Extensões
4.6.3.Class
4.6.4.Struct
4.6.5.Enum
4.6.6.Protocolo

4.7. Propriedade

4.7.1.Computed
4.7.2.Observeres

4.8. Gestão de memoria
4.9. Funções
4.10. Closures

5. MVC
6. Multipolos – MVCs
7. Tabelas e Collections
8. Persistência local

8.1. SQLit,
8.2. Coredata
8.3. User Defaults

9. Persistência remota

9.1. REST
9.2. iCloud

10. Múltiplas – Views

10.1. Storyboard
10.2. Multiplos – Storyboard
10.3. Navegação

11. Autolayout

11.1. Interface gráfica
11.2. Em código

12. Notificações

12.1. Locais
12.2. Remotas

13. Programação orientada a protocolos
14. Desenvolvimento de aplicações e submissão para a App Store

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

Nesta unidade curricular serão abordados conteúdos que permitam ao estudante conhecer os princípios do desenvolvimento de aplicações para plataformas iOS. Os conteúdos programáticos foram definidos com o propósito de responder com clareza aos objetivos de aprendizagem propostos, nesse sentido iniciar-se-á a unidade curricular com conteúdos que se pretendem niveladores dos conhecimentos dos estudantes (que poderão ter diferentes backgrounds académicos). Se por um lado é desejável que num 2º ciclo o estudante já tenha conhecimentos de programação, por outro percebe-se que diferentes formações de 1º ciclo do ramo oferecem, naturalmente, diferentes linguagens e diferentes níveis de aprofundamento. Com efeito, os primeiros três conteúdos permitirão atingir o objetivo O1. De seguida abordar-se-ão conteúdos com um maior nível de aprofundamento e orientados à programação em Swift (conteúdos 4 a 13) que contribuirão para que os estudantes atinjam os objetivos O2, O3 e O4. A unidade irá finalizar com conteúdos práticos orientados ao desenvolvimento e publicação de aplicações para a App Store que acabam por ser transversais e uma continuidade óbvia dos conteúdos programáticos apresentados anteriormente e que permitem atingir o objetivo O5. Em suma os conhecimentos da unidade curricular serão consolidados através do desenvolvimento de um Projeto de uma aplicação web nativa.

METODOLOGIA DE ENSINO E AVALIAÇÃO

Atendendo à especificidade desta Unidade Curricular, privilegiar-se-á o contacto direto entre o estudante e o computador numa perspetiva computer based learning.
As aulas assumirão um carácter teórico-prático, cabendo ao docente a função de apresentação e enquadramento dos conceitos teóricos bem como da sua aplicação prática.
Com efeito o estudante terá um papel central na sua aprendizagem sendo estimulada a sua participação que se pretende ativa ao longo da unidade.
A adoção desta metodologia implica, em alguns momentos, a distribuição dos estudantes por grupos de trabalho em dinâmicas de grupo bem como realização constante de exercícios práticos de aplicação de conhecimentos.
Avaliação:
A avaliação será efetuada através de um exame escrito individual. Na classificação final, serão considerados elementos de avaliação contínua, tais como trabalhos (individuais ou em grupo).

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

O modo de trabalho que se preconiza na Unidade Curricular centrado, quer em momentos de trabalho individual, quer de trabalho coletivo, visa contribuir para que o estudante desenvolva conhecimentos sólidos no desenvolvimento de aplicações para plataformas iOS.
Nesse sentido optou-se por metodologias de ensino centradas no estudante em que este tem um papel preponderante na sua aprendizagem permitindo, desde modo, dotar o estudante de ferramentas, mas, sobretudo, de capacidades de intervenção ativa. O computador será, sempre, um recurso presente nas aulas (que terão caráter teórico-prático) de modo a que os estudantes tenham contacto com os conceitos anteriormente referidos colocando-os em prática com exemplos concretos de utilização.
Nesse sentido justificam-se metodologias de ensino que estimulem a participação ativa e que promovam competências de autonomia nos processos e desenvolvimentos tecnológicos nas áreas que operem ou venham a operar.
As competências são desenvolvidas através da exposição participativa e da resolução de problemas consubstanciados em trabalhos supervisionados, que culminarão numa apresentação e discussão com os pares, no final da unidade curricular, que permitam o desenvolvimento de competências discursivas e comunicativas.

BIBLIOGRAFIA

Apple Inc (2014). The Swift Programming Language (Swift 4). Apple Inc.
Apple Inc (2015). Using Swift with Cocoa and Objective-C (Swift 4). Apple Inc.
Apple Inc (2017). iOS Human Interface Guideline. Retirado de https://developer.apple.com/design/human-interface-guidelines/ios/overview/themes/.
Hoffman, J. (2017). Swift 4 Protocol-Oriented Programming – Third Edition: Bring predictability, performance, and productivity to your Swift applications. Birmingham: Packtpub.
Neuburg, M. (2017). iOS 11 Programming Fundamentals with Swift: Swift, Xcode, and Cocoa Basics. Boston: O’Reilly Media.
Silva, C. & Marcelino, L. (2017). Desenvolvimento em Swift para iOS. Lisboa: FCA.