djangoflow_app 7.0.2  djangoflow_app: ^7.0.2 copied to clipboard
djangoflow_app: ^7.0.2 copied to clipboard
A simple, opinionated, and minimal Flutter application structure for quick start and easy maintenance.
djangoflow_app #
A simple, opinionated, and minimal Flutter application structure for quick start and easy maintenance.
Getting started #
Add djangoflow_app as a dependency in your pubspec.yaml file.
dependencies:
  djangoflow_app: <latest version>
Import djangoflow_app and use it to create your root StatelessWidget.
import 'package:djangoflow_app/djangoflow_app.dart';
void main() => DjangoflowAppRunner.run(
      onException: (exception, stackTrace) {
        // Your custom exception handling
      },
      rootWidgetBuilder: (appBuilder) async {
        return MaterialApp(
          title: 'Djangoflow App',
          theme: ThemeData(
            primarySwatch: Colors.blue,
          ),
          home: appBuilder(AppBuilder(
            repositoryProviders: [
              // Your repository providers
            ],
            providers: [
              // Your BLoC providers
            ],
            listeners: [
              // Your BLoC listeners
            ],
            builder: (context) => YourRootWidget(),
          )),
        );
      },
    );
Features #
AppBuilder: A custom StatelessWidget that allows you to provide global BlocProvider, BlocListener, RepositoryProvider, and callbacks for initState and dispose in a single place.
AppCubitBuilder, AppCubitConsumer, and AppCubitListener: A set of custom BlocBuilder, BlocConsumer, and BlocListener that allows you to listen to the AppCubit state changes.
DjangoflowAppRunner: A custom runApp that allows you to handle exceptions globally and sets up the HydratedBloc storage and BlocObserver for the entire application.
DjangoflowAppSnackbar: A simple SnackBar manager that allows you to show different types of SnackBar (info, error, in-app notification) globally with a single instance.
SandboxBanner: A simple Banner that allows you to show a banner on the top-start corner of the screen with a custom message and color. It's useful to indicate the current environment (e.g., sandbox, production).
EnvSwitcher: A simple widget that allows you to toggle between different environments with a long press.
Note #
DjangoflowAppSnackbar uses ScaffoldMessenger. DjangoflowAppSnackbar's global key needs to be provided to MaterialApp's scaffoldMessengerKey.