flutter_bloc_debug

A set of helper tools for debugging your BLoCs.

Bloc debug views

If you start by designing your BLoCs, it can be tedious to test them in real condition (if you have native dependencies and so on), and sometimes you don't have time to create a full set of unit tests for them during your prototyping phase.

With BlocDebugger and BlocDebugDrawer, a form is generated to allow you to display all of the Streams values, and to send values to Sinks.

example

Quickstart

class CounterBloc {
  Sink<int> get add => ...
  Sink<void> get reset => ...
  Stream<int> get count => ...
}
Widget build(BuildContext context) {
     return BlocDebugger(
      title: 'Counter',
      streams: {'count': this.bloc.count},
      sinks: {'add': this.bloc.add, 'reset': this.bloc.reset},
      child: Scaffold(
          body: Counter(this.bloc), // The view you're working on
          endDrawer: BlocDebugDrawer()),
    );
}

Generated bloc debugger declaration

If you use my other package built_bloc, all the metadata of a bloc is generated and you simply have to call BlocDebugger.fromMetadata(bloc.metadata, ...).

Examples

For more detailled examples take a look at the example folder.

Libraries

flutter_bloc_debug

Dart

dart:ui
Built-in types and core primitives for a Flutter application. [...]

Core

dart:async
Support for asynchronous programming, with classes such as Future and Stream. [...]
dart:collection
Classes and utilities that supplement the collection support in dart:core. [...]
dart:convert
Encoders and decoders for converting between different data representations, including JSON and UTF-8. [...]
dart:core
Built-in types, collections, and other core functionality for every Dart program. [...]
dart:developer
Interact with developer tools such as the debugger and inspector. [...]
dart:math
Mathematical constants and functions, plus a random number generator. [...]
dart:typed_data
Lists that efficiently handle fixed sized data (for example, unsigned 8 byte integers) and SIMD numeric types. [...]

VM

dart:io
File, socket, HTTP, and other I/O support for non-web applications. [...]
dart:isolate
Concurrent programming using isolates: independent workers that are similar to threads but don't share memory, communicating only via messages. [...]