modulapp 1.1.1 copy "modulapp: ^1.1.1" to clipboard
modulapp: ^1.1.1 copied to clipboard

A simple base class to help you modularize your apps.

module #

A simple base class to help you modularize your apps. It just defines common modules methods.

Keep it simple #

A Module that defines dependency injection (with flutter_inject) #

class HomeModule extends Module {
  @override
  WidgetBuilder injectDependencies({required WidgetBuilder builder}) {
    return (context) => InjectAll(
          dependencies: [
            Dependency<TodoRepository>((context) => TodoRepositoryImpl()),
          ],
          builder: builder,
        );
  }
}

A Module that defines routes (with GoRouter) #

class HomeModule extends Module with ModuleRouter<RouteBase> {
  @override
  final List<RouteBase> routes = [
    GoRoute(path: '/home', builder: (context, state) => const HomeView()),
  ];
}

Glad to Modulapp widget your heavily scaled apps become simpler #

void main() {
  final loginModule = LoginModule(postLoginRoute: TodoRoutes.list);
  final todoModule = TodoModule();
  final favoriteModule = FavoriteModule();
  final allModules = [loginModule, todoModule, favoriteModule];

  runApp(
    Modulapp(
        modules: allModules,
        supportedLocales: const [Locale('en'), Locale('fr')],
        sessionStreamBuilder: (context) => Dependency.get<SessionRepository>(context).watch(),
        routerConfigBuilder: (context) {
          final session = Dependency.maybeGet<Session>(context);
          return GoRouter(
            initialLocation: session != null ? TodoRoutes.list : LoginRoutes.home,
            routes: session != null ? allModules.routes : loginModule.routes,
          );
        }),
  );
}

Check the example section for a full example #

You'll also find in the Gitlab repository helpful advanced examples with Modules that provides GoRouter routes, translations and dependency injection.

1
likes
150
points
385
downloads

Publisher

unverified uploader

Weekly Downloads

A simple base class to help you modularize your apps.

Repository (GitLab)
View/report issues

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

dartx, flutter, flutter_localizations

More

Packages that depend on modulapp