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.
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.
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”.
You have the option of using Visual Studio Code for your Flutter development environment instead of Android Studio. You’ll still need to install Android Studio to have access to the Android SDK and an Android emulator. If you choose to use Visual Studio Code, follow the instructions on the official Flutter site at https://flutter.dev/docs/get-started/editor?tab=vscode to get set up.
Chapter 1, “Getting Started“ explains more about Flutter history and architecture. You’ll learn how to start using the Flutter SDK, then you’ll see how to use Android Studio and Xcode to build and run Flutter apps.
Note about null safety: At the time of publication, some of the dependencies used throughout the book do not fully support null safety, so the code you’ll see from Chapter 3, “Basic Widgets” on is not null safe. We’ll migrate the code to support non-nullable types in a future update to this book.