FLUTTER ECOSYSTEM

spideythewebhead/flutterlifecyclehooks

spideythewebhead/flutterlifecyclehooks open-source repository details.

flutterlifecyclehooks project cover
Stars
15
Forks
3
Last push (UTC)
Jun 28, 2024
Project status
Active
Pantelis Tsakoulis GitHub avatar
GITHUB User

Pantelis Tsakoulis ↗

DEV.HUTAthens, Greece
LanguagesDartHTMLSwiftKotlinObjective-C

Packages published by this repository

Dependencies used

Dependency list 4 items
  • flutter{"sdk":"flutter"}
  • flutter_testDevelopment{"sdk":"flutter"}
  • mockitoDevelopment^5.4.2
  • flutter_lintsDevelopment^2.0.1

Original README

English project snapshot. Visit GitHub for the latest content.

Expand / collapse project README

flutterlifecyclehooks

A flutter package that lets you easily add hooks for application lifecycle state. LifecycleMixin uses the AppLifecycleListener and registers methods as hooks.

The list of hooks is:

  • onAppShow
  • onAppHide
  • onAppRestart
  • onAppResume
  • onAppPause
  • onAppInactive
  • onAppDetach
  • onExitAppRequest

Note: Read more about these lifecycle hooks https://api.flutter.dev/flutter/widgets/AppLifecycleListener-class.html

Optionally provides onContextReady that acts like initState but BuildContext is available for use.

Getting Started

Add on pubspec.yaml

dependencies:
    flutterlifecyclehooks: version

Example code

class App extends StatefulWidget {
  @override
  _AppState createState() => _AppState();
}

class _AppState extends State<App> with LifecycleMixin {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: Text(
            currentLifecycleState.toString(),
          ),
        ),
      ),
    );
  }

  @override
  void onAppLifecycleChange(AppLifecycleState state) {
    setState(() {});
  }

  @override
  void onResume() {
    print('did resume');
  }

  @override
  void onPause() {
    print('did pause');
  }
}

Also you can use, LifecycleHooksSubscriber wraps a widget and provides convient arguments for lifecycle hooks.

You can use this if you don't want to polute the namespace of a stateful widget.