Aplicativo em flutter para Android e IOS em desenvolvimento . A idéia surgiu a partir de uma dificuldade que eu e muitos peladeiros temos para decidir quem vai escolher os times e, quando decide, o time fica totalmente desequilibrado. Outro impecílio que também perambula pelos gramados é a substituição dos jogadores, normalmente feito por tempo ou por gol sofrido, nesse app você vai poder configurar a partida para facilitar as substituições.
O aplicativo tem como objetivo principal para sua primeira versão sortear de forma equilibrada, por posição, por overall e aleatória times de futebol na modalidades society ou futsal.
- Sortear time de forma equilibrada.
- Sortear times de forma Aleatória.
- Sortear times por posição.
- Sortear times por overall do jogador.
- Cadastrar jogadores.
- Cadastrar partida.
- Interagir com a partida em andamento.
- Salvar automaticamente os times sorteados após a partida.
- Salvar automaticamente as partidas disputadas.
- Mostrar histórico dde jogos.
- Cadastrar configurações da partida.
- Dar suporte apenas para o modo retrado.
- Funciona offline.
- SO Android e IOS.
- Dar suporte pra temas e cores diferentes.
O projeto usa como modelo de arquitetura o padrão MVVM (model-view-viewmodel).
model:
É o modelo de domínio ou o modelo que representa os dados do backend. Modelos guardam informação mas não lidam com comportamento. Eles não formatam os dados e nem influenciam como eles serão apresentados.view:
Essa é única parte da aplicação que o usuário interage diretamente. Todos os componentes visuais ficam nessa camada. Todos os eventos que aqui acontecem são enviados diretamente para o view model. A View não tem a responsabilidade de processar dados e muito menos lidar com estados.viewmodel:
Camada que age como um intermediário entre a view e o model, processa os eventos antes de apresentar para a view. Também pode fornecer métodos para lidar com os estados da view.
- toda e qualquer imagem adicionada ao projeto.
- toda e qualquer font de texto adicionada ao projeto.
- classes modelo do projeto, as que tem relação direta com o mundo real.
- camada para persistência de dados.
- camada compartilhada, toda e qualquer informação compartilhado no app, como classes e métodos úteis, mensagens de texto, themas, cores,etc.
- camada visual (view e viewmodel), camada de IU, interface do usuário e gerenciamento de estados.
- arquivos com o final
component
-> componentes visuais reaproveitáveis, como um botão por exemplo.- arquivos com o final
layout
-> estrutura base para compor um modelo de página.- arquivos com o final
section
-> agrupamento de componentes visuais formando uma seção com o intuito de ser reaproveitada.- arquivos com o final
view
-> representa as telas da aplicação.- arquivos com o final
widget
-> Widgets que foram encapsulados saindo do seu escopo principal, eles não serão reaproveitaveis até que se prove o contrário.