chalona_api 1.0.2
chalona_api: ^1.0.2 copied to clipboard
Framework Chalona para desarrollo de aplicaciones Flutter con servicios en background, notificaciones, base de datos y comunicación en tiempo real.
Chalona API Framework #
Un framework completo para desarrollo de aplicaciones Flutter con servicios en background, notificaciones, base de datos y comunicación en tiempo real.
🚀 Características #
- ✅ Servicios en Background - Ejecuta tareas en segundo plano
- ✅ Notificaciones Locales - Sistema de notificaciones integrado
- ✅ Base de Datos - Soporte para SQL Server, PostgreSQL y SQLite
- ✅ WebSocket - Comunicación en tiempo real
- ✅ Sesiones - Manejo de autenticación y sesiones
- ✅ Storage - Almacenamiento local persistente
- ✅ Generador de Servicios - Herramientas para generar servicios automáticamente
🏗️ Estructura del Proyecto #
api/
├── lib/
│ ├── core/ # Framework base
│ │ ├── db.dart # Abstracción de base de datos
│ │ ├── http.dart # Cliente HTTP
│ │ └── types.dart # Sistema de tipos
│ │
│ ├── ecf/ # Facturación Electrónica
│ │ ├── dgii.dart # Integración DGII
│ │ └── ecf.dart # Lógica de negocio
│ │
│ └── services/ # Servicios adicionales
│
├── docs/
│ ├── core/ # Documentación del framework
│ ├── ecf/ # Documentación de ECF
│ └── android/ # Guías de Android
│
└── scripts/ # Scripts de utilidad
└── android/ # Scripts específicos Android
📦 Instalación #
Agrega esto a tu pubspec.yaml
:
dependencies:
chalona_api: ^0.0.174
Luego ejecuta:
flutter pub get
🎯 Uso Básico #
1. Crear una Aplicación Chalona #
import 'package:chalona_api/android-components.dart';
class MiApp extends ChalonaAndroidApp<MiSession> {
MiApp() : super(
name: 'Mi App',
title: 'Mi Aplicación',
host: 'https://mi-servidor.com',
session: MiSession.builder(),
routes: {
'/home': (context) => HomePage(),
},
);
}
final app = MiApp();
2. Crear un Servicio en Background #
import 'package:chalona_api/core/service.dart';
@ChalonaMainService(
title: 'Mi Servicio',
description: 'Servicio que procesa datos en background',
)
class MiServicio extends ChalonaService {
@override
String get name => 'MiServicio';
@override
Future<void> start() async {
// Configurar callbacks
onStart(() {
notifyState(detail: 'Servicio iniciado');
});
// Lógica del servicio
while (active) {
await procesarDatos();
await Future.delayed(Duration(seconds: 10));
}
}
Future<void> procesarDatos() async {
// Tu lógica aquí
notifyState(detail: 'Procesando datos...');
}
}
3. Generar Servicio Automáticamente #
dart bin/generate_service.dart
4. Conectar con Base de Datos #
// SQL Server
final db = ChalonaMSQLConnection(
host: 'mssql://user:pass@server:1433/database'
);
// PostgreSQL
final db = ChalonaPsqlConnection(
host: 'postgres://user:pass@server:5432/database'
);
// Ejecutar consulta
final result = await db.request('SELECT * FROM tabla');
5. Comunicación WebSocket #
final socket = ChalonaSocketService();
// Escuchar eventos
socket.onNotifyState((data) {
print('Estado: ${data['detail']}');
});
// Enviar comandos
socket.start(); // Iniciar servicio
socket.stop(); // Detener servicio
🏗️ Arquitectura #
┌─────────────────────────────────────┐
│ ChalonaApp │
├─────────────────────────────────────┤
│ ┌─────────────┐ ┌─────────────────┐│
│ │ Session │ │ Background ││
│ │ Management │ │ Service ││
│ └─────────────┘ └─────────────────┘│
├─────────────────────────────────────┤
│ ┌─────────────┐ ┌─────────────────┐│
│ │ Database │ │ WebSocket ││
│ │ Connections │ │ Communication ││
│ └─────────────┘ └─────────────────┘│
├─────────────────────────────────────┤
│ ┌─────────────┐ ┌─────────────────┐│
│ │Local Storage│ │ Notifications ││
│ │ System │ │ System ││
│ └─────────────┘ └─────────────────┘│
└─────────────────────────────────────┘
📚 Documentación Completa #
- Guía de Servicios
- Base de Datos
- WebSocket
- Notificaciones
- Ejemplos
🤝 Contribuir #
- Fork el proyecto
- Crea tu rama de feature (
git checkout -b feature/AmazingFeature
) - Commit tus cambios (
git commit -m 'Add some AmazingFeature'
) - Push a la rama (
git push origin feature/AmazingFeature
) - Abre un Pull Request
📄 Licencia #
Este proyecto está bajo la Licencia MIT - ver el archivo LICENSE para detalles.
🙏 Agradecimientos #
- Flutter Team por el excelente framework
- Comunidad Dart por las librerías utilizadas
Desarrollado con ❤️ por [Tu Nombre]
🛠️ Desarrollo #
Prerrequisitos #
- Flutter SDK ≥ 3.0.0
- Dart SDK ≥ 3.0.0
- Android Studio (para desarrollo Android)
Configuración del Entorno #
- Instalar Flutter y Dart
- Configurar variables de entorno
- Instalar extensiones de IDE
Pruebas #
# Ejecutar todas las pruebas
flutter test
# Ejecutar pruebas con cobertura
flutter test --coverage
🤝 Contribución #
- Fork el proyecto
- Crear una rama feature (
git checkout -b feature/amazing_feature
) - Commit los cambios (
git commit -m 'feat: Add amazing_feature'
) - Push a la rama (
git push origin feature/amazing_feature
) - Abrir un Pull Request
📝 Convenciones #
Commits #
Seguimos Conventional Commits:
feat:
Nueva funcionalidadfix:
Corrección de bugdocs:
Cambios en documentaciónrefactor:
Refactorización de códigotest:
Añadir o modificar tests
Código #
- Usar
dart format
antes de commit - Seguir Effective Dart
- Mantener cobertura de tests > 80%
📞 Soporte #
Para soporte y consultas:
- Revisar la documentación
- Abrir un issue
- Contactar al equipo de desarrollo
Versión: 1.0.0 Última actualización: Diciembre 2024