Build for both iOS and Android with Flutter!
Flutter is a new and exciting software development tool that lets you target multiple platforms at once, allowing you to build apps for iOS, Android and even web and desktop, all from one code base.
Like modern web technologies, Flutter uses a declarative approach to UI development. You can take advantage of the “hot reload” of new code as you develop, and your apps will run at normal speeds thanks to Flutter’s custom rendering engine.
It has been the dream of mobile developers for years to find a platform tool that allows you to build for both iOS and Android without having to write and maintain two separate code bases. With Flutter and Flutter Apprentice, you can achieve that dream!
Before you begin
This section tells you some things you need to know before you begin, such as what hardware and software you need, 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 started on a Flutter development environment, and guide you through building your first Flutter app.
You will 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 also get your first introduction to the key component found in the Flutter user interface: Widgets!
Welcome to Flutter! This chapter explains what Flutter is, why you should use it and how to get your development environment set up.
In this chapter you build your first new Flutter application and get the basics.
Section II: Everything is a widget
In this section you will start to create a full-fledged recipe app with the name Fooderlich. You will understand and use a wide range of widgets available in Flutter, and learn about the theory of how widgets work behind the scenes.
Then dive deeper into layout widgets, scrollable widgets, and interactive widgets.
Get started with the basic widgets to build your app. Learn to use structures and navigation, display and position modules!
Dive into the theory of widgets. Gain a better understanding of how widgets are rendered, their lifecycle and widget troubleshooting tools.
Scrollable content is always a must in any app. In this chapter you will learn about list and grid widgets to display content vertically and horizontally.
Learn about the various control and input programs to trigger user interface updates, such as text fields, sliders, color pickers, input tags, and rejectable widgets.
Section III: Navigating Between Screens
You continue to work with the Fooderlich app in this section, learning about navigating between screens and adding animations to the user interface.
Subjects you learn include routes, presentation of models and UI transition animations.
Learn how to navigate between screens. Learn how to create routes and communicate data!
Learn how to reveal more content in different ways using widgets like BottomSheet, Dialog, SnackBar and ExpansionPanel.
Spice up your screen transitions with beautiful animations.
Section IV: Network, Endurance and State
Most apps interact with the network to retrieve data and then retrieve the data locally in some form of cache, such as a database. In this section you build a new app that allows you to search the internet for recipes, bookmark recipes and save the ingredients in a shopping list.
You learn how to create network requests, analyze the network’s JSON response, and store data in a SQLite database. You will also receive an introduction to the use of Dart streams.
Finally, this section will also delve deeper into the important topic of app mode, which determines where and how your user interface stores and updates data in the user interface when a user interacts with your app.
This chapter will teach you how to store simple data for your device’s local storage, which can be used to store flags, IDs, numbers, etc., and which works on both Android and iOS devices.
Learn how to serialize data from a JSON string in Dart model classes. This is necessary when using REST APIs to download data from the network.
This chapter will teach you how to retrieve data from the Internet and use the knowledge you learned in the previous chapter to put the information into model classes.
See how to use the Chopper library to retrieve data from the Internet. Unlike Dart’s built-in networking methods, this library makes it easy to perform all the necessary tasks for REST API communication.
Learn about all the different government administration classes in Flutter and in the supplier library. See how to communicate data all the way down to the widget tree.
This chapter will teach you how to use Streams in your Flutter app and explain how they help with data changes that are communicated throughout your app.
Learn how to store complex data on your device’s local storage using Android and iOS’s built-in SQLite database system.
Section V: Implementation
Building an app for your own devices is great; Sharing your app with the world is even better!
In this section, you will go through 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.
Creating multi-platform applications means you need to add or build a few things that are specific to one platform or another. This chapter covers common things to include and how to implement them.
You’re finally ready to get the Flutter app ready for the Google Play Store. This chapter covers the publishing and distribution process.
No multi-platform app is complete without an iOS version. This chapter covers the release and distribution process for the Apple App Store.