Skip to main content

dart_tool_kit 0.3.0 copy "dart_tool_kit: ^0.3.0" to clipboard
dart_tool_kit: ^0.3.0 copied to clipboard

A comprehensive collection of extension methods for Flutter and Dart to boost your productivity with everyday tasks.

example/main.dart

// ignore_for_file: avoid_print

import 'dart:convert';

import 'package:dart_tool_kit/dart_tool_kit.dart';
import 'package:flutter/material.dart';

void main() {
  // Null safety
  String? nickname;
  print(nickname.isNullOrBlank); // true
  print(nickname.orElse('Guest')); // Guest

  // Safe JSON parsing
  final json = jsonDecode('{"age": "25", "user": {"city": "Karachi"}}')
      as Map<String, dynamic>;
  print(json.getInt('age')); // 25
  print(json.getIntOr('missing', 0)); // 0
  print(json.getPath('user.city')); // Karachi

  // Validators
  final emailValidator = Validators.compose([
    Validators.required(),
    Validators.email(),
  ]);
  print(emailValidator('not-an-email')); // Please enter a valid email address

  // Duration
  print(const Duration(seconds: 3725).toClock()); // 01:02:05
  print(90.seconds.toReadable(longForm: true)); // 1 minute 30 seconds

  // DateTime
  final date = DateTime(2025, 1, 31);
  print(date.toReadableFormat); // Friday, 31 Jan 2025
  print(date.addMonths(1).toIsoDate); // 2025-02-28

  // String
  print('hello world'.toSnakeCase()); // hello_world
  print('John Doe'.getInitials()); // JD

  // Numbers and collections
  print(1000.toCurrency(decimalDigits: 2)); // $1,000.00
  print([1, 2, 3, 4, 5].chunked(2)); // [[1, 2], [3, 4], [5]]

  runApp(const ExampleApp());
}

class ExampleApp extends StatelessWidget {
  const ExampleApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Builder(
        builder: (context) => Scaffold(
          body: Padding(
            padding: 16.allPadding,
            child: Column(
              children: [
                Text('Width: ${context.screenWidth}'),
                Text('Tablet: ${context.isTablet.toYesNo()}'),
                Container(
                  height: 40,
                  decoration: BoxDecoration(
                    color: '#FF5733'.toColor(),
                    borderRadius: 12.circularRadius,
                  ),
                ),
              ].separatedBy(16.verticalSpace),
            ),
          ),
          floatingActionButton: FloatingActionButton(
            onPressed: () => context.showSnackBar('Saved!'),
            child: const Icon(Icons.check),
          ),
        ),
      ),
    );
  }
}
5
likes
160
points
70
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A comprehensive collection of extension methods for Flutter and Dart to boost your productivity with everyday tasks.

Repository (GitHub)
View/report issues

Topics

#extensions #utils #string #datetime #productivity

License

MIT (license)

Dependencies

crypto, flutter, intl

More

Packages that depend on dart_tool_kit