Are you looking for a Flutter resource that has it all? Flutter Widgets. UI. Navigation. Networking. Persistence. State Management. Last but not least, Deployment.
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. What’s more, Flutter isn’t just for mobile any more! Recent releases of Flutter fully support web, desktop and embedded devices as well.
Flutter does have a steep learning curve, and this is because it’s a fast-growing toolkit that is constantly being improved and built upon by Google—after all, it’s so popular in the developer community!
So…how do you learn all the essential concepts in Flutter, and more? How do you get started in your Flutter journey?
Fluttering Your Way Into The World of Flutter
We’ve got some good news for you if you’re looking to explore the world of Flutter and get started with building your own cross-platform apps. We have something that teaches you all of the following concepts in Flutter:
- All types of Widgets
- User interfaces
- Navigation with screens and URLs
- Persistence and data storage
- State Management
- Deployment to the App Store and Google Play Store
We’d like to introduce our shiniest and latest book, Flutter Apprentice!
Who Is This Book For?
This book is for developers who are new to Flutter or have little experience with Flutter. If you already have experience building iOS, Android or web apps, this book will help you explore Flutter and all the possibilities it has to offer.
What’s Inside The Book?
Our Flutter Apprentice book starts from the top. It starts off with the basic building blocks of Flutter and levels up with every section. Here are the different sections in the book…
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
- why it exists
- understand the structure of Flutter projects
- 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! Here’s a sneak peek of the first Flutter app you’ll be building in this section:
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
- interactive widgets
Here’s a sneak peek at Fooderlich:
Section III: Navigating Between Screens
You’ll continue working on the Fooderlich app in this section, learning about navigating between screens and working with deep links.
Topics you’ll learn include:
- navigating between screens
- working with deep links
- Navigator 2.0
- Flutter Web
You’ll connect all of your screens together and support deep links!
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
- saving data in a SQLite database
- using Dart streams
- app state
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
- how to use platform-specific assets in your apps
In this section, you’ll find the solutions to the challenges presented in the book chapters.
What Do You Need?
To follow along with this book, you’ll need the following:
- Xcode 12.4 or later. Xcode is iOS’s main development tool, so you need it to build your Flutter app for iOS. You can download the latest version of Xcode from Apple’s developer site here: apple.co/2asi58y or from the Mac App Store. Xcode 12.4 requires a Mac running macOS Catalina (10.15) or later.
- Cocoapods 1.10.1 or later. Cocoapods is a dependency manager Flutter uses to run code on iOS.
- Flutter SDK 2.2.0 or later. You can download the Flutter SDK from the official Flutter site at https://flutter.dev/docs/get-started/install/macos. Installing the Flutter SDK will also install the Dart SDK, which you need to compile the Dart code in your Flutter apps.
- Android Studio 4.2.1 or later, available at https://developer.android.com/studio. This is the IDE in which you’ll develop the sample code in this book. It also includes the Android SDK and the build system for running Flutter apps on Android.
- Flutter Plugin for Android Studio 56.0.2 or later, installed by going to Android Studio Preferences on macOS (or Settings on Windows/Linux) and choosing Plugins, then searching for “Flutter”.
Note: You also have the option of using Linux or Windows, but you won’t be able to install Xcode or build apps for iOS on those platforms.
Note: Starting in April 2021, Apple requires apps submitted to the App Store to be developed using macOS Catalina (10.15) or later with the iOS 14 SDK.
How to Get Your Own Copy
There are two ways you can get this book:
- Buy it individually: If you want to build up a custom library without a subscription, you can choose to buy the book individually. It’s available now for just $59.99 in our online store.
- Get it as part of our subscriptions: Enjoy access to our videos and mobile development books in our Ultimate Beginner and Ultimate Pro subscription, including Flutter Apprentice! Right now, you can get a full year’s subscription and save 20% off the cost of a regular monthly subscription. It’s simply the best investment for your mobile development career.
We hope you enjoy this book! Feel free to reach out to us if you have any questions.
Meet The Authors! 👋
Say hi to the amazing folks who wrote this book…
Michael Katz [Author]: 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!).
Kevin David Moore [Author]: Kevin David 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.
Vincent Ngo [Author]: 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.
Stephanie Patterson [Tech Editor]: Stephanie Patterson is a tech editor for this book. Stef is passionate about helping others learn, which includes mentoring, writing and editing documentation, data wrangling and coding by example. Throughout most of her career, she worked as a senior SQL developer and analyst. In 2013, she started creating iOS apps using raywenderlich.com books and articles. Now, thanks to Flutter, Stef is creating natively compiled cross-platform apps. Stef loves movies, trivia nights, Sci-Fi and spending time with her husband, daughter and their chiweenie, Gracie. You can find her on Twitter at @geekmespeakstef.
Sandra Grauschopf [Editor]: Sandra Grauschopf is the editor of this book. She is a freelance writer, editor, and content strategist as well as the Editing Team Lead at raywenderlich.com. She loves to untangle tortured sentences and to travel the world with a trusty book in her hand.
Cesare Rocchi [Final Pass Editor]: Cesare Rocchi is the final pass editor for this book. Cesare runs https://studiomagnolia.com, an interactive studio that creates compelling web and mobile applications. He blogs at www.upbeat.it. You can find him on Twitter at @_funkyboy.
Joe Howard [Final Pass Editor]: Joe Howard is the final pass editor for this book. Joe’s path to software development began in the fields of computational physics and systems engineering. He started as a web developer and also has been a native mobile developer on iOS and Android since 2009. Joe has a passion for system and enterprise architecture including building robust, testable, maintainable, and scalable systems. He currently focuses on the full stack using web frameworks like React and Angular, Node.js microservices, GraphQL, and devops tools like Docker, Kubernetes, and Terraform. He lives in Boston and is a Senior Architect at CVS Health.
Start Reading for Free Today
Flutter Apprentice is out today — and even better, you can start reading the book for free:
Like every one of our books, Flutter Apprentice has been automatically added to the collections of all Ultimate Beginner and Ultimate Pro subscribers.
On behalf of the book team, we wish you much success as you explore Flutter and everything it has to offer for your own projects!