Skip to main content

🌀 Flutter App Lifecycle – Easy Way to Understand

 

When you build an app in Flutter, it goes through different states depending on how the user interacts with it (open, minimize, back button, etc).

Think of it like a human day cycleWake up → Active → Sleep → Wake again.


🌱 1. main() – Birth of the App

Every Flutter app starts from the main() function.

void main() { runApp(MyApp()); }

👉 This is like turning ON the lights – your app is born.


🏗 2. Widgets Lifecycle

In Flutter, everything is a Widget.
There are two main types:

  • StatelessWidget → UI that doesn’t change.

  • StatefulWidget → UI that changes with user interaction.

For StatefulWidget, the lifecycle looks like this:

🔹 When Widget is created

  1. createState() → Creates a State object (like preparing memory).

  2. initState() → First time setup (like waking up, stretching, preparing breakfast).

    • Best place for API calls, animation controllers, initial values.

🔹 When Widget builds

  1. build() → Renders UI (like dressing up for the day).

    • Called multiple times whenever setState() is triggered.

🔹 When Widget updates

  1. didUpdateWidget() → Called when parent widget changes (like when your boss gives new instructions but you’re the same person).

🔹 When Widget is removed

  1. dispose() → Cleanup (like going to sleep, turning off lights).

    • Best place to close streams, dispose controllers.


📱 3. App Lifecycle (whole app, not just widget)

Flutter gives AppLifecycleState inside WidgetsBindingObserver.
The states are:

  • resumed → App is in foreground (visible, active).

  • inactive → App is in foreground but not interactive (e.g. phone call overlay).

  • paused → App is in background (user minimized or switched apps).

  • detached → App is about to be killed (rare on Android, more common on iOS).

👉 Example:

class MyApp extends StatefulWidget { @override _MyAppState createState() => _MyAppState(); } class _MyAppState extends State<MyApp> with WidgetsBindingObserver { @override void initState() { super.initState(); WidgetsBinding.instance.addObserver(this); } @override void didChangeAppLifecycleState(AppLifecycleState state) { print("App state: $state"); } @override void dispose() { WidgetsBinding.instance.removeObserver(this); super.dispose(); } @override Widget build(BuildContext context) { return MaterialApp(home: Scaffold(body: Center(child: Text("Lifecycle Demo")))); } }

🧠 Easy Analogy

  • initState() → Wake up, get ready.

  • build() → Show yourself to the world.

  • setState() → Change clothes/mood anytime.

  • dispose() → Go to bed.

  • AppLifecycleState.paused → You’re on a tea break.

  • AppLifecycleState.resumed → Back to work.

Comments

Your Complete Flutter Roadmap: From Beginner to Pro

📱 Flutter ListTile and ListView: Explained with Easy Examples

Flutter ListTile and ListView: When you start learning Flutter, two widgets often confuse beginners: ListTile  &  ListView . Both are used to display items in a list, but their purpose is different. Let’s break them down in a simple way. 🔹 What is ListTile in Flutter? ListTile is a ready-made widget used to show a single row (one item). It usually contains: title (main text) subtitle (small text under the title) leading (icon/image on the left) trailing (icon/text on the right) 👉 Think of ListTile as a single row card inside a list. ✅ Example of ListTile: import 'package:flutter/material.dart'; void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar(title: const Text("Flutter ListTile Example")), body: const ListTile( leading:...

Flutter AppBar with an Easy Example

  In Flutter, the AppBar is a simple yet powerful widget that provides the top app bar typically found in mobile applications. It is a critical part of your app's layout and design, giving users easy access to navigation, search, actions, and other features in your app. In this blog post, we will explore the AppBar widget in Flutter, how to customize it, and provide a simple example to help you get started. ------------------------------------------------------------------------ What is an AppBar in Flutter? The AppBar widget in Flutter is a material design app bar that can be used to display titles, icons, action buttons, and other important elements at the top of your app screen. The AppBar is usually placed inside a Scaffold widget, which provides a basic layout structure for the app.  Key Features of AppBar : Title : Displays the main title of the screen. Actions : Typically used to place action icons like search or menu buttons. Lead...