Book Image

Managing State in Flutter Pragmatically

By : RAHUL AGARWAL, Waleed Arshad
Book Image

Managing State in Flutter Pragmatically

By: RAHUL AGARWAL, Waleed Arshad

Overview of this book

Flutter is a cross-platform user interface (UI) toolkit that enables developers to create beautiful native applications for mobile, desktop, and the web with a single codebase. State management in Flutter is one of the most crucial and complex topics within Flutter, with a wide array of approaches available that can make it easy to get lost due to information overload. Managing State in Flutter Pragmatically is a definitive guide to starting out with Flutter and learning about state management, helping developers with some experience of state management to choose the most appropriate solutions and techniques to use. The book takes a hands-on approach and begins by covering the basics of Flutter state management before exploring how to build and manipulate a shopping cart app using popular approaches such as BLoC/Cubit, Provider, MobX, and Riverpod. Throughout the book, you'll also learn how to adopt approaches from React such as Redux and all its types. By the end of this Flutter book, you'll have gained a holistic view of all the state management approaches in Flutter, and learned which approach is the best solution for managing state in your app development journey.
Table of Contents (14 chapters)
1
Section 1:The Basics of State Management
4
Section 2:Types, Techniques, and Approaches
8
Section 3:Code-Level Implementation

Cubit – simplified BLoC

Cubit is a subset of the BLoC library and it is widely used where states are less complex. It has no events, and states are triggered using functions directly from the UI. This creates less complicated code for simpler user flows. Let's see how our counter example application looks with Cubit in place (you won't need to add any extra package other than flutter_bloc for using Cubit).

Creating a counter example application using Cubit

Most of the things in Cubit are going to be the same as they were in BLoC. We will be using the same state class that we used in BLoC, which is CounterState. We won't have any event class for Cubit – we will have a Cubit class. So, let's create a file named counter_cubit.dart and add the following code:

import 'counter_state.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
class CounterCubit extends Cubit<CounterState> {
  CounterCubit() : super...