Why I Read This Book#
This book was lent to me by Kim Arang (alee), who loves Flutter just as much as I do. It was the first book I read after finishing the common curriculum at 42Seoul and mostly completing my blog. I wanted to read this book because I wanted to learn more about Flutter, and since I built ittae with Flutter, I wanted to find areas for improvement for refactoring.
I had read several Flutter books before, but they only contained basic explanations for beginners, which was disappointing. There were no books explaining how to combine state management with clean architecture or the folder structures needed for this, so I struggled a lot during projects. As a result, even after reading those books, they weren't very helpful when building something. This made me lose interest in Flutter books written by domestic developers.
However, this book was a bit different. Perhaps because there are people who think like me, when I saw the authors introduced as Grady and Elieen, I initially thought it was written by foreigners and became interested. But reading the preface, I realized it was actually a domestically produced book. The authors work at a startup, and since they're in an industry that uses Flutter extensively, seeing that they also decided to learn Flutter for this purpose made me feel a sense of kinship since I was in a similar situation. Anyway, let me read through it!
Paused Reading 🥲#
I couldn't read during January and February because I was preparing for the 2024 Pre-Startup Package 😥
In February and March, I was preparing for the Pre-Startup Package, and from March 6th to March 26th, I was traveling in Europe.
So even after several months, I hadn't read much of the book.. I had only read up to about page 300.
Although I haven't finished reading, let me share my impressions so far. Much of the book—over 200 pages—is devoted to explaining concepts, and the stage where you actually set up a Flutter project and write code doesn't come until the latter part. While there wasn't much that was completely new to me since I had already learned from official documentation and YouTube videos, the authors clearly did extensive research and introduced related concepts well, making it a pleasant read.
What I Liked#
Most of the code appears in small snippets for explanation purposes, so this isn't a book where you follow along typing code. It's more of an explanation-focused book rather than a hands-on workbook. What I surprisingly enjoyed most while reading this book was the section on Firebase. I had used Firebase before reading the book, but I hadn't paid much attention to security. The book taught me about Cloud Firestore security rules and showed me patterns and methods applicable in production, which was great since it's something I need to be mindful of when building apps in the future.
Finally Finished! ✨#
After only being able to read little by little over a long period, I finally finished the book. The growing number of red (unread) days on my blog was bothering me, which motivated me to keep reading.
Based on my experience, I think the useful parts of this book start from Chapter 7. Up to Chapter 6, there was more explanation than code. As I mentioned above, when explaining certain code, complete examples weren't provided, so there were cases where I had to guess certain classes or functions on my own. Also, since I already had experience learning Flutter, there wasn't much I learned about Flutter or Dart itself. However, it was good that it raised thought-provoking topics related to operations.
From Chapter 7 onwards, though, I was able to learn things related to operations, which was very useful. It seems like a good section to revisit later when working with Firebase services or deploying projects.
The test code in Chapter 9 also seems like a good reference for TDD. Since I had experience using Chrome Driver with Selenium before reading this section, the Flutter Driver part wasn't difficult.
There were many typos that frequently broke my concentration while reading, but if you like Flutter, I recommend giving it a read. However, I think it would be most helpful if you already have some experience with Flutter.
