Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Managing State in Flutter Pragmatically
Managing State in Flutter Pragmatically

Managing State in Flutter Pragmatically: Discover how to adopt the best state management approach for scaling your Flutter app

eBook
$17.99 $26.99
Paperback
$33.99
Subscription
Free Trial
Renews at $19.99p/m

What do you get with Print?

Product feature icon Instant access to your digital eBook copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
Table of content icon View table of contents Preview book icon Preview Book

Managing State in Flutter Pragmatically

Chapter 1: States and State Management Overview

This chapter is an introduction to the core concepts of states and state management in Flutter. You will learn the basic important concepts of a state in Flutter and how it affects your application in general. You will also learn about state management, what it is, why it is necessary, and the advantages of using it in your application.

In this chapter, we are going to cover the following main topics:

  • What is a state?
  • Why is studying states important?
  • What is state management?
  • Why do we need state management?
  • Choosing the best state management technique

This chapter is going to show you why you need to study state management in order to build better, stable, and scalable Flutter applications. By the end of this chapter you will have a grasp of the following:

  • The concepts of states and state management in Flutter
  • The importance of studying and applying state management in Flutter
  • How state and state management are interrelated to each other

Flutter – a brief introduction

Before we jump right into states, state management, and the techniques related to states, we should learn a little about what Flutter is (though this is already this book's pre-requisite).

Flutter is a cross-platform development toolkit that is backed by Google itself. Flutter enables you to create beautiful native applications for iOS, Android, the web, Windows, macOS, Linux, and even embedded systems, with a single code base.

Flutter uses Dart, a language created by Google back in October 2011. Dart is easy to learn as it is based on concepts from both open languages such as JavaScript and object-oriented languages such as C# and Java. Dart can be used for client-side programming, such as mobile and web, as well as for server-side development, such as RESTful services.

You can learn more about Flutter and Dart on Flutter's official website (https://flutter.dev/).

What is a state?

Before diving into creating applications and managing states in Flutter, it is necessary to understand what a state actually is and how it affects our application.

Put simply, the state of an application is a condition or a situation – an instance or a snapshot that shows the condition of your application at a certain point in time.

For example, your application shows two variables, x and y, with values 2 and 3 respectively. Let's call this state State A. Now, if there is a user interaction and the values of your variables x and y change to something else, let's say 4 and 5, that would be a different state of your application, State B.

Figure 1.1 – Two different states of an application

Figure 1.1 – Two different states of an application

States A and B are two different conditions of your application. Each one of them denotes a certain set of values of the variables that can be used to identify which state the application is currently in.

Another example of a state would be a counter application that shows an increasing counter every time the user presses a plus button.

Figure 1.2 – Two different states in a counter example app

Figure 1.2 – Two different states in a counter example app

The counter keeps on increasing and the state keeps changing as the user presses the plus button.

To summarize, the state shows your application's current set of values and can be changed based on user interaction.

Now we know what a state is, how it is detected and used within an application, and how it affects your application's UI. To better understand states for a large-scale application, let's see why a state is important in an application.

Importance of a state in an application

The state is the core building block of your application. It defines the overall behavior of your app, from the beginning of your user journey to the time the user closes/terminates your application. Every change the user sees is a state of its own, and you need to make sure that your user sees what you intend to show. You also need to make sure that with every possible user interaction, the application shows valid states. It should not show something that you or the user don't expect to see (an exception, a red screen, an unexpected or unhandled error, and so on).

Different states in a large application

Since we now know that every user interaction creates a new state for an application, a complete functional application can have hundreds of states. In order to keep track of and manage every state, it is important to understand what role a state plays inside your application. Here are some examples of states that get updated by user interactions in a simple login page consisting of two text fields and a button:

  • The user enters a correct email and password – A new state that navigates the user to some other screen
  • The user enters the wrong email and password – A new state showing an error
  • The user presses the login button without entering anything – A state that says that the user has to fill in both the required fields
  • The user presses the login button with only one filled-in field – A state indicating the field that needs to be filled in
  • The internet gets disconnected – A state that shows a pop-up dialog for no internet connection

The preceding example was of one single login page with the three simplest forms of UI components, and you saw how many states were extracted from it. When your application gets bigger, there can be a lot of states to manage. Therefore, studying states and knowing everything about them is as important as building an entire application.

We have seen how important states are and how they help us get the most out of our application. We have also seen the immense importance of states in a larger application with many states. Let's now understand what state management is and how we can manage states in our application through different techniques (the actual point of this book).

What is state management?

State management is simply a technique, or multiple techniques, used to take care of the changes that occur in your application. When your application gets bigger, you need to apply a proper state management approach in order to be able to keep track of every change inside your application and make the application respond to the user accordingly. This can include the following:

  • Responding to user interactions
  • Keeping track of data throughout the different screens in the application
  • Changing data points in the application at one place and handling the response at other points in the app that read that data

This book will show you different techniques of managing states in your Flutter application, ranging from very basic ways, such as setState (pushing changes to the UI through a function call), to advanced approaches, such as BloC (a business logic component, used to decouple the UI from business logic) and provider (a community-favorite technique used widely among a variety of applications).

Choosing the best technique for your application

After finishing this book, you will clearly understand which state management techniques should be used for different kinds of application. It is necessary to be able to figure out the best state management solution for a given kind of application. Remember, there is no one solution that is best for every single application. It is all about choosing the right one for the application you are going to create.

The correct choice of state management solution will enable you to create better, scalable, highly performant, and faster applications with less code mess and better readability.

Using the right approach is going to make your application life cycle easier, as it will enable you to add and update features seamlessly. Also, you will help new developers to understand your code better and adjust with you faster.

Summary

In this chapter, we saw that the state is the condition or situation of your application, giving you a certain set of values for variables inside your application that may or may not be reflected on your screen. When an application transitions from one state to another, the set of values is updated, and a new state is formed and is mostly changed by user interaction.

We studied how many states can be formed with or without user interaction in the case of a simple login screen and the importance of state in a large-scale application. There was an overview of what state management is and why choosing a good state management technique is beneficial to the development life cycle.

In the next chapter, we will discuss the most basic forms of state management techniques, mainly setState and InheritedModel. We will also see how these approaches are reflected in code with real running examples.

Left arrow icon Right arrow icon
Download code icon Download Code

Key benefits

  • Get to grips with popular approaches for managing your Flutter application state
  • Think declaratively in order to decide on the most fitting approach for different applications
  • Learn to implement state management solutions by building a popular use case in the form of a shopping cart app

Description

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.

Who is this book for?

This book is for developers who have already started with their Flutter journey and are now looking to learn optimal state management approaches for app development. The book will also help less experienced Flutter engineers to find the best state management solution to fit their app, along with Flutter engineers who want to learn which state management approach should be taken under what circumstances.

What you will learn

  • Understand the core concepts of different state management techniques used in Flutter
  • Build optimal and performant applications in Flutter
  • Develop an understanding of which technique to apply in what sort of apps
  • Build the habit of writing clean state management code
  • Produce code with techniques from beginner to advanced level for different state management solutions
  • Use state management techniques to create robust and scalable apps in Flutter
Estimated delivery fee Deliver to Indonesia

Standard delivery 10 - 13 business days

$12.95

Premium delivery 5 - 8 business days

$45.95
(Includes tracking information)

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Nov 25, 2021
Length: 246 pages
Edition : 1st
Language : English
ISBN-13 : 9781801070775
Vendor :
Google
Category :
Languages :
Tools :

What do you get with Print?

Product feature icon Instant access to your digital eBook copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
Estimated delivery fee Deliver to Indonesia

Standard delivery 10 - 13 business days

$12.95

Premium delivery 5 - 8 business days

$45.95
(Includes tracking information)

Product Details

Publication date : Nov 25, 2021
Length: 246 pages
Edition : 1st
Language : English
ISBN-13 : 9781801070775
Vendor :
Google
Category :
Languages :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$199.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts
$279.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total $ 142.97
Managing State in Flutter Pragmatically
$33.99
Flutter for Beginners
$59.99
Flutter Cookbook
$48.99
Total $ 142.97 Stars icon

Table of Contents

13 Chapters
Section 1:The Basics of State Management Chevron down icon Chevron up icon
Chapter 1: States and State Management Overview Chevron down icon Chevron up icon
Chapter 2: The Core Building Blocks of State Management Chevron down icon Chevron up icon
Section 2:Types, Techniques, and Approaches Chevron down icon Chevron up icon
Chapter 3: Diving into Advanced State Management Approaches Chevron down icon Chevron up icon
Chapter 4: Adopting State Management Approaches from React Chevron down icon Chevron up icon
Chapter 5: Executing Distinctive Approaches Like GetX, GetIt, and Binder Chevron down icon Chevron up icon
Section 3:Code-Level Implementation Chevron down icon Chevron up icon
Chapter 6: Creating a Shopping Cart Application Using Basic Approaches Chevron down icon Chevron up icon
Chapter 7: Manipulating a Shopping Cart Application through BLoC, Provider, and React-Based Approaches Chevron down icon Chevron up icon
Chapter 8: Using GetX, GetIt, and Binder to Update the Cart Application Chevron down icon Chevron up icon
Chapter 9: Comparative State Management Analysis: When to Use What? Chevron down icon Chevron up icon
Other Books You May Enjoy Chevron down icon Chevron up icon

Customer reviews

Top Reviews
Rating distribution
Full star icon Full star icon Full star icon Full star icon Half star icon 4.9
(10 Ratings)
5 star 90%
4 star 10%
3 star 0%
2 star 0%
1 star 0%
Filter icon Filter
Top Reviews

Filter reviews by




Stuart Nov 29, 2022
Full star icon Full star icon Full star icon Full star icon Full star icon 5
4.5 Stars - I've been using Flutter for 1+ years now and wanted to learn about other state management approaches. The introduction to the various packages was excellent. Without a significant time effort, I was able to understand the basic differences in the techniques. Reviewing these sections later as a reference was also going to work pretty well.Unfortunately, the depth of this coverage here and later in the examples was still a bit too basic for the real world. This is a bit disappointing as the book is covering this very topic. I was very happy to see the content towards the end about how to make choices between which state management to use. It was helpful, but a bit too casual and too light for my preferences. It was a very short section which was disappointing as its the climax of the book.I would suggest this book if you wanted to gain a fair amount of technical understanding of each of the state management approaches. Or, if you are unsure of which approach to use, this will start you along the way. However, once you make that decision, you will mostly likely need another state management book or reference to show you how best to go about it.
Amazon Verified review Amazon
Roddy Bear Jul 14, 2023
Full star icon Full star icon Full star icon Full star icon Full star icon 5
I enjoyed taking the time to consider the pros and cons of the various state management approaches available to flutter. We all have our preferred state management techniques but it's also good to zoom out and look at the others optiins from time to time. I enjoyed this book
Amazon Verified review Amazon
Kit G. Apr 16, 2022
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Who I would recommend this book to:- tech team leads and CTOs who are researching the current state of mobile development looking for the framework suited for their needs: for them the book will cover how Flutter is beneficial for rapid development and might give a few hints how to speed up adoption of Flutter by developers from other backgrounds, such as React.- intermediate Flutter developers who are still honing their front-end skills: for them the book should eliminate a few of “I don’t know what I don’t know” traps when it comes to Flutter and help them discover approaches they did not know existed.Who I would not recommend this book to:- Flutter beginners or for that matter inexperienced programmers in general, since the book does not cover bases nor does it teach Dart, the programming foundation of Flutter.What I liked about the book:- variety of approaches to the subject matter covered without prejudice or bias to any specific one- competent code samples- material is concise and easy to coverWhat I thought could be better:- code samples and use cases are a little detached from real coding practice. Here’s an example: almost every app these days has some form of authentication and, accordingly, has to manage its authentication state. It would be so tremendously useful to the reader if the book gave an example of mobile architecture where some sort of user model, while fully separated from the UI, can be easily and effectively accessed from any point in a multi-page application for the purpose of practical state management. I did not find such examples.- For whatever reason, the book does not cover Flutter’s native ValueNotifiers/ValueListenableBuilders, even though it is one of the most effective approaches to state management.About me:A dev team lead and simply a developer with a fair bit of experience. Have been a Flutter fan since its version 0.4. Other skills include: relational databases, API development, DevOps/IaC
Amazon Verified review Amazon
Mike Dec 15, 2021
Full star icon Full star icon Full star icon Full star icon Full star icon 5
The text is simple and easy to comprehend. I've only begun reading the book and I must say that my initial impressions have been good. The fact that the author has managed to cover a wide range of popular state management techniques, keeping it clear and condensed, is a testament to his skills. Great material for beginners and those who want to brush up on their knowledge. I would, however, like to point out that the Bloc library referenced in the book is slightly outdated, the newer version is much more intuitive and unlike it's arcane predecessor, it doesn't rely on the usage of the asynchronous generator, mapEventToState. I would have also loved to see examples using BlocListeners and BlocConsumers.
Amazon Verified review Amazon
Rachana Dec 30, 2021
Full star icon Full star icon Full star icon Full star icon Full star icon 5
The book is very comprehensive and teaches state management techniques in Flutter with application examples. Even though the book is very detailed, its as well basic, so would recommend it only for the ones who want to learn flutter and are in the beginner stage.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is the delivery time and cost of print book? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela
What is custom duty/charge? Chevron down icon Chevron up icon

Customs duty are charges levied on goods when they cross international borders. It is a tax that is imposed on imported goods. These duties are charged by special authorities and bodies created by local governments and are meant to protect local industries, economies, and businesses.

Do I have to pay customs charges for the print book order? Chevron down icon Chevron up icon

The orders shipped to the countries that are listed under EU27 will not bear custom charges. They are paid by Packt as part of the order.

List of EU27 countries: www.gov.uk/eu-eea:

A custom duty or localized taxes may be applicable on the shipment and would be charged by the recipient country outside of the EU27 which should be paid by the customer and these duties are not included in the shipping charges been charged on the order.

How do I know my custom duty charges? Chevron down icon Chevron up icon

The amount of duty payable varies greatly depending on the imported goods, the country of origin and several other factors like the total invoice amount or dimensions like weight, and other such criteria applicable in your country.

For example:

  • If you live in Mexico, and the declared value of your ordered items is over $ 50, for you to receive a package, you will have to pay additional import tax of 19% which will be $ 9.50 to the courier service.
  • Whereas if you live in Turkey, and the declared value of your ordered items is over € 22, for you to receive a package, you will have to pay additional import tax of 18% which will be € 3.96 to the courier service.
How can I cancel my order? Chevron down icon Chevron up icon

Cancellation Policy for Published Printed Books:

You can cancel any order within 1 hour of placing the order. Simply contact customercare@packt.com with your order details or payment transaction id. If your order has already started the shipment process, we will do our best to stop it. However, if it is already on the way to you then when you receive it, you can contact us at customercare@packt.com using the returns and refund process.

Please understand that Packt Publishing cannot provide refunds or cancel any order except for the cases described in our Return Policy (i.e. Packt Publishing agrees to replace your printed book because it arrives damaged or material defect in book), Packt Publishing will not accept returns.

What is your returns and refunds policy? Chevron down icon Chevron up icon

Return Policy:

We want you to be happy with your purchase from Packtpub.com. We will not hassle you with returning print books to us. If the print book you receive from us is incorrect, damaged, doesn't work or is unacceptably late, please contact Customer Relations Team on customercare@packt.com with the order number and issue details as explained below:

  1. If you ordered (eBook, Video or Print Book) incorrectly or accidentally, please contact Customer Relations Team on customercare@packt.com within one hour of placing the order and we will replace/refund you the item cost.
  2. Sadly, if your eBook or Video file is faulty or a fault occurs during the eBook or Video being made available to you, i.e. during download then you should contact Customer Relations Team within 14 days of purchase on customercare@packt.com who will be able to resolve this issue for you.
  3. You will have a choice of replacement or refund of the problem items.(damaged, defective or incorrect)
  4. Once Customer Care Team confirms that you will be refunded, you should receive the refund within 10 to 12 working days.
  5. If you are only requesting a refund of one book from a multiple order, then we will refund you the appropriate single item.
  6. Where the items were shipped under a free shipping offer, there will be no shipping costs to refund.

On the off chance your printed book arrives damaged, with book material defect, contact our Customer Relation Team on customercare@packt.com within 14 days of receipt of the book with appropriate evidence of damage and we will work with you to secure a replacement copy, if necessary. Please note that each printed book you order from us is individually made by Packt's professional book-printing partner which is on a print-on-demand basis.

What tax is charged? Chevron down icon Chevron up icon

Currently, no tax is charged on the purchase of any print book (subject to change based on the laws and regulations). A localized VAT fee is charged only to our European and UK customers on eBooks, Video and subscriptions that they buy. GST is charged to Indian customers for eBooks and video purchases.

What payment methods can I use? Chevron down icon Chevron up icon

You can pay with the following card types:

  1. Visa Debit
  2. Visa Credit
  3. MasterCard
  4. PayPal
What is the delivery time and cost of print books? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela