Flutter in Action

Book description

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.

About the Author
Eric Windmill is a professional Dart developer and a contributor to open-source Flutter projects. His work is featured on the Flutter Showcase page.

We interviewed Eric as a part of our Six Questions series. Check it out here.



Quotes
You’ll see how and why to use Flutter the way the Flutter developer community uses it.
- From the Foreword by Ray Rischpater, Google

An excellent way to get started with learning Flutter.
- Gary Bake, Samuel Bosch, ILVO

Useful for beginners, and a great resource once you already know the basics.
- Jose San Leandro, OSOCO

A must-have reference if you want to be a mobile apps developer.
- Gonzalo Huerta-Canepa, Universidad Adolfo Ibáñez

Table of contents

  1. Copyright
  2. Brief Table of Contents
  3. Table of Contents
  4. Foreword
  5. Preface
  6. Acknowledgments
  7. About This Book
  8. About the Author
  9. About the Cover Illustration
  10. Part 1. Meet Flutter
    1. Chapter 1. Meet Flutter
      1. 1.1. Why does Flutter use Dart?
      2. 1.2. On Dart
      3. 1.3. Who uses Flutter?
      4. 1.4. Who should be using Flutter?
      5. 1.5. Who this book is for
      6. 1.6. Other mobile development options
      7. 1.7. The immediate benefits of Flutter
      8. 1.8. Future benefits of Flutter: Web apps and desktop apps
      9. 1.9. A brief intro to how Flutter works
      10. 1.10. Flutter rendering: Under the hood
      11. 1.11. Final note
      12. Summary
    2. Chapter 2. A brief intro to Dart
      1. 2.1. Hello, Dart!
      2. 2.2. Common programming concepts in Dart
      3. 2.3. Control flow
      4. 2.4. Functions
      5. 2.5. Object-oriented programming (in Dart)
      6. Summary
    3. Chapter 3. Breaking into Flutter
      1. 3.1. Intro to the counter app
      2. 3.2. Widgets: The widget tree, widget types, and the State object
      3. 3.3. BuildContext
      4. 3.4. Enhancing the counter app with the most important widgets
      5. 3.5. Favor composition in Flutter (over inheritance)
      6. 3.6. Intro to layout in Flutter
      7. 3.7. The element tree
      8. 3.8. A final note
      9. Summary
  11. Part 2. Flutter user interaction, styles, and animations
    1. Chapter 4. Flutter UI: Important widgets, themes, and layout
      1. 4.1. Setting up and configuring a Flutter app
      2. 4.2. Structural widgets and more configuration
      3. 4.3. Styling and themes in Flutter
      4. 4.4. Common layout and UI widgets
      5. 4.5. ListView and builders
      6. Summary
    2. Chapter 5. User interaction: Forms and gestures
      1. 5.1. User interaction and gestures
      2. 5.2. Flutter forms
      3. 5.3. FormField widgets
      4. 5.4. Form UI and working with focus nodes
      5. 5.5. Managing form state with form methods
      6. Summary
    3. Chapter 6. Pushing pixels: Flutter animations and using the canvas
      1. 6.1. Introducing Flutter animations
      2. 6.2. CustomPainter and the canvas
      3. 6.3. Staggered animations, TweenSequence, and built-in animations
      4. 6.4. Reusable custom color transition widgets
      5. Summary
  12. Part 3. State management and asynchronous Dart
    1. Chapter 7. Flutter routing in depth
      1. 7.1. Routing in Flutter
      2. 7.2. Declarative routing and named routes
      3. 7.3. Routing on the fly
      4. 7.4. Routing animations
      5. Summary
    2. Chapter 8. Flutter state management
      1. 8.1. Deep dive into StatefulWidgets
      2. 8.2. Pure Flutter state management: The InheritedWidget
      3. 8.3. Blocs: Business Logic Components
      4. Summary
    3. Chapter 9. Async Dart and Flutter and infinite scrolling
      1. 9.1. Async Dart
      2. 9.2. Sinks and streams (and StreamControllers)
      3. 9.3. Using streams in blocs
      4. 9.4. Async Flutter: StreamBuilder
      5. 9.5. Infinite and custom scrollable widgets
      6. Summary
  13. Part 4. Beyond foundations
    1. Chapter 10. Working with data: HTTP, Firestore, and JSON
      1. 10.1. HTTP and Flutter
      2. 10.2. JSON serialization
      3. 10.3. Working with Firebase in Flutter
      4. 10.4. Dependency injection
      5. Summary
    2. Chapter 11. Testing Flutter apps
      1. 11.1. Tests in Flutter
      2. 11.2. Accessibility with the semantics widgets
      3. 11.3. Next steps with Flutter
      4. Summary
  14. Appendix A. Installation: Dart2
    1. A.1. Installation: Dart2
    2. A.2. Installation: Flutter SDK
    3. A.3. Tooling and a quick note on text editors
    4. A.4. DartPad
  15. Appendix B. The Pub package manager
    1. B.1. Hosted packages and versioning with Pub
    2. B.2. Using packages on your machine or from GitHub
    3. B.3. Using the packages
  16. Appendix C. Flutter for web developers
    1. C.1. The good news first
    2. C.2. How is layout handled in Flutter? Is there a flexbox equivalent?
    3. C.3. What about using an absolute position?
    4. C.4. What about the basics: Borders, padding, margin, and color?
    5. C.5. Manipulating text style
    6. C.6. Global styles
  17. Appendix D. Flutter for iOS developers
    1. D.1. What’s the equivalent of UIView in Flutter?
    2. D.2. What’s the paradigm or mental model difference?
    3. D.3. Can I build an app that uses iOS design patterns?
    4. D.4. How to I make complex layouts like UITableView?
    5. D.5. What’s similar to Storyboard?
    6. D.6. How do you draw to the screen?
    7. D.7. How do I add dependencies (like Cocoa Pods)?
    8. D.8. How do I interact with the device and use native APIs?
    9. D.9. Is there an equivalent to CoreData?
  18. Appendix E. Flutter for Android developers
    1. E.1. What’s the equivalent of a view in Flutter?
    2. E.2. What’s the paradigm or mental model difference?
    3. E.3. Where’s the XML layout file?
    4. E.4. How do I draw to the screen?
    5. E.5. What’s the equivalent of an intent in Flutter?
    6. E.6. What’s the equivalent of runOnUiThread() in Flutter?
    7. E.7. What’s the equivalent of a Gradle file? How do I add dependencies?
    8. E.8. What’s the equivalent of a LinearLayout? What about ScrollView?
    9. E.9. How do I access shared preferences or SQLite?
  19. Index
  20. List of Figures
  21. List of Tables
  22. List of Listings

Product information

  • Title: Flutter in Action
  • Author(s): Eric Windmill
  • Release date: January 2020
  • Publisher(s): Manning Publications
  • ISBN: 9781617296147