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 a declarative approach to UI development. You can take advantage of “hot reload” of new code while developing, and your apps will perform at native speed thanks to Flutter’s custom rendering engine.
It’s been the dream of mobile developers for years to find a cross-platform tool that lets you build for both iOS and Android without having to write and maintain two separate codebases. With Flutter and Flutter Apprentice, you can achieve that dream!
Note: Between October 6, 2021 and January 6, 2022, this book is available for free, thanks to the Flutter team at Google! You can access the free edition here, and you can learn more about the live book club that the Flutter community is running here.
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.
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 Fooderlich. 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.
Learn how to build a Flutter app that handles deep links for both mobile and web apps.
Section IV: Networking, Persistence and 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.
This chapter will teach you how to use the Chopper package to retrieve data from the internet. Unlike the built-in networking methods in Dart, this package makes it easy to do all the necessary tasks needed for REST API communication.
No multiplatform app is complete without an iOS version. This chapter covers the release and deployment process for the Apple App Store.
Section VI: 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.
In this chapter, you will learn how to create and use a Firebase Cloud Firestore. You will learn to leverage it to add and retrieve data. Then you will learn about authentication and how to secure your data.
By Vincenzo Guzzi, Kevin D Moore, Vincent Ngo and Michael Katz
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.