Giter Club home page Giter Club logo

dw9_vakinha_burger_bloc's Introduction

Logo App Vakinha Burger

Vakinha Burger


Tópicos 📋


📖 Sobre

Projeto desenvolvido na Dart Week | 9ª Edição, um evento de lançamento para a Academia do Flutter (ADF), do Rodrigo Rahman.

Nesse tempo de Pré-Acesso que obtive por ser um aluno da ADF (desde Fevereiro/2022), consegui entender com mais facilidade certos conceitos que ainda estavam confusos para mim, como a parte do BLoC.
Também, aprendi a base dos testes com o mesmo (este por conta própria, como forma de me desafiar a buscar mais conhecimento). Contei também com a ajuda da comunidade, que prontamente nos ajuda a trilhar o melhor caminho.


📱 Preview

Vakinha Burger Demonstração


📦 Assets


🛠️ Funcionalidades e Tecnologias Estudadas

  • Consulta da API usando o package Dio
  • BLoC como Gerenciamento de Estado
  • Fluxo de Login e Logout com a aplicação
  • Persistência de dados com o SharedPreferences
  • Pattern Matching com match
  • Extensions
  • Slivers
  • RefreshToken (módulo extra)
  • Providers
  • Mixins
  • Singleton
  • Teste de BLoC
  • Telas:
    • Splash (tela inicial do app para transição)
    • Home (tela principal do app, lista todos os produtos disponíveis e que serve de fluxo inicial para as demais telas descritas abaixo)
    • Login (onde possui o fluxo de login)
    • Register (onde possui o fluxo de cadastro)
    • ProductDetail (detalhe da página do produto, onde temos mais componentes descritivos a respeito do produto)
    • Order (onde podemos escolher a forma de pagamento e finalizar nosso pedido)


🤯 Desafios e Aprendizados ao longo do caminho

Como esse foi um "remake" de um Dart Week que já ocorreu (Vakinha Burger 6ª Edição com GetX), obtive um maior aproveitamento de código. Posso dizer com clareza que aprendi muito com o uso de um package para pattern matching, o match. O BLoC combinado com esse package e o ensinamento do Rodrigo Rahman, fica extremamente mais simples e divertido de enteder e desenvolver.
Aprendi também como começar os testes com bloc, algo que eu há tempos marquei para estudar, e finalmente consegui a introdução dos mesmos nesse DW, me desafiando (inclusivei irei incrementá-los).
Por mais que estes demoraram um tempo até eu entender o que de fato estava ocorrendo e o porquê não estavam passando à priori, foi extremamente satisfatório poder ler "2/2 tests passed(100%)".
Espero estar sempre aprendendo novas tecnologias com o Rahman e a comunidade incrivel de Flutter!


🤔 Como usar

É necessário ter o Flutter instalado. Para configurar o ambiente de desenvolvimento na sua máquina:
https://flutter.dev/docs/get-started/install

O aplicativo consome os dados do backend desenvolvido pela comunidade ADF chamado json_rest_server:
https://pub.dev/packages/json_rest_server

- Clone o repositório:
$ git clone https://github.com/GabrielCR99/dw9_vakinha_burger_bloc dw9_vakinhar_burger_bloc

- Entre no diretório:
$ cd dw9_vakinhar_burger_bloc

- Instale as dependências:
$ flutter pub get

- Instale o json_rest_server
$ dart pub global activate json_rest_server

- Crie um diretório do backend utilizando o json_rest_server
$ json_rest_server create .\backend

- Entre no diretório:
$ cd backend

- Para inicializá-lo, execute o comando:
$ jrs run

- Em outro terminal, no diretório raiz do projeto, execute:
$ flutter run

💪 Como contribuir

- Gosto bastante de seguir a seguinte Style Guide de Commits 😊:
https://udacity.github.io/git-styleguide/

- Dê um fork no projeto 

- Cria uma nova branch com suas mudanças:
$ git checkout -b my-feature

- Salve suas mudanças e faça uma mensagem de commit message sobre suas alterações:
$ git commit -m "feat: My new feature"

- Envie suas mudanças:
$ git push origin my-feature

📝 Licença

Esse repositório está sobre a Licença MIT, e você pode vê-la no arquivo LICENSE para mais detalhes. 😉


Esse projeto foi desenvolvido com ❤️ por @Gabriel Roveri, com o instrutor @Rodrigo Rahman, no evento #DartWeek da Academia do Flutter.
Se isso te ajudou, dê uma ⭐, e contribua, isso irá me ajudar também 😉


Linkedin Badge

dw9_vakinha_burger_bloc's People

Contributors

gabrielcr99 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.