basicsetupdart 1.0.0+1
basicsetupdart: ^1.0.0+1 copied to clipboard
A comprehensive Flutter utility library providing essential functions for date operations, validations, and common tasks.
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:basicsetupdart/basic_utils.dart' as utils;
void main() {
runApp(const BasicUtilsExampleApp());
}
class BasicUtilsExampleApp extends StatelessWidget {
const BasicUtilsExampleApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Basic Utils Example',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: const ExampleHomePage(),
);
}
}
class ExampleHomePage extends StatefulWidget {
const ExampleHomePage({super.key});
@override
State<ExampleHomePage> createState() => _ExampleHomePageState();
}
class _ExampleHomePageState extends State<ExampleHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Basic Utils Example'),
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
),
body: SingleChildScrollView(
padding: const EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
_buildSection('Date Utils Examples', _buildDateExamples()),
const SizedBox(height: 20),
_buildSection('Validation Utils Examples', _buildValidationExamples()),
const SizedBox(height: 20),
_buildSection('String Utils Examples', _buildStringExamples()),
const SizedBox(height: 20),
_buildSection('Number Utils Examples', _buildNumberExamples()),
const SizedBox(height: 20),
_buildSection('File Utils Examples', _buildFileExamples()),
const SizedBox(height: 20),
_buildSection('Network Utils Examples', _buildNetworkExamples()),
],
),
),
);
}
Widget _buildSection(String title, Widget content) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
title,
style: const TextStyle(
fontSize: 20,
fontWeight: FontWeight.bold,
color: Colors.blue,
),
),
const SizedBox(height: 10),
content,
],
);
}
Widget _buildDateExamples() {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
_buildExample('Current DateTime', utils.DateUtils.getCurrentDateTime()),
_buildExample('Current Date (DD/MM/YYYY)', utils.DateUtils.getCurrentDateTime(format: 'dd/MM/yyyy')),
_buildExample('Date Difference (Days)',
utils.DateUtils.getDateDifference(
DateTime(2023, 1, 1),
DateTime(2023, 12, 31),
unit: 'days'
).toString()
),
_buildExample('Is Today', utils.DateUtils.isToday(DateTime.now()).toString()),
_buildExample('Is Leap Year 2024', utils.DateUtils.isLeapYear(2024).toString()),
_buildExample('Age from Birth Date',
'${utils.DateUtils.getAge(DateTime(1990, 5, 15))} years'
),
],
);
}
Widget _buildValidationExamples() {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
_buildExample('Valid Email', utils.ValidationUtils.checkValidEmail('test@example.com').toString()),
_buildExample('Valid URL', utils.ValidationUtils.checkValidUrl('https://www.google.com').toString()),
_buildExample('Valid PAN', utils.ValidationUtils.checkValidPanNumber('ABCDE1234F').toString()),
_buildExample('Valid GST', utils.ValidationUtils.checkValidGSTNumber('22ABCDE1234F1Z5').toString()),
_buildExample('Valid Indian Mobile', utils.ValidationUtils.checkValidIndianMobileNumber('9876543210').toString()),
_buildExample('Valid Password',
'${utils.ValidationUtils.checkValidPassword('MySecure123!')}'
),
_buildExample('Valid IFSC', utils.ValidationUtils.checkValidIFSCCode('SBIN0001234').toString()),
_buildExample('Valid UPI ID', utils.ValidationUtils.checkValidUPIId('user@paytm').toString()),
],
);
}
Widget _buildStringExamples() {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
_buildExample('Capitalize Words', utils.StringUtils.capitalizeWords('hello world')),
_buildExample('Camel Case', utils.StringUtils.toCamelCase('hello world example')),
_buildExample('Snake Case', utils.StringUtils.toSnakeCase('HelloWorldExample')),
_buildExample('Kebab Case', utils.StringUtils.toKebabCase('HelloWorldExample')),
_buildExample('Remove Whitespace', utils.StringUtils.removeWhitespace('hello world test')),
_buildExample('Is Palindrome', utils.StringUtils.isPalindrome('racecar').toString()),
_buildExample('Truncate', utils.StringUtils.truncate('This is a very long string', 15)),
_buildExample('Mask String', utils.StringUtils.maskString('1234567890', visibleStart: 2, visibleEnd: 2)),
_buildExample('Extract Numbers', utils.StringUtils.extractNumbers('Price is 100 and tax is 15').join(', ')),
_buildExample('Format Currency', utils.StringUtils.formatCurrency(12345.67)),
_buildExample('To Slug', utils.StringUtils.toSlug('Hello World! This is a test.')),
],
);
}
Widget _buildNumberExamples() {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
_buildExample('Format with Commas', utils.NumberUtils.formatWithCommas(1234567)),
_buildExample('Format Double with Commas', utils.NumberUtils.formatWithCommasDouble(1234567.89)),
_buildExample('Number to Words', utils.NumberUtils.numberToWords(1234)),
_buildExample('To Ordinal', utils.NumberUtils.toOrdinal(21)),
_buildExample('Is Even', utils.NumberUtils.isEven(42).toString()),
_buildExample('Is Prime', utils.NumberUtils.isPrime(17).toString()),
_buildExample('Factorial', utils.NumberUtils.factorial(5).toString()),
_buildExample('GCD', utils.NumberUtils.gcd(48, 18).toString()),
_buildExample('LCM', utils.NumberUtils.lcm(12, 18).toString()),
_buildExample('Calculate Percentage',
'${utils.NumberUtils.calculatePercentage(75, 100).toStringAsFixed(1)}%'
),
_buildExample('Simple Interest',
utils.NumberUtils.calculateSimpleInterest(10000, 0.05, 2).toStringAsFixed(2)
),
_buildExample('Temperature Conversion',
'${utils.NumberUtils.convertTemperature(32, 'fahrenheit', 'celsius').toStringAsFixed(1)}°C'
),
],
);
}
Widget _buildFileExamples() {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
_buildExample('File Extension', utils.FileUtils.getFileExtension('/path/to/file.txt')),
_buildExample('File Name', utils.FileUtils.getFileName('/path/to/file.txt')),
_buildExample('File Name without Extension', utils.FileUtils.getFileNameWithoutExtension('/path/to/file.txt')),
_buildExample('Directory Path', utils.FileUtils.getDirectoryPath('/path/to/file.txt')),
_buildExample('Is Image File', utils.FileUtils.isImageFile('image.jpg').toString()),
_buildExample('Is Video File', utils.FileUtils.isVideoFile('video.mp4').toString()),
_buildExample('Is Audio File', utils.FileUtils.isAudioFile('audio.mp3').toString()),
_buildExample('Is Document File', utils.FileUtils.isDocumentFile('document.pdf').toString()),
_buildExample('MIME Type', utils.FileUtils.getMimeType('image.png')),
_buildExample('Human Readable Size', utils.FileUtils.getHumanReadableFileSize(1024000)),
_buildExample('Sanitize File Name', utils.FileUtils.sanitizeFileName('file<>name?.txt')),
_buildExample('Unique File Name', utils.FileUtils.generateUniqueFileName('document.pdf', prefix: 'backup')),
],
);
}
Widget _buildNetworkExamples() {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
_buildExample('Valid IP Address', utils.NetworkUtils.isValidIPAddress('192.168.1.1').toString()),
_buildExample('Valid MAC Address', utils.NetworkUtils.isValidMACAddress('00:1B:44:11:3A:B7').toString()),
_buildExample('Extract Domain', utils.NetworkUtils.extractDomain('https://www.example.com/path') ?? 'null'),
_buildExample('Extract Protocol', utils.NetworkUtils.extractProtocol('https://www.example.com') ?? 'null'),
_buildExample('Is HTTPS', utils.NetworkUtils.isHttps('https://www.example.com').toString()),
_buildExample('Valid Email Domain', utils.NetworkUtils.isValidEmailDomain('example.com').toString()),
_buildExample('Default HTTP Port', utils.NetworkUtils.getDefaultPort('http').toString()),
_buildExample('Valid Port', utils.NetworkUtils.isValidPort(8080).toString()),
_buildExample('Is Well Known Port', utils.NetworkUtils.isWellKnownPort(80).toString()),
_buildExample('Success Status Code', utils.NetworkUtils.isSuccessStatusCode(200).toString()),
_buildExample('HTTP Status Info',
utils.NetworkUtils.parseHttpStatusCode(404)['category'] ?? 'Unknown'
),
_buildExample('Random IP', utils.NetworkUtils.generateRandomIPAddress()),
_buildExample('IP to Int', utils.NetworkUtils.ipToInt('192.168.1.1').toString()),
_buildExample('Int to IP', utils.NetworkUtils.intToIP(3232235777)),
],
);
}
Widget _buildExample(String label, String value) {
return Padding(
padding: const EdgeInsets.symmetric(vertical: 4.0),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SizedBox(
width: 120,
child: Text(
'$label:',
style: const TextStyle(fontWeight: FontWeight.w500),
),
),
Expanded(
child: Text(
value,
style: const TextStyle(fontFamily: 'monospace'),
),
),
],
),
);
}
}