Welcome to Real-World Flutter by Tutorials!
This book will teach you to build professional iOS and Android apps for the real world using Flutter. You’ll gain all the foundations of mobile development you need to make the best decisions in your own codebase while addressing critical problems such as state management, user authentication and dynamic theming.
How to Read This Book
After completing Chapter 1, “Setting up Your Environment”, you’re free to skip around chapters. You don’t have to progress through this book linearly.
This book is split into 15 chapters:
1. Setting up Your Environment — This chapter welcomes you with an overview of what you’ll build and how the book will work. It sets you up for success by teaching you everything you need to run the sample app.
2. Mastering the Repository Pattern — Get your data layer under control with the repository pattern. Learn how to properly handle exceptions, write clean mappers, support caching, pagination, different fetch policies and more.
3. Managing State With Cubits & the Bloc Library — This is your first step to becoming a BLoC wizard. Understand what state management is all about and why Blocs and Cubits are the best tools for the job.
4. Validating Forms With Cubits — Master Cubits before moving on to actual Blocs in the next chapter. Learn how to combine the bloc library with Formz to achieve first-class form validation in Flutter.
5. Managing Complex State With Blocs — This is your graduation to state management. Learn how Blocs are different from cubits, the reasons you’d pick one over another, and how to use Blocs to face complex challenges, such as pagination, search bars, filters and more.
6. Authenticating Users — Learn what user authentication is, how it works and how to best architect your application to support it.
7. Routing & Navigating — Learn everything you need to know about Navigator 2, how to set up a robust routing strategy, and how to connect your features in a decoupled way.
8. Deep Linking — Put your routing mechanism to the ultimate test by adding deep link support with the help of Firebase Dynamic Links.
9. Internationalizing & Localizing — Learn how to make your app accessible to other languages.
10. Dynamic Theming & Dark Mode — Learn how to use theming with dark mode in Flutter apps. Implement the light and dark themes in WonderWords by diving deep into inherited widgets.
11. Creating Your Own Widget Catalog — Learn about the need for a component library and storybook. Add platform-specific files to a package, make it runnable as a standalone app and use it to showcase widgets in that package. Also learn how to customize a storybook.
12. Supporting the Development Lifecycle With Firebase — Learn about monitoring app lifecycle with the help of Firebase Analytics and Firebase Crashlytics.
13. Running Live Experiments With A/B Testing & Feature Flags — Learn to test different app features and variations with Firebase Remote Config and Firebase A/B Testing tools.
14. Automated Testing — In this chapter, you’ll learn about automated testing. You’ll cover theory on the importance of automated testing, best practices and different test types, as well as see multiple examples.
15. Automating Test Executions & Build Distributions — This chapter covers automated test execution, project builds for Android and distribution of the builds to Firebase App Distribution.
Finally, for all readers, raywenderlich.com is committed to providing quality, up-to-date learning materials. We’d love to have your feedback. What parts of the book gave you one of those “aha” learning moments? Was some topic confusing? Did you spot a typo or an error? Let us know at https://forums.raywenderlich.com and look for the particular forum category for this book. We’ll make an effort to take your comments into account in the next update of the book.