flutter_crud_esquemas_dynamicos_web 3.0.0
flutter_crud_esquemas_dynamicos_web: ^3.0.0 copied to clipboard
A Flutter package for creating dynamic CRUD forms with customizable schemas. Build flexible, data-driven forms with BLoC state management. Web only.
flutter_crud_esquemas_dynamicos_web #
Un paquete Flutter para crear formularios CRUD dinámicos con esquemas personalizables. Construye formularios flexibles y orientados a datos con gestión de estado BLoC. Solo para Web.
Características #
- Formularios CRUD dinámicos con esquemas personalizables
- Gestión de estado con BLoC (flutter_bloc)
- Constructor de formularios dinámicos con interfaz de asistente (wizard)
- Actualizaciones de campos en tiempo real
- Comunicación por sockets para notificaciones en tiempo real
- Navegación con GoRouter y soporte de breadcrumbs
- Ejecución de código eval para validaciones y acciones en runtime
- Configuración de visibilidad de columnas en tablas
- Selección de archivos y visualización de documentos
- Soporte de geolocalización
- Generación y visualización de PDFs
Instalación #
Agrega esto a tu pubspec.yaml:
dependencies:
flutter_crud_esquemas_dynamicos_web: ^2.0.0
Luego ejecuta:
flutter pub get
Uso Básico #
Configuración Inicial #
import 'package:flutter_crud_esquemas_dynamicos_web/init_config.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// Configurar la aplicación
await InitConfig.initialize(
clientId: 'tu_client_id',
clientSecret: 'tu_client_secret',
origenColeccion: 'tu_origen',
);
runApp(const MyApp());
}
Ejemplo de Formulario Dinámico #
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_crud_esquemas_dynamicos_web/bloc/dynamic_crud/dynamic_crud_bloc.dart';
class MiFormularioDinamico extends StatelessWidget {
const MiFormularioDinamico({super.key});
@override
Widget build(BuildContext context) {
return BlocProvider(
create: (context) => DynamicCrudBloc(),
child: BlocBuilder<DynamicCrudBloc, DynamicCrudState>(
builder: (context, state) {
// Tu implementación de UI aquí
return Container();
},
),
);
}
}
Estructura del Proyecto #
El paquete está organizado de la siguiente manera:
BLoCs Principales #
- DynamicCrudBloc: Gestiona operaciones CRUD dinámicas
- DynamicCrudProcessBloc: Procesa y ejecuta acciones sobre colecciones
- NavegacionBloc: Gestiona navegación y breadcrumbs
- WizardBloc: Controla el asistente de creación de formularios
- StreamDataBloc: Actualizaciones de campos en tiempo real
- ConfigColumnaBloc: Configuración de visibilidad de columnas
Utilidades #
color_utils.dart: Conversión entre String y Colorutils_ui.dart: Funciones de ayuda para la interfazutils_esquema.dart: Manipulación de esquemastablas_utils.dart: Utilidades para tablas
Rutas Disponibles #
El paquete utiliza GoRouter con las siguientes rutas predefinidas:
/login- Autenticación/inicio- Dashboard principal/datosColeccion- Vista de tabla/fichaColeccion- Vista de formulario detalle/wizard- Asistente de creación de formularios/adminFormularios- Administración de formularios/adminEsquemas- Administración de esquemas/adminGrupos- Administración de grupos
Sistema de Formularios Dinámicos #
Los formularios se construyen dinámicamente usando modelos de widgets:
widget_model.dart- Modelo basedata_widget_model.dart- Propiedades de campos del esquemarow_widget_model.dart- Layout horizontalcolumn_widget_model.dart- Layout verticalwrap_widget_model.dart- Layout adaptativo
Requisitos #
- Flutter >= 3.22.0
- Dart SDK >= 3.9.2
- Solo plataforma Web
Dependencias Principales #
- flutter_bloc: ^9.1.1
- go_router: ^16.2.4
- equatable: ^2.0.7
- flutter_map: ^8.2.2
- syncfusion_flutter_pdfviewer: ^31.1.22
Licencia #
Este proyecto está licenciado bajo la Licencia Apache 2.0 - ver el archivo LICENSE para más detalles.
Copyright 2025 RobleSistemas