Partilhar: WhatsApp
aulify · Mini-Projecto
UC UC02835 · T. Desenv. Software
Versão · Aluno

Mini-Projecto · App móvel com API

Construir uma app Flutter completa que consome uma API
⏱ Duração estimada: 14 horas (≈ 8 aulas) ↗ Referencial SNQ
Índice

Contexto

Cada par/trio constrói uma app móvel em Flutter que consome uma API (a do projecto da UC02834, uma API pública, ou um JSON local). Domínio à escolha: catálogo de produtos, lista de tarefas, app de receitas, agenda de eventos, leitor de notícias.

Requisitos

Funcionais

  1. 3+ ecrãs com navegação (lista → detalhe → outro).
  2. Consumir uma API (GET no mínimo; POST = bónus).
  3. Estados de ecrã — loading, erro, vazio, dados.
  4. Estado — pelo menos 1 funcionalidade com estado (favoritos, contador, filtro).
  5. Armazenamento local — guardar algo (favoritos, settings, cache).
  6. UI cuidada — coerente, responsiva, alvos de toque adequados.

Não-funcionais

  1. Modelos de dados (fromJson).
  2. Código organizado (pastas: screens, models, services, widgets).
  3. Tratamento de erros (sem crashes).
  4. README + Git.

Fases

Fase 1 · 1.5h

Planeamento

Mockups dos ecrãs + estrutura de dados.

Fase 2 · 2h

Setup + estrutura

App corre com navegação entre ecrãs vazios.

Fase 3 · 3h

Camada de dados

Service testável que devolve objectos.

Fase 4 · 3h

Ecrã de lista + detalhe

Fluxo lista→detalhe funcional com dados reais.

Fase 5 · 2.5h

Estado + armazenamento

Favoritos persistem após fechar a app.

Fase 6 · 1.5h

Polish

App polida e estável.

Fase 7 · 0.5h

Entrega

Repositório + APK de demonstração.

Critérios de avaliação

Item Peso
Navegação multi-ecrã 15%
Consumir API correctamente 20%
Estados de ecrã (loading/erro/vazio/dados) 15%
Gestão de estado 15%
Armazenamento local 15%
UI/UX cuidada 10%
Organização do código 5%
README + Git 5%

Reflexão

Em meia página: o que foi mais diferente de programar web? Que parte (UI, API, estado, persistência) foi mais difícil? Que funcionalidade acrescentarias se tivesses mais tempo?