- Este projeto é um template para usar usar nos aplicativos do flutter Muitas coisas já foram configuradas. O Template vem com uma implementação básica do provider. O template vem com diversos comentários de documentação. Siga-os.
É aconselhável, por motivos de performance, que rodemos o app na versão desktop com o device preview ativo. Dessa forma, não precisaremos utilizar o emulador do Android Studio, tendo em vista que este tem consumo em demasia dos recursos da máquina. Flutter compila tanto para Linux quanto para Windows.
- Device Preview torna muito mais leve o desenvolvimento com o flutter. O flutter tem suporte para desktop, seja linux ou Windows. Com o Device Preview rodaremos o nosso app no desktop e as resoluções que serão aplicadas no projeto serão de mobile. Isso permite que possamos mudar as resouções dos dispositivos móveis de forma dinâmica. PROBLEMAS: Este método é problemático quando queremos utilizar bibliotecas que não têm suporte para windows, como o Firebase, Google Maps etc. Siga a documentação do Device Preview para implementá-la no projeto.
- Responsive Framework faz um auto scale do seu app. É extramamente útil porque com ele, não precisamos nos preocupar muito com a assertividade da nossa responsividade nos aplicativos.
- Provider é um gerenciador de estados para o flutter. É um pacote simples de gerenciamento, mas também poderosíssimo. Sua implementação é feita baseada em árvores. No caso, a implementação deve ser feita no topo da árvore e seus decendentes podem acessar de qualquer lugar do app. Alguns exemplos estão implementados no app. Documentação: https://pub.dev/packages/provider (a ser descontinuado, olhar para o Riverpod)
- Para lidar com necessidades sensíveis de usuário, por exemplo: "galeria, bluetooth, localização etc" é necessário que estes usuários deem a devida permissão, para isso use o Permission Handler, que vai gerenciar toda a api de permissões do usuário. Documentação:https://pub.dev/packages/permission_handler
- Firebase é um conjunto de ferramentas para gerenciamento de pequenos serviços de back end, como Storage, Notifications, Database etc. Este pacote é recomendadíssimo pois sua instalação é fácil e seu uso é extenso.
- INTL é usado para internacionalização, conversão de horários, moedas etc. O melhor pacote quando se trata de converter e usar valores monetários etc.
- Necessário para apontar links na web externamente.
- Path provider dá acesso às apis de caminho do os. File system, folders etc.
- API usada para selecionar arquivos que estão nos caminhos do OS
- Use este package para renderizar imagens SVG em seu projeto.
- API Usada para selecionar arquivos, porém com o refinamento de imagens
- Lotties são arquivos personalizados de animações para usar no app.
- Cliente HTTP usado para fazer requisições HTTP. Dio é o melhor cliente http para flutter, extremamente fácil de usar
- API de logger, bom para capturar logs no flutter.
O projeto já vem com um padrão de pastas pré definido. É aconselhável que se siga esse padrão para melhor manutenção de código e para padronização do projeto.
- Esta pasta guarda todos os arquivos de assets do projeto. Coloque aqui todos os arquivos
externos do projeto como: imagens, ícones, jsons pré carregados etc...
##Uso do Gerenciador de estado e estrutura de arquivos e pastas
- Todas as telas devem seguir esse padrão:
-- NAME_OF_THE_SCREEN_FOLDER
-- name_of_the_screen_screen.dart
-- **_controller.dart
-- **_repository.dart
Onde o nome da tela deve ser o prefixo para o controller e o repositório.
##Componentes
- Os componentes são de dois tipos: os locais e os globais. Os locais são componentes que pertencem a determinada tela ou outro componente, estes não são compartilhados por todo o projeto, ser vido apenas para um propósito local. Já os componentes globais são aqueles que são compartilhados por todo o app, podendo ser reutilizado em qualquer tela ou outro componente. Esses componentes devem ficar numa pasta chamada "shared".
- O projeto vem com diversos componentes prontos. Estes componentes visam facilitar ainda mais a criação dos aplicativos por meio de regras já aplicadas. Vide referências.
Baixe o template, renomeie suas dependências de caminho Dê um flutter pub get para pegar as dependências.
Diversos comentários estão feitos no app, você deve mudar o nome do app nos seguintes arquivos:
- Pubspec.yaml
- AndroidManifest nível app
- AndroidManifest nível projeto
- Build.gradle nível app