extension_dart 1.0.4 copy "extension_dart: ^1.0.4" to clipboard
extension_dart: ^1.0.4 copied to clipboard

A lightweight Dart extensions that simplify framework usage for elegant, effortless app development.

extension_dart #

pub package pub points GitHub Issues GitHub Forks GitHub Stars GitHub License

A lightweight Dart extensions that simplify framework usage for elegant, effortless app development.

Language: English | 中文

Platform Support #

Android iOS MacOS Web Linux Windows

Requirements #

  • Flutter >=3.0.0 <4.0.0
  • Dart: ^2.17.0
  • meta: ^1.8.0

Getting started #

Import

import 'package:extension_dart/extensions.dart';
import 'package:extension_dart/utils.dart';

Double #

  double value = 3.1415926;
  print(value.fixed(decimals: 3)); // 3.141
  print(value.fixed(decimals: 3, round: true)); // 3.142

Num #

  print((4783484).thousands()); // '4,783,484'
  int totalSeconds = 125;
  print(totalSeconds.timer()); // '02:05'

  double value = 0.5;
  String percent = value.percentage(fit: true); // '50%' (instead of '50.00%')

  double anotherValue = 0.501;
  String anotherPercent = anotherValue.percentage(); // '50.10%'

    /// Other units conversion methods
    /// (90).radians
    /// (90).degrees
    /// (90).fahrenheit
    /// (90).celsius
    /// (90).kilometers
    /// (90).miles
    /// (90).carats
    /// (90).ounces
    /// (90).caratsToGrams
    /// (90).ouncesToGrams

String #

  print("3.1415926".digits()); // 3.1415926

  print("4.56%".digits()); // 0.456

  print("-1.e3".digits()); // -1000.0

  print("hello world".toCamelCase()); // helloWorld
  print("HelloWorld".toSnakeCase()); // hello_world

  '12345'.chunks(2); // ['12', '34', '5']

  /// Other extension methods
  /// "qwerty".chunks(3); // ["qwe", "rty];
  /// 'Hello'.bytes() ;  // [72, 101, 108, 108, 111]
  /// "qwerty你好".bytesCount; // 10
  /// 'Hello'.bytesChunks(2) ;  // [[72, 101], [108, 108], [111]]
  /// "hello".capitalize(); // return Hello
  /// "{}".isJson 
  /// "?id=&search=".isQuery 
  /// "test@gmail.com".isEmail 
  /// "xxxxxxxx".isCreditCard 
  /// "dk9KK_ee83".isStrongPassword 

Map<String, T> #

  Map<String, dynamic> headers = {};
  final {"requestId": requestId, "silent": silent} = headers.destructure();

Iterable #

  final numbers = <int>[1, 2, 3, 5, 6, 7];
  var result = numbers.find((element) => element < 5); // 1
  result = numbers.find((element) => element > 5); // 6
  result = numbers.find((element) => element > 10); // null
  result = numbers.find((element) => element > 10, orElse: () => -1); // -1
  /// other api `findIndex` return index of target element, return -1 otherwise

  var numbers = [[1,2, [7,8]], [3,5]];
  print(numbers.flat()); // (1, 2, [7, 8], 3, 5)
  print(numbers.flat(depth: 2)); // (1, 2, 7, 8, 3, 5)

  ['a', 'aa', 'aaa'].sum((s) => s.length); // 6
  [1, 2, 3, 4].sum(); // 10
  
  /// Other similar methods
  [1, 2, 3, 4].max();  // 4
  [1, 2, 3, 4].min();  // 1
  [1, 2, 3, 4].average(); // 2.5
  [1, 2, 3, 4].chunks(3); // [[1, 2, 3], [4]]

Date #

  DateTime now = DateTime.now();

  print(now.isToday); // true
  print(now.timeOnly.toString()); // 11:56:23.647266
  print(now.addDays(1).dateOnly); // 2025/10/21

Time

final time = Time(15, 30);
print(time.toString()); // 15:30:00.000000

Utils

  print(Utils.isEmpty([])); // true
  print(Utils.fastUUID()); // 8c3acae0-fd12-4061-b714-119095c6ddda
  print(Utils.unique([3,7,8,9], [1,2,3,9])); // [3,7,8,9,1,2]
  print(Utils.pickup({"kk": {"pp": 3}}), "pp"); // [3]
  /// Other similar methods
  /// Utils.areListsEqual(list1, list2);
  /// Utils.areMapsEqual(map1, map2)

Additional information #

Feel free to file an issue if you have any problem.

1
likes
150
points
160
downloads

Publisher

unverified uploader

Weekly Downloads

A lightweight Dart extensions that simplify framework usage for elegant, effortless app development.

Repository (GitHub)
View/report issues

Topics

#dart-extension #extension #extensions #dart-extensions #utils

Documentation

API reference

License

MIT (license)

Dependencies

meta

More

Packages that depend on extension_dart