Entenda o Desenvolvimento
Este post tem como objetivo mergulhar no projeto feito para a gestão de listas de compras para extensão universitária na UniFil.
Antes de começar um projeto é crucial haver uma discussão sobre quais tecnologias (tech stack) irão ser utilizadas para realizar o objetivo da melhor maneira possível, tendo isto em mente reunimos o grupo e acordamos que seguiríamos com o projeto em duas frentes principais: Laravel para a aplicação web e Flutter para a aplicação mobile, mas a escolha destes frameworks não foram por acaso... 2 grandes aspectos nos fizeram ter este ultimato:
- Familiaridade: através de uma reunião vimos que essas seriam as ferramentas que a maioria - em média - tem mais familiaridade e conforto em utilizar.
- Maturidade da Ferramenta: Para o mobile a escolha de flutter não é incomum já que o framework se expandiu drasticamente em 2022 confrontando grandes ferramentas como React Native que já fora um dia o rei supremo deste ecossistema (dentre outros como Xamarin, etc). Para a web o uso do Laravel pode parecer duvidoso para alguns, mas em suas últimas versões o framework se mostra como um ecossistema de open source e contribuições de diversos meios diferentes, hoje é tido como o maior ecossistema de um framework na comunidade de software livre, muito impulsionado também com a "volta da era sombria" do php que se rendeu à paradigmas modernos e se mostra como uma linguagem que promete consertar os erros cometidos pela mesma no passado.
Para manter o visual de uma aplicação moderna decidimos ir em busca de uma biblioteca que implementasse o conceito de SPA (single page application) em nosso framework de forma fácil e sem complicações. Por termos escolhido um framework com um ecossistema gigante essa busca não foi dificil, existem diversas opções para fazer isto em Laravel, uma delas seria o Inertia mas como este se limita à utilização de outro framework para o front end não seguimos a ideia. O escolhido da vez seria o Splade que além de implementar uma boa SPA também utiliza do próprio template engine do Laravel (o Blade) para criação de telas no front.
Como tocamos no assunto de front end... a beleza de um site está intrinsecamente relacionado ao tempo que um usuário passa nele e sua experiência, um site bonito cativa quem os acessa e gera uma sensação boa que desmotiva o mesmo de ficar ansioso para sair do seu site. Com isto em mente decidimos escolher uma biblioteca conhecida por seu foco em visual de qualidade e contemporaneo: o Tailwind, além de ser uma biblioteca com componentes que agradam os olhos, o seu uso é muito simples e eu diria até que mais fácil que sua concorrente direta (o Bootstrap).
Após o acordo da equipe fechamos a "Tech Stack" da seguinte maneira:
WEB:
- Laravel 10
- PHP 8.2
- Splade (biblioteca SPA)
- Tailwind (front-end)
Mobile:
- Flutter 3
- Dart 2
Vamos começar explorando os componentes-chave deste projeto.
Laravel 10 e PHP 8.2
O Laravel, um dos frameworks PHP mais populares, é a base deste projeto. Com a versão 10, podemos aproveitar todos os recursos mais recentes e poderosos para desenvolver nossa aplicação de gerenciamento de listas de compras de forma eficiente. O PHP 8.2 traz melhorias significativas em termos de desempenho e segurança, tornando nosso aplicativo mais robusto.
Splade: Uma Biblioteca SPA para Laravel
Para criar uma experiência de usuário fluida, estamos incorporando o Splade, uma biblioteca Single Page Application (SPA) específica para Laravel. Isso nos permite criar interfaces de usuário altamente interativas e responsivas, tornando a experiência do usuário mais agradável.
Tailwind CSS
O Tailwind CSS é a escolha perfeita para o front-end deste projeto. Com sua abordagem de "utility-first", podemos criar designs elegantes e eficientes com facilidade. Ele se integra perfeitamente com o Laravel, permitindo que criemos uma interface de usuário atraente e altamente personalizável.
Flutter e Dart
Para atender aos usuários em movimento, também estamos desenvolvendo um aplicativo móvel para Android e iOS. Usando o Flutter e o Dart, podemos criar um aplicativo móvel nativo com uma única base de código, economizando tempo e recursos.
Implementação da Classe Abstrata no Laravel
Uma das partes mais interessantes deste projeto é a implementação de uma classe abstrata no Laravel para gerenciamento de dados em um arquivo JSON. Essa classe abstrata fornecerá um conjunto de métodos e funcionalidades para facilitar a manipulação de dados em nosso aplicativo, tornando-o mais modular e escalável.
Ao combinar todas essas tecnologias, estamos criando uma solução completa para simplificar a gestão de listas de compras para extensão universitária. Os estudantes poderão criar, editar e compartilhar suas listas de compras de forma eficiente, tanto na web quanto em dispositivos móveis.
Remodelagem no DER
Por conta da utilização de um JSON como banco de dados não conseguimos implementar o DER que havia sido apresentado anteriormente neste blog. A nova alteração ficou da seguinte maneira:
Conclusão
Fizemos um vídeo demonstrativo de como está o nosso projeto até este momento: https://youtu.be/IqkpqaTtXJg
Comentários
Postar um comentário