Flutter Utils Providers

A comprehensive Flutter utility package that provides a collection of helper functions for common development tasks including validation, data manipulation, file handling, permissions management, and more.

Features

  • Password Validation: Multi-level password security validation (low, medium, high)
  • Data Manipulation: Advanced map and list operations with deep merging capabilities
  • JSON Handling: Encoding/decoding utilities for complex JSON structures
  • File Operations: File picker integration and file handling utilities
  • Permissions: Simplified permission handling across platforms
  • Geographic Utilities: Coordinate and location-based helpers
  • Date/Time Functions: Comprehensive date formatting and manipulation
  • CUIT Validation: Argentine tax identification (CUIT/CUIL) validation
  • Mathematical Utilities: Extended math operations and calculations
  • Image Processing: Image picker and processing utilities

Installation

Add this to your package's pubspec.yaml file:

dependencies:
  flutter_utils_providers: ^1.0.0

Then run:

flutter pub get

Usage

Password Validation

Validate passwords with different security levels:

import 'package:flutter_utils_providers/flutter_utils_providers.dart';

// Low security: minimum 6 characters
bool isValid = FlutterUtilsProvider.validaPassword(
  NivelSeguridadPassword.bajo,
  'mypass123'
);

// Medium security: minimum 8 characters with letters and numbers
bool isValid = FlutterUtilsProvider.validaPassword(
  NivelSeguridadPassword.medio,
  'MyPassword123'
);

// High security: minimum 8 characters with uppercase, lowercase, numbers, and special characters
bool isValid = FlutterUtilsProvider.validaPassword(
  NivelSeguridadPassword.alto,
  'MyP@ssw0rd!'
);

Data Manipulation

Work with maps and lists efficiently:

// Deep merge two maps immutably
Map<String, dynamic> merged = FlutterUtilsProvider.deepMergeMapInmutable(
  {'key1': 'value1'},
  {'key2': 'value2'}
);

// Compare two lists
bool areEqual = FlutterUtilsProvider.compararListas(list1, list2);

// Create new map with schema validation
Map<String, dynamic> newMap = FlutterUtilsProvider.newMap(
  esquema: schemaMap,
  mapaOriginal: originalData,
  mapaActualizado: updatedData,
);

JSON Operations

Handle JSON encoding and decoding:

// Decode JSON safely
Map<String, dynamic> decoded = FlutterUtilsProvider.decodeMapJson(
  jsonString,
  'fieldName'
);

// Encode JSON
Map<String, dynamic> encoded = FlutterUtilsProvider.encodeMapJson(
  dataMap,
  keysToEncode
);

// Validate JSON string
bool isValid = FlutterUtilsProvider.isValidJson(jsonString);

File Operations

Access file and permission utilities:

import 'package:flutter_utils_providers/flutter_utils_archivos.dart';
import 'package:flutter_utils_providers/flutter_utils_permisos.dart';

// File operations through FlutterUtilsArchivos
// Permission handling through FlutterUtilsPermisos

Date Formatting

Format dates easily:

import 'package:flutter_utils_providers/flutter_utils_implementacion_func_fecha.dart';

// Use FlutterUtilsImplementacionFuncFecha for date operations

Geographic Utilities

Work with coordinates and locations:

import 'package:flutter_utils_providers/flutter_utils_implementacion_geo.dart';

// Access geographic calculation utilities

CUIT/CUIL Validation

Validate Argentine tax identification numbers:

import 'package:flutter_utils_providers/flutter_utils_implementacion_cuit.dart';

// Use FlutterUtilsImplementacionCuit for CUIT/CUIL validation

Additional Features

The package includes several implementation modules:

  • FlutterUtilsArchivos: File handling utilities
  • FlutterUtilsPermisos: Permission management
  • FlutterUtilsImplementacionFuncFecha: Date/time functions
  • FlutterUtilsImplementacionGeo: Geographic utilities
  • FlutterUtilsImplementacionCuit: CUIT/CUIL validation
  • FlutterUtilsImplementacionTransDestino: Data transformation utilities
  • FlutterUtilsProvidersMath: Mathematical operations

Requirements

  • Dart SDK: >=3.3.2 <4.0.0
  • Flutter: >=1.17.0

Dependencies

This package uses several well-maintained dependencies:

  • crypto for cryptographic operations
  • device_info_plus for device information
  • file_picker for file selection
  • image and image_picker for image handling
  • permission_handler for permissions
  • intl for internationalization
  • uuid for UUID generation

Contributing

Contributions are welcome! If you find a bug or want to add a feature:

  1. Check if an issue already exists
  2. Create a new issue describing your bug/feature
  3. Fork the repository
  4. Create your feature branch
  5. Submit a pull request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Issues and Feedback

Please file issues, bugs, or feature requests in our issue tracker.

Author

Developed and maintained by RobleSistemas.