Um aplicativo de encontros completo desenvolvido com Flutter e Dart, utilizando o Firebase como backend para funcionalidades em tempo real.
O aplicativo possui um fluxo de usuário robusto e diversas funcionalidades essenciais:
-
📱 Autenticação de Usuários:
- Cadastro e Login utilizando E-mail e Senha.
- Integração completa com o Firebase Authentication.
- Sistema de logout seguro que limpa a pilha de navegação.
-
👤 Gestão de Perfis:
- Criação de Perfil: Novos usuários são direcionados para uma tela para completar o perfil com informações essenciais.
- Edição de Perfil: Usuários existentes podem acessar e editar suas informações a qualquer momento.
- Foto de Perfil: Permite ao usuário tirar uma foto com a câmera e a salva localmente no dispositivo para persistência.
- Dados Salvos: Nome, sobrenome, data de nascimento, orientação sexual, interesses e foto.
-
❤️ Tela de Matches Dinâmica (
MatchScreen):- Carrega perfis de usuários diretamente do Cloud Firestore.
- Interface de cards com efeito de empilhamento e animações de swipe (arrastar para os lados).
- Sistema de Filtro: Filtra os perfis exibidos com base na preferência de idade que o usuário salva na tela de configurações.
-
💬 Sistema de Match e Chat em Tempo Real:
- Lógica de "Like": Ao curtir um perfil, uma sala de chat é criada instantaneamente.
- Lista de Conversas: A tela de chats exibe todas as conversas ativas, carregadas em tempo real do Firestore.
- Chat Individual: Tela de conversa funcional que salva e exibe mensagens em tempo real.
- Opções de Interação: O usuário pode Remover o Match ou Bloquear (ação fictícia), o que apaga a conversa e o "like" do banco de dados.
-
⚙️ Configurações e Preferências:
- Tela de Configurações: Menu com acesso a várias funcionalidades, incluindo Logout.
- Tela de Preferências: Permite ao usuário definir a faixa de idade desejada para os matches, salvando essa preferência no Firestore.
-
🔔 Notificações:
- Envia uma notificação local quando um "like" é registrado.
- Framework: Flutter
- Linguagem: Dart
- Backend (BaaS): Firebase
- Firebase Authentication: Para gestão de usuários.
- Cloud Firestore: Como banco de dados NoSQL em tempo real para perfis, likes, chats e preferências.
- Principais Pacotes:
firebase_core,firebase_auth,cloud_firestoreimage_picker(para acesso à câmera)path_provider,shared_preferences(para armazenamento local da foto de perfil)flutter_local_notifications(para notificações)
Siga os passos abaixo para rodar o projeto localmente.
- Ter o Flutter SDK instalado.
- Ter o Firebase CLI instalado e logado.
- Crie um novo projeto no Firebase Console.
- No seu projeto Firebase, vá para a seção Authentication > Sign-in method e ative o provedor "E-mail/senha".
- Vá para a seção Cloud Firestore e clique em "Criar banco de dados". Inicie em Modo de Teste.
- Vá para a seção Storage e clique em "Primeiros passos" para ativar o armazenamento de arquivos.
- Na raiz do seu projeto Flutter no terminal, rode o comando
flutterfire configurepara conectar seu app ao projeto Firebase. Isso criará o arquivolib/firebase_options.dart.
# Clone o repositório
git clone [https://github.com/renanbreier/DatingApp-V2-FlutterProject.git](https://github.com/renanbreier/DatingApp-V2-FlutterProject.git)
# Entre no diretório do projeto
cd DatingApp-V2-FlutterProject
# Instale as dependências
flutter pub get# Rode o aplicativo em um emulador ou dispositivo físico
flutter runImportante: Ao rodar pela primeira vez, a MatchScreen pode apresentar um erro no Debug Console pedindo para criar um índice do Firestore. Apenas clique no link fornecido no log de erro, crie o índice no console do Firebase e reinicie o app após alguns minutos.