Aplicación de mensajería en tiempo real desarrollada con Flutter y Firebase, que permite conversaciones privadas entre usuarios con autenticación segura, sincronización en tiempo real y notificaciones push mediante Firebase Cloud Messaging.
Chatcito es una aplicación móvil de mensajería instantánea desarrollada con Flutter y respaldada por Firebase, diseñada para ofrecer comunicación privada entre usuarios mediante conversaciones en tiempo real.
La aplicación integra autenticación mediante correo electrónico, almacenamiento de datos en Firebase Realtime Database, notificaciones push con Firebase Cloud Messaging (FCM), persistencia de preferencias del usuario y una interfaz moderna inspirada en aplicaciones como WhatsApp y Telegram.
- 🔐 Autenticación mediante correo electrónico y contraseña.
- 👤 Registro de usuarios.
- 💬 Chats privados uno a uno.
- ⚡ Sincronización de mensajes en tiempo real.
- 🔔 Notificaciones Push mediante Firebase Cloud Messaging.
- 📲 Banner de notificaciones dentro de la aplicación.
- 🌙 Tema claro y oscuro persistente.
- ✏️ Edición de mensajes enviados.
- 🗑️ Eliminación de mensajes.
- 📶 Indicador del estado de conexión.
- 🎨 Interfaz moderna basada en Material Design 3.
- 📱 Compatible con Android.
El proyecto sigue una arquitectura organizada por capas:
Presentation
│
▼
Domain
│
▼
Data
│
▼
Firebase
Se emplea Riverpod para la gestión de estado y Firebase como backend para autenticación, almacenamiento de datos y notificaciones.
| Tecnología | Uso |
|---|---|
| Flutter | Desarrollo de la aplicación |
| Dart | Lenguaje de programación |
| Firebase Authentication | Inicio de sesión |
| Firebase Realtime Database | Base de datos en tiempo real |
| Firebase Cloud Messaging | Notificaciones Push |
| Riverpod | Gestión del estado |
| Shared Preferences | Persistencia del tema |
| HTTP | Comunicación con FCM HTTP v1 |
| Material 3 | Diseño de interfaz |
lib/
│
├── data/
│ └── services/
│
├── domain/
│ └── models/
│
├── presentation/
│ ├── providers/
│ ├── theme/
│ ├── views/
│ └── widgets/
│
├── firebase_options.dart
└── main.dart
git clone https://github.com/Pa004/chatcito.gitEntrar al proyecto:
cd chatcitoflutter pub getGenerar nuevamente la configuración mediante FlutterFire:
flutterfire configureflutter runflutter analyzeEl proyecto utiliza los siguientes servicios de Firebase:
- Firebase Authentication
- Firebase Realtime Database
- Firebase Cloud Messaging (FCM)
- Registro de usuarios
- Inicio de sesión
- Cierre de sesión
- Conversaciones privadas
- Mensajes en tiempo real
- Edición de mensajes
- Eliminación de mensajes
- Ordenamiento cronológico
- Push Notifications
- Banner dentro de la aplicación
- Navegación directa al chat
- Tema claro
- Tema oscuro
- Persistencia del tema
- Animaciones
- Transiciones personalizadas
- firebase_core
- firebase_auth
- firebase_database
- firebase_messaging
- flutter_riverpod
- flutter_local_notifications
- googleapis_auth
- shared_preferences
- http
Las contribuciones son bienvenidas.
Si deseas colaborar:
- Haz un Fork del proyecto.
- Crea una nueva rama.
git checkout -b feature/nueva-funcionalidad-
Realiza los cambios.
-
Haz commit.
git commit -m "Agregar nueva funcionalidad"- Envía los cambios.
git push origin feature/nueva-funcionalidad- Abre un Pull Request.
Pablo Domínguez
Este proyecto se distribuye únicamente con fines académicos.
Desarrollado utilizando Flutter y Firebase.