fpd_string_tools

Flutter Pilot - String Tools - Utilidades avanzadas para manipulación de strings en Dart/Flutter.

🚀 Características

📝 Conversiones de Case

  • lowercase: Convierte a minúsculas
  • uppercase: Convierte a mayúsculas
  • camelCase: Convierte a camelCase
  • capitalCase: Convierte a Capital Case
  • constantCase: Convierte a CONSTANT_CASE
  • dotCase: Convierte a dot.case
  • headerCase: Convierte a Header-Case
  • noCase: Convierte a no-case
  • paramCase: Convierte a param-case
  • pascalCase: Convierte a PascalCase
  • pathCase: Convierte a path/case
  • sentenceCase: Convierte a sentence case
  • snakeCase: Convierte a snake_case
  • mockingCase: Convierte a MoCkInG cAsE

🔧 Utilidades Adicionales

  • truncate: Trunca strings con ellipsis
  • isPalindrome: Verifica si es palíndromo
  • reverse: Invierte un string
  • wordCount: Cuenta palabras
  • charCount: Cuenta caracteres (sin espacios)
  • isAlpha: Verifica si solo contiene letras
  • isNumeric: Verifica si solo contiene números
  • isAlphanumeric: Verifica si contiene letras y números
  • removeDuplicates: Remueve caracteres duplicados
  • normalizeSpaces: Normaliza espacios
  • toSlug: Genera slugs URL-friendly
  • capitalizeSentences: Capitaliza oraciones
  • toTitle: Convierte a título

📦 Instalación

Agrega la dependencia a tu pubspec.yaml:

dependencies:
  fpd_string_tools: ^1.0.0

Luego ejecuta:

dart pub get

🎯 Uso

Importar el paquete

import 'package:fpd_string_tools/fpd_string_tools.dart';

Conversiones de Case

const text = 'lorem ipsum dolor sit amet';

// Conversiones básicas
StringCaseConverter.lowercase(text);    // "lorem ipsum dolor sit amet"
StringCaseConverter.uppercase(text);    // "LOREM IPSUM DOLOR SIT AMET"
StringCaseConverter.camelCase(text);    // "loremIpsumDolorSitAmet"
StringCaseConverter.pascalCase(text);   // "LoremIpsumDolorSitAmet"
StringCaseConverter.snakeCase(text);    // "lorem_ipsum_dolor_sit_amet"
StringCaseConverter.paramCase(text);    // "lorem-ipsum-dolor-sit-amet"

// Conversiones especiales
StringCaseConverter.constantCase(text); // "LOREM_IPSUM_DOLOR_SIT_AMET"
StringCaseConverter.dotCase(text);      // "lorem.ipsum.dolor.sit.amet"
StringCaseConverter.pathCase(text);     // "lorem/ipsum/dolor/sit/amet"
StringCaseConverter.mockingCase(text);  // "LoReM iPsUm DoLoR SiT AmEt"

Utilidades de Strings

// Truncar texto
StringUtils.truncate('Texto muy largo', 10); // "Texto muy..."

// Verificar palíndromo
StringUtils.isPalindrome('racecar'); // true

// Invertir string
StringUtils.reverse('hello'); // "olleh"

// Contar palabras y caracteres
StringUtils.wordCount('hello world'); // 2
StringUtils.charCount('hello world'); // 10

// Validaciones
StringUtils.isAlpha('hello');        // true
StringUtils.isNumeric('123');        // true
StringUtils.isAlphanumeric('abc123'); // true

// Manipulación
StringUtils.removeDuplicates('hello');           // "helo"
StringUtils.normalizeSpaces('hello   world');    // "hello world"
StringUtils.toSlug('Hello World!');              // "hello-world"
StringUtils.toTitle('the quick brown fox');      // "The Quick Brown Fox"

📋 Ejemplos Prácticos

Convertir nombres de variables

const variableName = 'user first name';

final camelCase = StringCaseConverter.camelCase(variableName);    // "userFirstName"
final snakeCase = StringCaseConverter.snakeCase(variableName);    // "user_first_name"
final pascalCase = StringCaseConverter.pascalCase(variableName);  // "UserFirstName"

Generar slugs para URLs

const title = 'My Awesome Blog Post!';
final slug = StringUtils.toSlug(title); // "my-awesome-blog-post"

Validar entrada de usuario

bool isValidUsername(String username) {
  return StringUtils.isAlphanumeric(username) && 
         username.length >= 3 && 
         username.length <= 20;
}

Formatear texto para mostrar

const rawText = 'hello. world! how are you?';
final formatted = StringUtils.capitalizeSentences(rawText); // "Hello. World! How are you?"

🧪 Testing

Ejecuta los tests:

dart test

📚 API Completa

StringCaseConverter

Método Descripción Ejemplo
lowercase() Convierte a minúsculas "LOREM""lorem"
uppercase() Convierte a mayúsculas "lorem""LOREM"
camelCase() Convierte a camelCase "lorem ipsum""loremIpsum"
capitalCase() Convierte a Capital Case "lorem ipsum""Lorem Ipsum"
constantCase() Convierte a CONSTANT_CASE "lorem ipsum""LOREM_IPSUM"
dotCase() Convierte a dot.case "lorem ipsum""lorem.ipsum"
headerCase() Convierte a Header-Case "lorem ipsum""Lorem-Ipsum"
noCase() Convierte a no-case "LOREM_IPSUM""lorem ipsum"
paramCase() Convierte a param-case "lorem ipsum""lorem-ipsum"
pascalCase() Convierte a PascalCase "lorem ipsum""LoremIpsum"
pathCase() Convierte a path/case "lorem ipsum""lorem/ipsum"
sentenceCase() Convierte a sentence case "LOREM IPSUM""Lorem ipsum"
snakeCase() Convierte a snake_case "lorem ipsum""lorem_ipsum"
mockingCase() Convierte a MoCkInG cAsE "hello""HeLlO"

StringUtils

Método Descripción Ejemplo
truncate() Trunca con ellipsis "Hello World", 8"Hello..."
isPalindrome() Verifica palíndromo "racecar"true
reverse() Invierte string "hello""olleh"
wordCount() Cuenta palabras "hello world"2
charCount() Cuenta caracteres "hello world"10
isAlpha() Solo letras "hello"true
isNumeric() Solo números "123"true
isAlphanumeric() Letras y números "abc123"true
removeDuplicates() Remueve duplicados "hello""helo"
normalizeSpaces() Normaliza espacios "hello world""hello world"
toSlug() Genera slug "Hello World!""hello-world"
capitalizeSentences() Capitaliza oraciones "hello. world!""Hello. World!"
toTitle() Convierte a título "the quick fox""The Quick Fox"

🤝 Contribuir

Las contribuciones son bienvenidas! Por favor:

  1. Fork el repositorio
  2. Crea una rama para tu feature
  3. Commit tus cambios
  4. Push a la rama
  5. Abre un Pull Request

📄 Licencia

Este proyecto está bajo la Licencia MIT - ver el archivo LICENSE para más detalles.

🚀 Roadmap

  • Soporte para caracteres especiales y Unicode
  • Funciones de búsqueda y reemplazo avanzadas
  • Validación de emails y URLs
  • Funciones de hash y encriptación básica
  • Soporte para múltiples idiomas

Autor: Sebastián Larrauri
Email: dash@flutterpilot.dev
Web: flutterpilot.dev

Hecho con ❤️ para la comunidad Flutter/Dart

Libraries

fpd_string_tools
Flutter Pilot - String Tools - Utilidades avanzadas para manipulación de strings