Escolha uma API de seu interesse e monte um app, em Dart/Flutter, com base em processamento de dados obtidos a partir dessa API.
Você pode obter os conhecimentos para essa tarefa seguindo essas receitas simples.
Você tem total liberdade de escolha com respeito à API e ao design da interface gráfica. No entanto, você deve respeitar algumas restrições, descritas mais adiante.
O principal objetivo desta tarefa é você utilizar Padrões de Projeto no desenvolvimento do app. A ideia é você utilizar vários padrões já implementados em vez de você mesmo implementar os padrões (isso já foi coberto nas aulas das 2 primeiras unidades).
Em especial, você precisará escolher uma biblioteca para a gerência de estados (siga as receitas e você vai entender melhor o que é isso). Cada grupo deve escolher uma biblioteca diferente, e há bem 20 opções disponíveis. Você não pode optar pela solução nativa de gerência de estados usada nas receitas. Escolhendo uma biblioteca de gerência de estados e implementando em Dart/Flutter, você estará treinando o uso de diversos Padrões de Projeto.
seu app final não pode ter lógica de negócios misturada com interface do usuário. A escolha de uma biblioteca para gerência de estados vai ajudar nesse sentido, mas esteja atento!
não faça uma interface gráfica xibata. Estilize seus componentes gráficos e deixe-os organizados.
atente para o contraste entre a cor da fonte de seus textos e a cor do plano de fundo do componente que exibe o texto. Não use cor de fonte escura sobre plano de fundo escuro, por exemplo, ou cor de fonte clara sobre plano de fundo claro. Se for usar texto sobre imagens, tome cuidado para que o texto fique legível.
use imagens de alguma forma em alguma das páginas. Tente escolher uma API que trabalhe com links para imagens como parte das respostas a algumas requisições.
use componentes de formulários em ao menos uma de suas páginas. A maioria das API's oferece parametrização de alguma forma - quantidade máxima de itens retornados na pesquisa, chave de pesquisa por título etc. Você pode permitir que o usuário entre com um ou mais desses parâmetros. Não precisa fazer aquele formulário clássico de criação etc.
Implemente ao menos 3 "páginas" diferentes no seu app (a principal e mais 2, pelo menos).
Não use a API já utilizada nas receitas em hipótese alguma.
Quer ousar? O ChatGPT tem uma api para desenvolvedores, e há uma biblioteca dart para acesso a essa API: https://github.com/anasfik/openai. Que tal você pensar em algum app que utilize essa API? Note que essa biblioteca dart é mantida pela comunidade, e não pela empresa. No entanto, é uma biblioteca recomendada no próprio site do ChatGPT, então deve funcionar bem.
Se não quiser esquentar a cabeça com problemas de configração de ambiente de programação, você pode implementar seu projeto aqui, online, com configuração zero e tudo salvo nas nuvens.
Apresentação rápida do app em sala de aula, ao final do semestre. Presença obrigatória de todos os componentes.
Implementação respeitando todas as especificações e restrições descritas neste documento.
Implementação contínua - nada de projeto feito do dia para a noite. A prestação de contas do andamento das implementações deve ser realizado em sala de aula, ocasião que pode ser usada, também, para programação em si, direcionamento dos trabalhos e elucidação de dúvidas.
Implementação participativa - todos os integrantes devem estar a par da implementação do app. Um integrante que não souber responder questões sobre a implementação durante a apresentação ou que não comparecer às aulas de acompanhamento baixa a nota do grupo inteiro.