PDM · DAW 2

Aula 35 · Semana 14 · Quarta, 9 de dezembro de 2026 · 16:30 às 18:30

Como defender um projeto, freeze e ensaio

Teoria: estrutura de uma apresentação de dez minutos, demonstração ao vivo no telemóvel, plano B, e as perguntas em que cada membro responde pelo que fez. Prática: freeze do projeto com a tag v1.0.0 às 18:30, sorteio da ordem das defesas e ensaio com feedback dos colegas.

Freeze às 18:30

No fim desta aula consegues

Estrutura: dez minutos, cinco partes

MinutoParteO que dizer
0 a 1ProblemaPara quem é a app e o que resolve. Uma frase. Não é "fizemos uma app de meteorologia": é "quem vive na Horta quer saber se amanhã há barco".
1 a 2O que construíramOs mínimos, os extras, o que ficou de fora e porquê. Honestidade aqui evita perguntas más depois.
2 a 6DemoUm utilizador real a usar a app: pesquisa, previsão, favorito noutro telemóvel, modo avião, um erro tratado. Quatro minutos, ensaiados ao segundo.
6 a 9Decisões técnicasTrês decisões e o porquê: arquitetura, cache, o que fizeram quando a API mudou. Com um diagrama, não com código no ecrã.
9 a 10O que fariam diferenteUma coisa concreta que aprenderam. Fecha bem e mostra maturidade.

Três slides no máximo

Para os testes: não há. Isto é para a vida: em entrevistas técnicas vão pedir-te exatamente isto, "fala-me de um projeto teu em cinco minutos".

Demo ao vivo: telemóvel projetado

Plano B: o vídeo

O emulador não é plano B Mostrar a app no emulador do portátil não conta como demonstração. A rubrica pede a app no telemóvel; o vídeo é do telemóvel.

Perguntas típicas (1 de 2)

PerguntaUma boa resposta inclui
Porquê esta arquitetura?O que ganharam (testar sem rede, trocar fonte), o que custou (mais ficheiros), e que alternativa consideraram.
O que acontece sem rede?Cache-first, o que se mostra, como se marca a antiguidade, o que acontece a um favorito adicionado offline.
Onde está o token?flutter_secure_storage, Keychain e Keystore, porque não em shared_preferences, como se renova em 401.
Como testaram?Quantos testes, de que tipo, com que fakes, o que o CI corre em cada PR, e o que não está testado.
Mostra-me onde isso está no código.Abrir o ficheiro certo em menos de 15 segundos. Se hesitas, não sabes onde vive.

Perguntas típicas (2 de 2): como responder

O que a rubrica valoriza e penaliza na defesa

Valoriza

  • App a correr no telemóvel, build de release, sem banner de debug.
  • Decisões técnicas explicadas com o porquê e a alternativa.
  • Cada membro a responder pelo seu código, com o histórico de PRs a confirmar.
  • Estados de erro e offline mostrados sem que o júri peça.
  • Honestidade sobre o que falta e o que fariam diferente.

Penaliza

  • Ler slides. Slides com código. Mais de três slides.
  • Um membro a falar por todos, ou a responder pelos outros.
  • Passar dos 10 minutos: a demo é cortada onde estiver.
  • Não saber onde está uma coisa no próprio código.
  • Demo no emulador, ou build de debug "porque o de release não instalava".

A distribuição e apresentação valem 10 % do projeto; a defesa individual ajusta a nota de cada um. Está tudo em Avaliação.

Freeze: tag v1.0.0 às 18:30

  1. Até às 18:15: todos os PRs da milestone "Freeze v1.0.0" merged ou fechados. O que não entra vai para "Depois" e para o README.
  2. CI verde em main. Sem isso não há tag; corrige o que falha ou reverte o PR.
  3. Versão: version: 1.0.0+N no pubspec.yaml, com o N do último build distribuído.
  4. Cria e publica a tag a partir de main atualizado. O docente verifica a hora do commit apontado pela tag.
    git checkout main
    git pull
    git tag -a v1.0.0 -m "Tempo Açores v1.0.0: entrega para defesa"
    git push origin v1.0.0
  5. A partir das 18:30 só o README.md pode mudar (screenshots, links, retrospetiva). Qualquer outro commit depois da tag não é avaliado e conta como tentativa de contornar o prazo.
Tarefa Tag publicada e link do release no Moodle até às 18:30. Confirma com git ls-remote --tags origin que a tag está no GitHub, não só no portátil.

Sorteio da ordem das defesas

Ordem Quem vai primeiro tem menos tempo de espera e um júri mais fresco. Não é castigo.

Ensaio: cinco minutos por grupo

  1. Versão comprimida da defesa: 1 minuto de problema e o que construíram, 2 minutos de demo no telemóvel projetado, 1 minuto de uma decisão técnica, 1 minuto de perguntas de um colega de outro grupo.
  2. Cronómetro visível. Aos 5 minutos o docente corta, mesmo a meio de uma frase. É isso que vai acontecer segunda aos 10.
  3. Projeção real: o telemóvel ligado ao projetor da sala, não ao portátil do grupo. Se falhar agora, ótimo: falha hoje e não segunda.
  4. Um colega de outro grupo faz uma pergunta da lista de perguntas típicas, dirigida a um membro à escolha.
  5. Feedback de 2 minutos com a grelha do slide seguinte, por escrito, entregue ao grupo.
Tarefa Todos os grupos ensaiam hoje, pela ordem do sorteio. Quem tiver a demo a falhar na projeção resolve isso antes de sair da sala, com a ajuda do docente.

Grelha de feedback dos colegas

Critério135
Clareza do problema e do que fizeramNão percebi para que serve a appPercebi, com esforçoPercebi na primeira frase
DemoNão correu ou não se viuCorreu, mas com hesitaçõesFluida, com estados de erro e offline mostrados
Decisão técnicaDescreveram o que fizeramExplicaram porquêExplicaram porquê e o que rejeitaram
Resposta à perguntaOutro membro respondeuRespondeu, vagoRespondeu curto, concreto e com o ficheiro à mão
Tempo e posturaLeram, passaram do tempoDentro do tempo, a ler poucoDentro do tempo, a olhar para a sala

Escreve também uma frase: a coisa mais útil que o grupo pode mudar até segunda. É essa que vale.

Até à próxima aula

Para fazer

  • Preparar a apresentação: três slides, guião de 10 minutos com quem diz o quê, e a demo ensaiada ao segundo pelo menos três vezes.
  • Plano B gravado: vídeo de 3 a 4 minutos da app no telemóvel, no portátil, numa pen e num link.
  • Cada membro relê os seus PRs e sabe explicar cada ficheiro que tocou.
  • README atualizado com o link do release e a retrospetiva. É a única coisa que ainda pode mudar.

Para ler