Flutter is an incredible new tool that lets you build apps for iOS and Android, and even for the web and desktop platforms like macOS, Windows and Linux — all from a single codebase. With the benefit of cross-platform development, and a super-fast rendering engine, your Flutter apps perform very nearly or even exactly the same as native apps.
That’s why we couldn’t wait to announce our newest book that’s designed to help you take advantage of this great new platform, and to get started building apps on Flutter: the Flutter Apprentice!
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 as well.
Keep reading to learn more about the Flutter Apprentice, how Flutter is poised to be a dream cross-platform tool, and how you can get started reading for free today!
What is Flutter?
In simplest terms, Flutter is a software development toolkit from Google for building cross-platform apps. Flutter apps consist of a series of packages, plugins and widgets — but that’s not all. Flutter is a process, a philosophy and a community as well.
It’s also the easiest way to get an app up and running on any one platform, let alone multiple. Its declarative, widget-based UI structure, first class support for reactive programming, cross platform abstractions and virtual machine that allows for hot reloading of code changes mean you can be way more productive than you thought possible.
And developers are starting to take notice; in fact, Flutter is now one of the fastest-growing platforms in terms of popularity. Judging by the trends at Stack Overflow, Flutter could be poised to take over iOS and Android as the most popular mobile development platform in just a year or two:
For years, programmers have been promised the ability to write once and run anywhere; Flutter may well be the best attempt yet at achieving that goal.
About Flutter Apprentice
This book will be your guide to learning the Flutter UI Toolkit, Google’s platform for building apps for mobile, desktop and web from a single code base.
The five sections of this book will progressively teach you how to create an app using Flutter. You’ll learn all about widgets, which are components that you compose to build your apps. You’ll also learn about navigation and transitions, state, and network management. Finally, you’ll learn how to deploy the app to testers and users.
Section I: Introduction
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!
- Introduction: Welcome to Flutter! This chapter explains what Flutter is, why you should use it and how to get your development environment set up.
- Hello Flutter: In this chapter, you’ll build your first new Flutter application 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.
- Basic Widgets: The fundamental widgets to build your app. Learn to apply structure and navigation, display, and positional widgets!
- Understanding Widgets: Dive into the theory of widgets. Get a better understanding of how widgets are rendered, their lifecycle, and tools for debugging widgets.
- Scrollable Widgets: 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.
- Interactive Widgets: Learn about the various control and input widgets to trigger updates to your user interface such as text fields, sliders, color picker, input chips and dismissable 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.
- Routes and Navigation: Find out how to navigate between your screens. Learn how to create routes and pass data around!
- Navigation Presentation: Learn how to reveal more content in different ways using widgets such as BottomSheet, Dialog, SnackBar, and ExpansionPanel.
- UI Transition Animations: Spice up your screen transitions with beautiful 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.
- Shared Preferences: This chapter will teach you how to save simple data to your device’s local storage, which can be used to save flags, IDs, numbers, etc. and will work on both Android and iOS devices.
- Serialization with JSON: Learn how to serialize data from a JSON string in to Dart model classes. This is needed when using REST APIs to download data from the network.
- Networking in Flutter: This chapter will teach you how to retrieve data from the internet and use the knowledge you learned in the previous chapter to put that information into model classes.
- Use the Chopper Library: See how to use the Chopper library to retrieve data from the internet. Unlike the built-in networking methods in Dart, this library makes doing all the necessary tasks for REST API communication easy.
- State Management: Learn about all the different state management classes in Flutter and in the Provider library. See how to communicate data all the way down the widget tree.
- Streams: This chapter will teach you how to use Streams in your Flutter app and explain how they help with data changes being communicated throughout your app.
- Save Data with SQLite: See how to save complex data to your device’s local storage using the Android and iOS built-in SQLite database system.
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.
- Use Platform Specific App Assets: Making multiplatform applications means you’ll need to add or build a few things specific to one platform or another. This chapter covers common things to include and how to implement them.
- Build and Release an Android App: You’re finally ready to get your Flutter app prepared for the Google Play Store. This chapter covers the release and deployment process.
- Build and Release an iOS App: No multiplatform app is complete without an iOS version. This chapter covers the release and deployment process for the Apple App Store.
By the end of the book, you’ll be able to take an idea, turn it into a great-looking, multi-platform app and submit it for publication.
Start Reading Flutter Apprentice for Free
Did you know that all of our books include free chapters, even if you aren’t a subscriber to our site?
We’ve made the following chapters of Flutter Apprentice available for free so that you can get a preview of the book:
- [Free!] Chapter 1: Introduction: Welcome to Flutter! This chapter explains what Flutter is, why you should use it and how to get your development environment set up.
- [Free!] Chapter 3: Basic Widgets: We’ll dive straight into the fundamental widgets to build your app. You’ll learn how to apply structure and navigation, display, and positional widgets!
As we add more chapters to the book, we’ll likely make a few more chapters free so you can get a really good idea of what’s in the book. But you can get started reading the early access edition of Flutter Apprentice today:
Meet the Authors
Of course, the Flutter Apprentice would be nothing without the efforts of our team of authors on this book:
Kevin Moore is an author of this book. Kevin has been developing Android apps for over 10 years and at many companies. He’s written several articles at raywenderlich.com and created the “Programming in Kotlin” video series. He enjoys creating apps for fun and teaching others how to write Android apps. In addition to programming, he loves playing volleyball and running the sound system at church.
Michael Katz is champion baker. He’s also a developer, architect, speaker, writer and avid homebrewer. He has contributed to several books on iOS development and is a long-time member of the raywenderlich.com tutorial team. He shares his home state of New York with his family, the world’s best bagels, and the Yankees. When not at his computer, he’s out on the trails, in his shop, or reading a good book (like this one!).
Vincent Ngo is an author of this book. A software developer by day at a growing startup, and a Flutter enthusiast by night, he believes that sharing knowledge is the best way to learn and grow as a techie. Vincent starts every morning with a Cà phê sữa đá (Vietnamese coffee) to fuel his day. He enjoys playing in small golf tournaments, meditating, and watching animated movies. You can find him on Twitter: @vincentngo2.
Where to Go From Here?
The Flutter Apprentice is available as part of both the Ultimate Pro and Ultimate Beginner subscriptions. Combining top-notch video courses with detailed, professional books, an Ultimate subscription is simply the best investment you can make in your development career.
- To learn more about the Ultimate Pro and Ultimate Beginner subscriptions, check out our subscription page here.
- To check out the book, head over to the Flutter Apprentice homepage and start reading online today for free!
As we add more content in the coming weeks, you’ll automatically receive free updates to the book as they become available.
From the entire Flutter Apprentice team, thank you for your support, and we hope you enjoy this latest release! :]