speed_up 0.8.9 copy "speed_up: ^0.8.9" to clipboard
speed_up: ^0.8.9 copied to clipboard

Package to speed up your productivity.

speed_up #

pub package likes codecov style: lint Dart

Package to speed up your productivity.

Usage #

Object #

someObj.isNull;
someObj.isNotNull;

String extensions #

Check String is null or empty

'Some String'.isNullOrEmpty
'Some String'.isNotNullOrEmpty

Capitalization

'flutter'.capitalized; // 'Flutter'

'flutter is awesome'.titleCased; // 'Flutter Is Awesome'

Equality

str1.isEqualTo(str2);
str1.isEqualTo(str2, ignoreCase: true);

Collection extension #

 final sum = [1, 2, 3].sum(); // 6

 final sum = [Product(price: 100.99), Product(price: 49.99)].sum((p) => p.price);
final ordered = orders.orderBy((x) => x.amount, desc: true);
final groups = people.groupBy((p) => p.age, map: (p) => p.name);

mapWithIndex

const arr = [1, 2, 3];
final arr2 =
    arr.mapWithIndex((index, item, isFirst, isLast) => '$index - $item');
print(arr2); // ['0 - 1', '1- 2', '2 -3']

Next After

Random

replaceWhere

// Given array
const arr = [1, 2, 3];

// replace by index
final newArray = arr.replaceWhere((index, _) => index == 1, withNewItem: 13);
newArray.should.be([1, 13 ,3]);

// or replace by prop
final newArray = arr.replaceWhere((_, number) => number.isOdd, withNewItem: 13);
newArray.should.be([ 13, 2, 13]);

Reorder list

const list = [1, 2, 3, 4, 5];

list.reorderByIndexes(oldIndex: 1, newIndex: 0);  // [2, 1, 3, 4, 5]
list.reorder(5, newIndex: 0).toList();          // [5, 1, 2, 3, 4]

split_on_pages_by_count

test('split_on_pages_by_count - full pages', () {
  final pages = arr.splitOnPagesBy(2).toList();
  pages.length.should.be(5);
  for (final page in pages) {
    page.length.should.be(2);
  }
});

Get image file size #


const fileSize = 1024 * 1024;

// Get file size in closest size suffix
final sizeInMb = FileSizeInfo.getSize(bytes);
log(sizeInKb.getTitle())); // prints '1.oo MB'
log(sizeInKb.getTitle(decimals: 0))); // prints '1 MB'

// Convert to desired suffix
final sizeInKb = sizeInMb.asSuffix(FileSizeSuffix.KB);
log(sizeInKb.getTitle())); // prints '1024 KB'

log();

RangeValue type

final numRange = RangeValue(1, 10);
print(numRange.isValid); // true

final start = DateTime.now();
final end = DateTime.now().add(Duration(days: 1));
final dateTimeRange = RangeValue(end, start);

print(dateTimeRange.isValid); // false

Debouncer #

Declare it #

final debounce = Debounce(delay: const Duration(milliseconds: 100));

and trigger it #

onTextChange(String text) {
  _debounce(() => print(text));
}

Contributing #

We accept the following contributions:

Maintainers #

Buy Me A Coffee