Esse é o repositório para armazenar o que foi realizado no meu Trabalho de Conclusão de Curso(TCC) no curso de Bacharelado em Ciência da Computação pela Universade Federal de Uberlândia(UFU).
Aplicação de Padrões de Projeto e Conceitos Arquiteturais em Aplicações Flutter
No desenvolvimento dos primeiros softwares havia apenas uma preocupação primordial: que ele funcionasse. Porém, com o passar do tempo e os avanços e estudos na área de Engenharia de Software, tanto pelo mundo acadêmico quanto pelo mercado, passaram a ser desenvolvidas várias ferramentas, técnicas e modos de se fazer um bom software. O objetivo dessas, é o de facilitar a leitura do código e sua manutenção, de forma que o software consiga evoluir e atender a novas demandas exigidas.
Esse trabalho tem como objetivo estudar a aplicação de algumas dessas técnicas em aplicações construídas com o framework Flutter, de forma a mostrar como tanto o projeto de código quanto a arquitetura podem trazer benefícios para o software sendo contruído.
Assim, este trabalho apresenta um estudo feito dos princípios que regem a qualidade de um software e dos principais conceitos relacionados a arquitetura de software. Além disso, propõe-se a implementação de padrões de projeto em aplicações Flutter, mostrando o passo a passo e justificando as melhorias causadas no código. Ademais, apresenta-se a criação de duas propostas de arquitetura para aplicações Flutter baseadas nos estudos feitos em cima de Domain Driven Design, Clean Architecture e Hexagonal Architecture. Com isso, esse trabalho demonstra a aplicação de alguns padrões de projeto e traz uma visão geral sobre a aplicação de bons princípios de arquitetura de software em aplicações Flutter, mostrando o impacto que decisões arquiteturais podem trazer ao projeto.