chalona_api 1.0.2 copy "chalona_api: ^1.0.2" to clipboard
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 #

  1. Fork el proyecto
  2. Crea tu rama de feature (git checkout -b feature/AmazingFeature)
  3. Commit tus cambios (git commit -m 'Add some AmazingFeature')
  4. Push a la rama (git push origin feature/AmazingFeature)
  5. 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 #

  1. Instalar Flutter y Dart
  2. Configurar variables de entorno
  3. Instalar extensiones de IDE

Pruebas #

# Ejecutar todas las pruebas
flutter test

# Ejecutar pruebas con cobertura
flutter test --coverage

🤝 Contribución #

  1. Fork el proyecto
  2. Crear una rama feature (git checkout -b feature/amazing_feature)
  3. Commit los cambios (git commit -m 'feat: Add amazing_feature')
  4. Push a la rama (git push origin feature/amazing_feature)
  5. Abrir un Pull Request

📝 Convenciones #

Commits #

Seguimos Conventional Commits:

  • feat: Nueva funcionalidad
  • fix: Corrección de bug
  • docs: Cambios en documentación
  • refactor: Refactorización de código
  • test: 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:

  1. Revisar la documentación
  2. Abrir un issue
  3. Contactar al equipo de desarrollo

Versión: 1.0.0 Última actualización: Diciembre 2024