Programming Flutter (PragProg)

There seems to be quite a bit of interest in Flutter here on the forum, so posting this book up - if you get it, please post a review/let us know what you think :023:

by Carmine Zaccagnino

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.

Learn Flutter, Google’s multi-platform mobile development framework. Instantly view the changes you make to an app with stateful hot reload, and define a declarative UI in the same language as the app logic without having to use separate XML UI files. You can also reuse existing platform-specific Android and iOS code and interact with it in an efficient and simple way.

Use built-in UI elements — or build your own — to create a simple calculator app. Run native Java/Kotlin or Objective-C/Swift methods from your Flutter apps, and use a Flutter package to make HTTP requests to a Web API or to perform read and write operations on local storage. Apply visual effects to widgets, create transitions and animations, create a chat app using Firebase, and deploy everything on both platforms.

Get native look and feel and performance in your Android and iOS apps, and the ability to build for both platforms from a single code base.


  • 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
      • Laying Out the 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
      • 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.

Don’t forget you can get 35% off the ebook with your forum discount, use code ‘ElixirForum’ :023: