O SyncDesk Mobile é o aplicativo para dispositivos móveis desenvolvido como parte integrante do meu Trabalho de Conclusão de Curso (TCC). Ele atua como o cliente mobile da plataforma SyncDesk, permitindo o gerenciamento ágil de chamados (tickets) de TI e o recebimento de notificações em tempo real.
Este aplicativo consome a API RESTful do SyncDesk (desenvolvida com Django REST Framework) e utiliza o Firebase Cloud Messaging para notificações via push.
- Autenticação Integrada: Login seguro para usuários da equipe de suporte e TI.
- Leitor de QR Code: Possibilidade de preencher informações de login (como o código da equipe) rapidamente utilizando a câmera do dispositivo via integração nativa.
- Gestão de Chamados (Tickets): Visualização detalhada e acompanhamento de status de chamados atribuídos e abertos.
- Notificações Push (Firebase): Alertas em tempo real sobre atualizações importantes e novos tickets.
- Armazenamento Offline: Persistência de preferências e cache de dados offline (
shared_preferences). - Design Premium: Interface de usuário construída com as heurísticas modernas de UI/UX, temas customizados e tipografia personalizada (
google_fonts).
O projeto adota o robusto padrão arquitetural MVVM (Model-View-ViewModel). Essa separação clara de responsabilidades facilita a manutenção, a legibilidade do código e o desenvolvimento escalável:
- Models: Representação fiel das entidades de negócio do backend (ex: Ticket, Usuário).
- Views: Interface interativa e responsiva em Flutter (Telas e Widgets).
- ViewModels: Gerenciadores de estado e lógica de negócio. Eles orquestram as requisições aos Services e atualizam as Views reativamente (através do
provider). - Services: Camada de infraestrutura e comunicação externa (Requisições HTTP, Firebase e persistência).
A aplicação foi desenvolvida utilizando tecnologias modernas e eficientes:
- Flutter & Dart: Framework principal para desenvolvimento híbrido e responsivo.
- Provider: Injeção de dependências e gerência de estado (ViewModel).
- HTTP: Cliente para consumo seguro da API do SyncDesk.
- Firebase (Core & Messaging): Nuvem para a gestão do envio e recebimento de notificações push.
- Shared Preferences: Solução rápida de chave-valor para armazenamento offline persistente.
- Mobile Scanner: Módulo de processamento de imagem para leitura de códigos de barras e QR Codes.
- Flutter Dotenv: Segurança e dinamicidade das variáveis de ambiente (
.envvs.env.production).
A organização do código-fonte (dentro da pasta lib/) reflete fielmente as diretrizes da arquitetura MVVM:
app.syncdesk/
├── android/ # Código nativo específico do Android
├── ios/ # Código nativo específico do iOS
├── lib/ # Código fonte em Dart (Flutter)
│ ├── main.dart # Ponto de entrada da aplicação
│ ├── models/ # Objetos e serialização JSON
│ ├── views/ # Telas, fragmentos e componentes visuais
│ ├── viewmodels/ # Lógicas de tela e integração de estado
│ ├── services/ # Clientes HTTP, Firebase e Local Storage
│ └── theme/ # Constantes visuais, paletas e tipografia
├── pubspec.yaml # Configuração de dependências
└── README.md # Esta documentação
Siga as etapas abaixo para clonar e rodar o projeto na sua máquina local de desenvolvimento:
- Ter o Flutter SDK instalado.
- Ter um emulador Android/iOS configurado, ou um smartphone físico conectado e com modo de depuração ativado.
- Back-end: Ter o ambiente da API SyncDesk rodando localmente (ou configurar para consumir a de produção
api.syncdesk.click).
-
Baixe e instale as dependências:
flutter pub get
-
Configure o Ambiente:
- Crie ou verifique o arquivo
.envna raiz do projeto. - Adicione a URL correta apontando para a sua instância do servidor.
- Crie ou verifique o arquivo
-
Compile e Inicie a aplicação:
flutter run
Este repositório isola um dos principais componentes de software desenvolvidos em decorrência do meu Trabalho de Conclusão de Curso (TCC).
Ele tem a função de materializar o referencial teórico da monografia através da construção de um sistema prático e de alto desempenho, focado em resolver problemas de chamados de TI através da mobilidade de smartphones. Demonstra-se aqui o consumo de APIs REST, padrões arquiteturais (MVVM), criptografia, usabilidade e infraestrutura Cloud.