A simple Flutter widget to declaratively execute initialization logic in your widget tree. Used internally at Theodo Apps ❤️💙💛.
Flutter widgets often require initialization logic (e.g., fetching data, setting
up listeners) that is typically placed in initState
, didChangeDependencies
,
or after the first frame. Managing this logic can lead to boilerplate and less
reusable code, especially when you want to compose or reuse initialization
patterns across widgets.
init provides an Init
widget that lets you declaratively specify
initialization and disposal logic as parameters, making your code cleaner, more
modular, and easier to test.
To use the Init
widget, add init
pachage to the dependencies:
dart pub add init
# or
flutter pub add init
You can also add the package manually to your pubspec.yaml
:
dependencies:
init: ^1.0.0
Then run:
flutter pub get
Wrap any widget with Init
and provide the desired callbacks:
import 'package:init/init.dart';
Init(
onInit: () => print('Widget initialized'),
onInitPostFrame: () => print('Widget initialized after frame'),
onDidChangeDependencies: () => print('Dependencies changed'),
onDispose: () => print('Widget disposed'),
child: MyChildWidget(),
)
onInit
: Called once ininitState
(for one-time setup)onInitPostFrame
: Called once after the first frame is renderedonDidChangeDependencies
: Called indidChangeDependencies
onDispose
: Called indispose
child
: The widget to render
Init(
onInit: () => print('Initializing...'),
onDispose: () => print('Cleaning up...'),
child: const Text('Hello!'),
)
We are a 130 people company developing and designing universal applications with React Native and Flutter using the Lean & Agile methodology. To get more information on the solutions that would suit your needs, feel free to get in touch by email or through or contact form!
We will always answer you with pleasure 😁