Flutter & Dart

Flutter Apprentice

Build for both iOS and Android with Flutter! Flutter is a new and exciting software development toolkit that lets you target multiple platforms at once, so you can build apps for iOS, Android and even web and desktop, all from a single codebase. By Vincent Ngo, Stef Patterson, Alejandro Ulate Fallas & Kevin D Moore.

Read for Free with the Personal Plan* * Includes this and all other books in our online library See all benefits
Buy Individually $59.99* *Includes access to all of our online reading features.
Leave a rating/review
Download materials
Buy paperback—Amazon Comments
Save for later
Share

Who is this for?

This book is for developers that are new to Flutter, including developers with experience on iOS, Android and web.

Covered concepts

  • Flutter widgets
  • Fetching data
  • State management
  • Dart
  • Deploying to app stores
Build for both iOS and Android with Flutter!

Flutter is a new and exciting software development toolkit that lets you target multiple platforms at once, so you can build apps for iOS, Android and even web and desktop, all from a single codebase.

Similar to modern web technologies, Flutter uses...

more

Before You Begin

This section tells you a few things you need to know before you get started, such as what you’ll need for hardware and software, where to find the project files for this book, and more.

Section I: Build Your First Flutter App

The chapters in this section will introduce you to Flutter, get you up and running with a Flutter development environment and walk you through building your first Flutter app.

You’ll learn about where Flutter came from and why it exists, understand the structure of Flutter projects, and see how to create the user interface of a Flutter app.

You’ll also get your first introduction to the key component found in Flutter user interfaces: Widgets!

1
Toggle description
Welcome to Flutter! This chapter explains what Flutter is, why you should use it and how to get your development environment set up.
Toggle description
In this chapter, you’ll build your first Flutter app from scratch and get the hang of fundamentals.

Section II: Everything’s a Widget

In this section you’ll start to build a full-featured recipe app named Yummy. You’ll gain an understanding of and use a wide range of widgets available in Flutter, and learn about the theory of how widgets work behind the scenes.

You’ll then dive deeper into layout widgets, scrollable widgets and interactive widgets.

Toggle description
Get started with the fundamental widgets to build your app. Learn to apply structure and navigation, display, and positional widgets!
Toggle description
Dive into the theory behind widgets. Get a better understanding of how widgets are rendered, how their lifecycle works and which tools to use to debug them.
Toggle description
Scrollable content is a must in any app. In this chapter, you'll learn about using list and grid widgets to display content vertically and horizontally.
Toggle description
Explore advanced Flutter widgets: tap into Slivers for intricate scroll designs, employ GridView for adaptive layouts, and unveil Bottom Sheets for an enhanced interactive interface.
Toggle description
Learn how to incorporate controls and input widgets to trigger updates by working with widgets like text fields, bottom sheets, time and date pickers, and dismissable widgets.

Section III: Navigating Between Screens

You’ll continue working on the Yummy app in this section, learning about navigating between screens and working with deep links.

Topics you’ll learn include Navigator 2.0, go_router and Flutter Web.

Toggle description
Learn how Navigator 2.0 differs from Navigator 1.0 and how to use it to add navigation declaratively.
Toggle description
Learn how to build a Flutter app that handles deep links for both mobile and web apps.

Section IV: Networking, Persistence & State

Most apps interact with the network to retrieve data and then persist that data locally in some form of cache, such as a database. In this section, you’ll build a new app that lets you search the Internet for recipes, bookmark recipes, and save their ingredients into a shopping list.

You’ll learn about making network requests, parsing the network JSON response, and saving data in a SQLite database. You’ll also get an introduction to using Dart streams.

Finally, this section will also dive deeper into the important topic of app state, which determines where and how your user interface stores and refreshes data in the user interface as a user interacts with your app.

Toggle description
This chapter will teach you how to save simple data to your device's local storage on both Android and iOS devices. Use this to save flags, IDs, numbers and more.
Toggle description
This chapter will teach you how to serialize data from JSON strings to Dart model classes. This is necessary when using REST APIs to download data from the internet.
Toggle description
This chapter will teach you how to retrieve data from the internet and how to use the Chopper package, which you'll use to display recipes in the app you've created so far.
Toggle description
This chapter explains what state management is and how to implement it with the Riverpod package. You’ll learn how to listen and react to data changes in different parts of the widget tree.
Toggle description
This chapter will teach you what streams are, how to use them in your Flutter app and how they help communicate data changes throughout your app.
Toggle description
This chapter will teach you how to save complex data to your device's local store using the SQLite database system built into Android and iOS and the Drift library.

Section V: Working With Firebase Cloud Firestore

In this section you will learn how to create and use a Firebase Cloud Firestore. You will learn how to use it to add and retrieve data. Then you will learn about authentication and how to secure your data.

Toggle description
In this chapter, you'll learn how to create and use a Firebase Cloud Firestore. You'll learn to leverage it to add and retrieve data. Then, you'll learn about authentication and how to secure your data.

Section VI: Testing Your Flutter App

Building an app is a great adventure; checking that it works as expected makes it even better!

In this section you’ll learn about the importance of testing your code and the different types of tests that you can implement. Specifically, you’ll learn about unit and widget tests, their differences and how to adopt them in your app.

Toggle description
This chapter will introduce you to testing. You'll learn the different types of tests supported in Flutter and you'll start writing unit tests for the business logic of your app.
Toggle description
This chapter will teach you about widget testing and how to leverage it to verify that your widgets are correctly displayed on screen.

Section VII: Deployment

Building an app for you own devices is great; sharing your app with the world is even better!

In this section you’ll go over the steps and process needed to release your apps to the iOS App Store and Google Play Store. You’ll also see how to use platform-specific assets in your apps.

Toggle description
When you make multiplatform apps, you need to add or build things specific to one platform or another. This chapter covers common things to include and how to implement them.
Toggle description
You're finally ready to prepare your Flutter app for the Google Play Store. This chapter covers the release and deployment process.
Toggle description
No multiplatform app is complete without an iOS version. This chapter covers the release and deployment process for the Apple App Store.