Skip to main content

modulapp_core 1.0.1 copy "modulapp_core: ^1.0.1" to clipboard
modulapp_core: ^1.0.1 copied to clipboard

A set of static methods/getters to unify dependency injection, logging, etc, across app's modules/sfeatures

example/README.md

modulapp_core_example #

This example shows how it's simple to unify dependency injection, logging, etc, in a Flutter app.

main.dart #

import 'dart:developer' as dev;

import 'package:flutter/material.dart';
import 'package:flutter_inject/flutter_inject.dart' as pkg;
import 'package:modulapp_core/modulapp_core.dart';

void main() {
  // Define project's dependency injection
  Core.inject = <T>({required factory, required builder}) => pkg.Inject<T>(builder: builder, factory: factory);
  // Define project's instance getter through context
  Core.get = <T>(context) => pkg.Dependency.get<T>(context);
  // Define project's logging method
  Core.log = <T>(msg1, [msg2, msg3]) => dev.log('[$msg1] $msg2\n$msg3');

  runApp(
    MaterialApp(
      home: injectAll(
        dependencies: [
          Dependency<String>((context) => 'This text has been injected'),
          Dependency<int>((context) => 5),
        ],
        builder: (context) => const HomeView(),
      ),
    ),
  );
}

class HomeView extends StatefulWidget {
  const HomeView({super.key});

  @override
  State<HomeView> createState() => _HomeViewState();
}

class _HomeViewState extends State<HomeView> {
  late int _value;

  void _onTap() => setState(() {
        _value++;
      });

  @override
  void didChangeDependencies() {
    super.didChangeDependencies();
    // Here we retrieved our injected number value to init the counter
    _value = get<int>(context);
  }

  @override
  Widget build(BuildContext context) {
    // Here we retrieved our injected text value to set AppBar's title
    final title = get<String>(context);
    return Scaffold(
      appBar: AppBar(title: Text(title)),
      body: Center(
        child: SizedBox(
          width: 400,
          child: Column(
            spacing: 12.0,
            children: [
              const Text('Wow a counter example, what a surprise !'),
              Text('Counter: $_value'),
              ElevatedButton(onPressed: _onTap, child: const Text('Increment'))
            ],
          ),
        ),
      ),
    );
  }
}
1
likes
160
points
16
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A set of static methods/getters to unify dependency injection, logging, etc, across app's modules/sfeatures

Repository (GitLab)
View/report issues

License

BSD-3-Clause (license)

Dependencies

flutter

More

Packages that depend on modulapp_core