# fl_utilities

Welcome to `fl_utilities` documentation!

[BuildContext]: https://api.flutter.dev/flutter/widgets/BuildContext-class.html
[ValueChanged]: https://api.flutter.dev/flutter/foundation/ValueChanged.html

Simple Flutter utilities such as shorthands extension on [BuildContext][BuildContext],
`debounce` extension on [ValueChanged][ValueChanged], and more.

This package only depend on SDKs so it can be used in any Flutter project.

> Please note that there's no support for Flutter SDK below v3 for now.

[api-ref]:
  https://pub.dev/documentation/fl_utilities/latest/fl_utilities/fl_utilities-library.html

Visit [API Reference][api-ref] if you prefer codes docs.

## Getting started

Add `fl_utilities` to your dependencies.

```bash
flutter add fl_utilities
```

and that's it! You're good to go.

## Usage

- [BuildContext][BuildContext] shorthands extension:

  ```dart
  import 'package:flutter/material.dart';
  import 'package:fl_utilities/fl_utilities.dart';
  
  final myWidget = Builder(builder: (context) {
    context.theme; // instead of `Theme.of(context)`
    context.mediaQuery; // instead of `MediaQuery.of(context)`
  
    return const Placeholder();
  });
  ```

- debounce extension on [ValueChanged][ValueChanged]:

  ```dart
  import 'package:flutter/material.dart';
  import 'package:fl_utilities/fl_utilities.dart';
  
  final myWidget = TextField(
    onChanged: (text) {
      debugPrint('Called after half a second of not typing');
    }.debounce(),
  );
  ```
