iv.
Introduction
Welcome to Flutter Apprentice!
Flutter is an incredible new tool that lets you build apps for iOS and Android, and even the web and desktop platforms like macOS, Windows and Linux, all from a single codebase.
Flutter has all the benefits of other cross-platform tools, especially the fact that you’re targeting multiple platforms from one code base. And, it improves upon most of them thanks to a super-fast rendering engine, so your Flutter apps perform very nearly or even exactly the same as native apps.
In addition, Flutter features are, generally speaking, independent of native features, since you use Flutter’s own type of user interface elements, called widgets, in creating a UI. And Flutter has the ability to work with native code, so you can integrate your Flutter app with native features when needed.
If you’re coming from a platform like iOS or Android, you’ll find the Flutter development experience very refreshing! Thanks to a feature called “hot reload,” you rarely need to rebuild your apps as you’re developing them. A running app in a simulator or emulator will refresh with code changes automatically as you save your source files!
In this book, you’ll see how to build full-featured Flutter apps, gain experience with a wide range of Flutter widgets and learn how to deploy your apps to mobile app stores.
How to read this book
In the first section of the book, you’ll learn how to set up a Flutter development environment, and get up and running building your first Flutter app.
The next two sections focus on user interface development with Flutter widgets, and you’ll see just how impressive Flutter user interfaces can be.
The fourth section will switch to building a new app. You’ll use it to learn about using networking and databases with Flutter, as well as the all-important topic of state management with Flutter.
The final section of the book will show you how to incorporate platform-specific assets into your app, then show you how to deploy your apps to the mobile app stores.
This book is split into these five main sections:
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!
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.
Section III: Navigating Between Screens
You’ll continue working on the Fooderlich app in this section, learning about navigating between screens and adding animations to your user interface.
Topics you’ll learn include routes, presenting modals and UI transition animations.
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.
Section V: 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.