In 2017, consumers downloaded 178 billion apps, and analysts predict growth to 258 billion by 2022. Mobile customers are demanding more—and better—apps, and it’s up to developers like you to write them! Flutter, a revolutionary new cross-platform software development kit created by Google, makes it easier than ever to write secure, high-performance native apps for iOS and Android. Flutter apps are blazingly fast because this open source solution compiles your Dart code to platform-specific programs with no JavaScript bridge! Flutter also supports hot reloading to update changes instantly. And thanks to its built-in widgets and rich motion APIs, Flutter’s apps are not just highly responsive, they’re stunning!
about the technology
With Flutter, you can build mobile applications using a single, feature-rich SDK that includes everything from a rendering engine to a testing environment. Flutter compiles programs written in Google’s intuitive Dart language to platform-specific code so your iOS and Android games, utilities, and shopping platforms all run like native Java or Swift apps.
about the book
Flutter in Action teaches you to build professional-quality mobile applications using the Flutter SDK and the Dart programming language. You’ll begin with a quick tour of Dart essentials and then dive into engaging, well-described techniques for building beautiful user interfaces using Flutter’s huge collection of built-in widgets. The combination of diagrams, code examples, and annotations makes learning a snap. As you go, you’ll appreciate how the author makes easy reading of complex topics like routing, state management, and async programming.
what's inside
Understanding the Flutter approach to the UI
All the Dart you need to get started
Creating custom animations
Testing and debugging
about the reader
You’ll need basic web or mobile app development skills.
AI Reading Assistant
Whole-book reading guide from stratified index samples; jump to passages in the text
Tip the Site
Support this siteYour recognition and a small knowledge-service contribution help keep this technical work open source.Scan the WeChat Pay or Alipay code below. Logged-in and guest visitors can both tip.
WeChat Pay
Alipay
Open WeChat or Alipay and scan. No login required.
AI guide
# Flutter in Action — Reading Guide
## 【One-Line Pitch】
A practical, project-driven introduction to building native-quality iOS and Android apps with Google's Flutter SDK and the Dart language, ideal for web or mobile developers who want one codebase for both platforms without sacrificing performance or polish.
---
## 【Book Arc】
- **Opening (~0%–9%)**: The book opens by making the case for Flutter — its speed (no JavaScript bridge), hot reload capability, and production adoption by companies like Google AdWords and Alibaba. The author shares his own enterprise experience migrating clients from three separate native teams to one unified Flutter team, then outlines who should (and shouldn't) adopt Flutter, plus a glimpse of Flutter's future on web and desktop.
- **Early (~9%–16%)**: A high-level tour of Flutter's architecture — how widgets, elements, and render objects work together, and the rendering pipeline from widget tree to pixels. This section demystifies what happens when a widget rebuilds and why Flutter is fast, setting the mental model you'll need for everything that follows.
- **Early (~16%–28%)**: A focused crash course in Dart essentials: running your first program, type safety, complex data types (List, Map), function parameters (optional, named, default values), higher-order functions, classes, inheritance, and factory/named constructors. The author keeps it practical — just enough Dart to build Flutter apps, not a language reference.
- **Early (~28%–34%)**: You create your first Flutter project and dissect the default "counter app." The author walks through project structure (where you'll spend 99% of your time — the `lib` folder), then introduces the two fundamental widget types: stateless (configuration-driven, no internal state) and stateful (manages its own state via state objects).
- **Middle (~34%–47%)**: Hands-on enhancement of the counter app using Flutter's core widgets — Container, Row, Column, Image, RaisedButton, Scaffold, AppBar. This section covers layout fundamentals, constraints (bounded vs. unbounded), flex behavior in Row/Column, adding assets, and styling with Container. You'll also see how to build custom widget classes and manage state across multiple widgets.
---
## 【Key Takeaways】
- **Flutter's core value is one codebase, native performance** (Opening): By compiling Dart to platform-specific code with no JavaScript bridge, Flutter avoids the performance penalty of hybrid approaches. This matters for teams wanting iOS + Android without maintaining two native codebases. (Early)
- **Widgets, state, and context are the three cornerstones of Flutter** (Early): Understanding how these interact — widgets as configuration, state as mutable data, context as position in the tree — is the foundation for every Flutter app you'll build. (Middle)
- **Stateless widgets are configuration, not logic** (Early): A stateless widget is destroyed when removed from the tree, so it shouldn't own data you care about. Pass data in via constructors; use stateful widgets when the widget needs to update itself. (Early)
- **Dart's type system is your friend, not your enemy** (Early): Type safety catches bugs at compile time rather than runtime. The author's advice: don't mark everything `dynamic` — you'd lose the benefits while still writing the word everywhere. (Early)
- **Constraints drive Flutter's layout engine** (Middle): Render boxes receive constraints from parents, and Row/Column behave as flex boxes — expanding to fill bounded constraints or fitting children when unbounded. Understanding this mental model prevents layout surprises. (Middle)
- **Hot reload is a game-changer, but has limits** (Middle): You can update code instantly, but changes to spec files (like `pubspec.yaml` for assets) require a hot restart (press `R` in the terminal) rather than a simple reload. (Middle)
- **Flutter's future extends beyond mobile** (Opening): The same skills you learn for iOS/Android will transfer to web and desktop when Flutter web stabilizes — the author deliberately omits web coverage because "it just works" once you know Flutter. (Early)
---
## 【Reading Tips】
1. **Skim Chapter 1's adoption arguments** if you're already convinced — the real value is in the architecture overview (widgets → elements → render objects), which you'll want to understand before writing UI code.
2. **Don't skip the Dart chapter**, even if you know another language. The sections on named/optional parameters, factory constructors, and the `meta` library for annotations are directly relevant to Flutter patterns you'll see throughout the book.
3. **Code along with the counter app enhancements** — this is where the book shifts from theory to practice. The progression from basic widgets to custom stateful classes is the backbone of the learning experience.
4. **Pay extra attention to the constraints discussion** in the layout chapter — it's the trickiest conceptual material in the early sections and explains why Row/Column behave differently depending on parent constraints.
5. **Use the terminal commands as written** — the author assumes basic CLI comfort but explains everything you need. When you see `$`, it's a terminal command; `=>` shows the expected output.
---
## 【Coverage Limits】
The excerpts cover the book's opening through roughly the middle (layout and core widgets). Later topics — routing, state management at scale, animations, testing, and debugging — are mentioned in the book's description but not covered in this guide's source material.
---
##
Excerpt 1
basic web or mobile app development skills. Eric Windmill Foreword by Ray Rischpater M A N N I N G contents foreword xv preface xvii acknowledgments xix abou...
Hello, Dart! If “Hello, Dart!” did in fact print, congrats! You wrote your first Dart program, and you’re officially a Dart programmer! Common programming co...
|- lib exist, and must contain main() |- main.dart |- test |- widget_test.dart Where you should spend 50% .gitignore of your time but will probably pubspec.y...
w, if you hot reload, you’ll see an image in your app. 3.6.9 Container widget The image doesn’t look great right now. It’s just sitting there on top of the t...
r.leading and AppBar.automatically- ImplyLeading properties. For example, maybe you don’t want a menu button to appear. You can set AppBar.automaticallyImply...
that is more complicated, now responds to : TemperatureUnit.fahrenheit; because it provides gesture details. Many the gestures. }); gestures pass details abo...
e for any reason. In the weather app, I decided to make the user confirm that they want to leave the page if they start filling out the app and then try to p...
s about because we told @override the CustomPaint widget void paint(Canvas canvas, Size size) { the size of the screen. // paint on the canvas } @override bo...
Support this siteYour recognition and a small knowledge-service contribution help keep this technical work open source.
Scan the WeChat Pay or Alipay code below. Logged-in and guest visitors can both tip.
WeChat PayAlipay
Open WeChat or Alipay and scan. No login required.
Add Tag
Enter tag name (max 50 characters)
Share E-Book
Flutter in Action (Eric Windmill)(Z-Library)
Scan QR code with your phone to access
Copy the link or scan the QR code to access this e-book on your phone
Share E-Book via Email
Please enter email address
Donation Statistics
¥.00
Total Donations
0
Donation Count
Flutter in Action (Eric Windmill)(Z-Library)
Find Your Favorite Books
Only registered users can comment after logging in. Comments need to be reviewed by administrators before being displayed
Loading comments...
Reply to Comment
Edit Comment