Skip to main content

Book review: Flutter Cookbook

As you know, some time ago I started accepting reviews of learning material for mobile development. It allows to give a critique of study material to students who are interested in this type of material.

Flutter Cookbook: 100+ step-by-step recipes for building cross-platform, professional-grade apps with Flutter 3.10.x and Dart 3.x, 2nd Edition

I want to clarify that this book is only available in English, although in the digital version it will not be very difficult to translate it. I would like to make this clear from the beginning. 

This book was first published in June 2021 and has been updated to its second edition in May 2023. This includes Dart 3 and a version of the Flutter SDK 3.10.
 
Cover of the Flutter Cookbook by Simone Alessandria.

Author

Simone Alessandria wrote his first program when he was 12. It was a text-based fantasy game for the Commodore 64. Now, he is a trainer (MCT), author, speaker, passionate software architect, and always a proud coder. He is the founder and owner of Softwarehouseit. His mission is to help developers achieve more through training and mentoring. He has authored several books on Flutter, including Flutter Projects, published by Packt, and web courses on Pluralsight and Udemy. 

About the book

The book is made up of 16 chapters over 663 pages. They cover many topics, plus you'll discover downloadable resources and images. But I would like to highlight the chapters that I find most interesting:

Chapter 3 - Dart

In this 64-page chapter you will learn the fundamental concepts of the Dart language.

Chapter 4 - 5 - Widgets

Throughout the 2 chapters with more than 85 pages you will learn the basics of Widgets and the Widget Tree.

Chapter 6 - Interactivity and Navigation

In this chapter, in addition to navigation you will also discover how to create interactions of different types, Scroll, ListBuilders, TextFields, buttons, etc...  

Chapter 7 - State Management

Model View pattern, InheritedWidget and InheritedNotifier. This means that we will be able to see the status of the application visible between different views.

Chapter 8 - Asynchronous Programming and Promises

One of my favourite chapters. You will explore concurrency handling through asynchronous calls, as well as the use of promises, in Dart called Future. We also discover FutureGroup handling and error handling. As I say, I enjoyed this chapter the most.

Chapter 9 - Data persistence and JSON handling

You will learn how to convert Dart models into JSON, handling JSON schemas that are incompatible with your models, catching common JSON error, saving data simply with shared_preferences dependency, accessing the filesystem with path_provider dependency and using secure storage to store data with flutter_secure_storage dependency and finally the handling of network requests through the use of the http dependency.

Chapter 10 - Streams

This chapter focuses on several use cases of streams in a Flutter app. You will see streams used in different scenarios, and how to read and write data to streams, build user interfaces based on streams, and use the BLoC state management pattern (Business Logic Components).
Flow of the BLoC pattern in Flutter.

Chapter 11 - Using Flutter Packages

In this chapter you will learn how to manage the dependency manager in Flutter, how to create your own packages and finally how to use Google Maps in Flutter.

Chapter 12 - Animations

Throughout this chapter you will discover how to create and optimise your animations, as well as how to work with transitions, Hero, AnimatedList, Implementing swiping and animation dependency.

Chapter 13 - Firebase

This chapter teach you a lot of things of Firebase. Login Screen, Google Sign-in, Firebase Analytics, etc..

Chapter 14 - Firebase ML

This chapter has been designed entirely to explore Google's ML Kit, recognising text from an image, reading a barcode, tagging images, language identification, building a face detector and detecting facial gestures, etc.

Chapter 15 - Flutter Web and Desktop

Throughout this chapter you will discover how to create a responsive app leveraging Flutter Web, Running your app on Windows and MacOS. Gesture detection and desktop menu bar give you a lot of capabilities for Desktop development.

Chapter 16 - Distributing Your Mobile App

This final chapter gives you a deep review about how to distribute your apps, managing of certificates and fastlane.

Conclusions

I loved the number of chapters it covers and I was also pleasantly surprised by how up to date it is. If I had to say something against it, I would like it to at least mention more alternatives to the management of the state of the applications available in Flutter and the navigation between views. Lastly, I would perhaps lengthen the part explaining the Dart language. But I'm really pleased with the book, which is suitable for beginners and not-so-beginners alike who want to delve deeper into many of the aspects Simone goes into.

If you want to buy a copy I leave you the link to Amazon.

Greetings and see you in other posts!


Comments

© 2020 Mobile Dev Hub