Announcing our Newest Book: Flutter Apprentice!
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.