small medium large xlarge

Programming Flutter: Native, Cross-Platform Apps the Easy Way


Cover image for Programming Flutter

Programming Flutter

Native, Cross-Platform Apps the Easy Way


Develop your next app with Flutter and deliver native look, feel, and performance on both iOS and Android from a single code base. Bring along your favorite libraries and existing code from Java, Kotlin, Objective-C, and Swift, so you don’t have to start over from scratch. Write your next app in one language, and build it for both Android and iOS. Deliver the native look, feel, and performance you and your users expect from an app written with each platform’s own tools and languages. Deliver apps fast, doing half the work you were doing before and exploiting powerful new features to speed up development. Write once, run anywhere.

Customer Reviews

I’m excited to read this book: ten years ago, I learned Android development reading
a PragProg book, and this has changed my life forever. Now this book could change
it again.

- Giordano Scalzo

iOS Senior Software Engineer,, NatWest Markets

Carmine’s book is a comprehensive journey into Flutter. He leads you through
the basics like widgets, standard library, packages, and plugins, and helps you
to understand the more advanced topics like network, I/O, navigation, testing,
debugging, and firebase. His book is a reference for practical suggestions, useful
tips, and solid advice, without sacrificing the details. What I liked the most is that
each chapter starts with a premise, and ends with a conclusion and “where we’re
going next,” building up a natural, logical, and consequential narrative.

- Alessio Salvadorini

Creative Technologist, Nokia

Great book for anyone who wants to start grasping Flutter.

- Erdem Orman

Software Development Engineer, Amazon

If you want or need to do cross-platform mobile app development, you should
have this book at hand. Programming Flutter, by Carmine Zaccagnino, walks you
systematically through this important Google platform for building full apps that
work with Android, iOS, and Google Fuchsia.

- John Barry

Independent Editorial Consultant,

Carmine’s hands-on tutorial will help you understand Flutter and why it is the
best solution to target iPhones and Androids with a single codebase. Great book
for a great framework!

- Paul Freiberger

Coauthor, "Fire in the Valley: The Birth and Death of the Personal Computer"

See All Reviews

Choose Your Format(s)

  • $25.95 In Stock
  • Ebooks are DRM free.

  • Ebook delivery options.

What You Need

Flutter can be used for Android development on any Linux, Windows or macOS computer, but macOS is needed for iOS development.

Contents & Extracts


  • Getting Started with Flutter
    • Making Your First Flutter App
      • Get Familiar with Dart Syntax and Flutter Classes
      • Give the App Your Personal Touch excerpt
      • Where We’re Going Next
    • Laying Out More Widgets
      • Introducing Layout Widgets
      • Contain and Add Padding to Widgets Using Invisible Layout Widgets
      • Add Your Own Assets to the App
      • Displaying Images
      • Vertical Layout
      • Horizontal Layout: The Row
      • Making Grids
      • The Card
      • Fill the Space Available in the View Using Expanded
      • Slivers, Custom Scrollables, and Collapsable App Bars
      • The Key
      • Where We’re Going Next
    • Building a Calculator App excerpt
      • Importing Basic Dependencies
      • Writing main
      • The Calculator’s Home Page
      • How the App Will Be Structured
      • Implement the Basic Layout
      • Let’s Give the Calculator a Screen
      • Add the Deletion Row
      • The Third Row
      • Why a GridView Wouldn’t Work
      • Make the App Look and Work Right with Expanded
      • The Finished Layout
      • Implement the Calculations
      • Use the Calculation Inside the App
      • Wrapping Up the Calculator
      • What If We Try to Divide by 0?
      • Where We’re Going Next
    • Beyond the Standard Library: Plugins and Packages
      • An Introduction to Packages
      • Package Usage Example
      • Making Your Own Packages
      • Publishing a Package to Pub
      • Packages for Windows, macOS, and Linux
      • Where We’re Going Next
  • Doing More with Flutter
    • Network and Storage I/O and Navigation
      • The API
      • The http Package
      • Writing Methods to Fetch Comics
      • What You Need to Build the UI: Navigation and the InheritedWidget excerpt
      • Build the App’s Basic UI
      • Building the Comic Page
      • Using the CircularProgressIndicator
      • Making Everything Faster by Caching to Local Storage
      • Allowing the User to Click the Image and Go to the Website: The url_launcher Package
      • Adding Comic Selection by Number
      • Permanent Data I/O in Flutter: Adding “Starred” Comics
      • Where We’re Going Next
    • Testing and Debugging Flutter Apps
      • Testing
      • Testing the XKCD App: Using Mock Objects
      • Throwing and Catching Exceptions
      • Assert Statements
      • Where We’re Going Next
    • Build a Chat App Using Firebase
      • What Is Firebase?
      • Animations and Transistions
      • Custom Shapes and Drawing in Flutter Apps Using Painters
      • The StreamBuilder
      • Building the Chat App
      • Where You’re Going Next


Carmine Zaccagnino is a web and mobile developer and has struggled for years building Android apps using the standard SDK and, in a lesser way, Web-based tools. His experience in development areas other than mobile development has led him to be particularly bothered by the lack of a native (or close to native) framework that can bridge together Android and iOS without losing low-level access to hardware and software, until Flutter did exactly what was needed.