Programação de Dispositivos Móveis

Conhecimentos de Base Recomendados

Competências mínimas de programação

Métodos de Ensino

  • Estratégia de aprendizagem apoiada na experimentação da matéria exposta nas aulas, através do desenvolvimento de módulos de software, com exemplos práticos. O sucesso escolar do estudante implica um estudo contínuo do estudante nas aulas e fora das aulas.
  • Aulas teóricas – A exposição é realizada com o apoio de diapositivos e exploração de aplicações previamente criadas e completadas em sala de aula. Requer-se a participação dos alunos na aplicação dos conhecimentos transmitidos.
  • Aulas práticas – Na componente prática, os estudantes desenvolvem módulos de software, dando especial ênfase às fases da análise do problema, do desenvolvimento da solução, aplicando as regras de Desenho da Interacção de forma a aumentar a Usabilidade dos sistemas móveis interativos.
  • A aquisição dos conceitos mais teóricos será avaliada através de provas escritas. As competências práticas serão avaliadas com base num trabalhos prático.

Resultados de Aprendizagem

Pretende-se que os alunos adquiram conhecimentos que lhes permitam desenvolver aplicações para sistemas móveis, tendo em conta as especificidades destes dispositivos e desenvolvendo as seguintes competências:

  • Desenvolvimento de aplicações para dispositivos móveis
  • Análise e proposta de funcionalidades e formas de interação adequadas aos objetivos e contextos de utilização das aplicações
  • Adequação e otimização de implementações de acordo com as capacidades dos dispositivos
  • Criação de aplicações modulares seguindo padrões de programação adequados
  • Desenvolvimento de capacidades de programação orientada a objetos
  • Desenvolvimento de aplicações baseada em componentes
  • Utilização de informação espacial e ambiental diversa no contexto das aplicações
  • Gestão e manutenção de dados de forma persistente em sistemas com capacidades limitadas
  • Disponibilização de aplicações a públicos específicos e/ou alargados.

Programa

  • Introdução a conceitos sobre sistemas móveis, sistemas disseminados e sistemas ubíquos.
  • Fundamentos sobre programação orientada a objetos
  • Conceitos sobre interação e usabilidade de aplicações para dispositivos móveis.
  • Programação de aplicações para dispositivos móveis.
  • Programação de sistemas pervasivos/inteligência ambiental.
  • Distribuição de aplicações e gestão de versões.

 

Docente(s) responsável(eis)

José Manuel Meireles Marinho

Métodos de Avaliação

  • Exame escrito (todas as épocas)
    • Peso na nota final: 4
    • Mínimos: 25%
    • Incide sobre toda a matéria lecionada
  • Análise crítica de interfaces do utilizador
    • Incide sobre projetos desenvolvidos por estudantes de anos letivos anteriores
    • Atividade realizada em aula, com aviso prévio dos estudantes do período de realização
    • Grupos de dois elementos
    • Peso na classificação final: 1.5
    • Sem mínimos
  • Mini-testes
    • Realizados no final da última aula da segunda, terceira, sexta, sétima, nona e décima semanas.
    • Incidem sobre a matéria nova abordada durante a semana
    • Peso de cada mini-teste: 0.375
    • Peso total máximo na classificação final: 1.5
    • Sem mínimos
  • Trabalho prático
    • Grupos de 2 elementos
    • Avaliação do protótipo
      • Realizada nas aulas da oitava semana
      • Peso na nota final: 3
      • Mínimos: 25%
    • Avaliação de acompanhamento semanal
      • Realizado em aula
      • Peso na nota final: 4
    • Avaliação final do trabalho
      • Data de entrega: 23h59 do dia anterior ao período de apoio a exames
      • Entrega através do Nónio
      • Defesa obrigatóriaPeso na nota final: 6
        • Realizada no período de apoio a exames
        • Poderão ser solicitadas alterações ao trabalho durante a defesa
      • Mínimos: 25%

    Estágio(s)

    NAO

    Bibliografia

    Bibliografia recomendada:

    • “Flutter documentation”, https://flutter.dev/docs
    • “Dart documentation”, https://dart.dev/guides
    • “Dart packages”, https://pub.dev/
    • “Nielsen and Norman Usability Group”, https://www.nngroup.com/topic/mobile-and-tablet-design/

     

    Bibliografia complementar:

    • Banga, C. and Weinhold, J. (2014). Essential Mobile Interaction Design: Perfecting Interface Design in Mobile Apps (Usability).
    • Katz, M., Moore, K. & Ngo, V. (2021). Flutter Apprentice (First Edition): Learn to Build Cross-Platform Apps. Raywenderlich Tutorial Team Editor.
    • Sande, J. & Galloway, M. (2021). Dart Apprentice (First Edition): Beginning Programming with Dart. Raywenderlich Tutorial Team Editor.
    • Zaccagnino, C. (2020). Programming Flutter: Native, Cross-Platform Apps the Easy Way (The Pragmatic Programmers). Michael Suaine Editor.