flutter_be 2.0.0 copy "flutter_be: ^2.0.0" to clipboard
flutter_be: ^2.0.0 copied to clipboard

Reverse Method Call Using `?` Operator: Simplifies null-safe method calls, making your code cleaner and more robust.

flutter_be #

Features #

  • Reverse Method Call Using ? Operator: Simplifies null-safe method calls, making your code cleaner and more robust.
// Traditional approach: 👇
if (obj != null) {
    list.add(obj);
}

// With flutter_be: 👍
obj?.be.addTo(aList: list); 

Installation #

Add flutter_be as a dependency in your pubspec.yaml file:

dependencies:
  flutter_be: last_version

Then, run flutter pub get to install the package.

Usage #

Here are some examples of how to use the flutter_be package:

Adding to a Collection #

import 'package:flutter_be/be.dart';

void main() {
  var list = <String>[];
  'item'.be.addTo(aList: list);
  print(list);  // Output: ['item']
  
  var setCollection = <String>{};
  'item'.be.addTo(aSet: setCollection);
  print(setCollection);  // Output: {'item'}
}

Handling Null Values #

import 'package:flutter_be/be.dart';

void main() {
  dynamic val = 'test';
  val.be.let<String>(
    onValue: (value) {
      print(value);  // Output: 'test'
    },
    onNull: () {
      print('The object is null or not of the expected type');
    },
  );
}

Providing Default Values #

import 'package:flutter_be/be.dart';

void main() {
  String? string = 'hello';

  Widget widget = string.be.defaultValueCase<Widget>(
    (val) => Text(val),
    onNull: (val) => Container(),
  );
}

Checking for Empty Collections #

import 'package:flutter_be/be.dart';

void main() {
  var list = <String>[];

  list.be.emptyCase(
    onEmpty: () {
      print('The list is empty');  // Output: 'The list is empty'
    },
    onNotEmpty: () {
      print('The list is not empty');
    },
    onEmptyOrNull: () {
      print('The list is null or empty');
    },
  );

  var nullableList = null;

  nullableList?.be.emptyCase(
    onEmpty: () {
      print('The list is empty');
    },
    onNotEmpty: () {
      print('The list is not empty');
    },
    onEmptyOrNull: () {
      print('The list is null or empty');  // Output: 'The list is null or empty'
    },
  );
}

Equality Check #

import 'package:flutter_be/be.dart';

void main() {
  var object1 = 'test';
  var object2 = 'test';
  bool isEqual = object1.be.equalTo(object2, nonull: true);
  print(isEqual);  // Output: true
}

For Loop Iteration #

import 'package:flutter_be/be.dart';

void main() {
  int? count = 5;
  count?.be.forLoop(
    loopBody: (i) => print(i),  // Output: 0, 1, 2, 3, 4
    isAscending: true,
  );
}

Handling Boolean Values #

import 'package:flutter_be/be.dart';

void main() {
  bool? boolValue = true;

  boolValue?.be.valueCase(
    onTrue: () {
      print('The value is true');  // Output: 'The value is true'
    },
    onFalse: () {
      print('The value is false');
    },
    onFalseOrNull: () {
      print('The value is false or null');
    },
  );

  boolValue = null;

  boolValue.be.valueCase(
    onTrue: () {
      print('The value is true');
    },
    onFalse: () {
      print('The value is false');
    },
    onFalseOrNull: () {
      print('The value is false or null');  // Output: 'The value is false or null'
    },
  );
}

Using beOf #

When you need to ensure type safety or call methods that require a specific type (e.g., let or defaultValueCase), use beOf to wrap your dynamic object into a Be of the specified type:

import 'package:flutter_be/be.dart';

void main() {
  dynamic val = 'hello';
  var beObj = val.beOf<String>();  // Be<String> type
  beObj.let(
    onValue: (value) {
      print(value);  // Output: 'hello'
    },
    onNull: () {
      print('The object is null or not of the expected type');
    },
  );
}

Contributing #

Contributions are welcome! Please open an issue or submit a pull request on GitHub.

License #

This project is licensed under the MIT License. See the LICENSE file for more information.

2
likes
160
points
43
downloads

Publisher

unverified uploader

Weekly Downloads

Reverse Method Call Using `?` Operator: Simplifies null-safe method calls, making your code cleaner and more robust.

Repository (GitHub)
View/report issues

Documentation

Documentation
API reference

License

MIT (license)

More

Packages that depend on flutter_be