Download Modern Development Dart Flutter
Programming Flutter Native Cross Platform Apps Book Details
Title: Programming Flutter Native Cross Platform Apps
Author: CARMINE ZACCAGNINO
Language: English
No. of pages: 746
Format: EPUB
Preface
This book is about Flutter, Google’s open source software development kit (SDK) that can be used to develop applications across a wide range of platforms. We’ll begin by taking a brief look at its history, followed by an overview of its features and what we will see during the course of this book.
At the end of this Preface you’ll find information about the installation and usage of the Flutter SDK and integrated development environment (IDE) plugins.
A Brief History of Flutter
In 2015 Google unveiled Flutter, a new SDK based on the Dart language, as the next platform for Android development, and in 2017 an alpha version of it (0.0.6) was released to the public for the first time.
At I/O 2017 Google showed off using Flutter and its multi-platform capabilities, and continued promoting it at I/O 2018. Since then, Google has been investing in Flutter and recommending it as the way everyone should be developing mobile apps.
In December 2018 Flutter 1.0 was released and made available so that developers could begin using the SDK to make app creation easier.
At Google I/O 2019, Flutter support for desktop and web platforms was publicly announced. Tools for developing Flutter apps for Windows, macOS, Linux, and the web were released.
In addition to being unstable and untested, desktop development is being held back further by the lack of plugin support, which is very limited mostly because, at the time of writing, plugin tooling is still in the process of being developed, meaning that binaries for the platform-specific code for each platform has to be manually built and linked by editing the Google-provided Makefiles that can be found in Google’s dedicated flutter-desktop-embedding GitHub repository.[1]
On the other hand, web support is progressing quickly and shouldn’t take much more than a rebuild of a working Flutter mobile project that doesn’t have any native plugins or platform-specific code.
Why Flutter Matters and What We’ll See in This Programming Flutter Native Cross Platform Apps Book
Flutter’s entry into the mobile app development framework space is recent and, because of that, Flutter needs to carry significant improvements over existing frameworks and SDKs to actually be useful—and it does.
For one thing, with Flutter you’ll be able to develop apps that work with Android, iOS, and Google Fuchsia,[2] (which might replace Android and/or Chrome OS at some point in the future). Flutter is developed by Google, but it fully supports iOS, and this means you can now also run an iOS emulator and build for iOS in Android Studio. However, you won’t be able to build iOS apps on Linux or Windows because iOS emulation and compilation is still done through Xcode.
Flutter makes developing apps incredibly easy by allowing you to define the app’s UI declaratively but in the same place and language you define the app logic (no XML UI files required). You can instanly preview the changes you make to your app using stateful hot reload.
Additionally, its cross-platform nature doesn’t skimp on having a native look and feel, as the framework supports all of the typical native features of each of the operating systems (different app bar, different list drag to update, Material Design and Apple icons, etc.). The advantages compared to other cross-platform frameworks don’t end there: you’ll be able to run any native Kotlin/Java and Swift/Objective-C method using platform channels, as we’ll see in Integrating Native Code: Making Plugin Packages.
Even though it’s really new, Flutter is already used by some big and established companies (as well as many smaller ones) to build cross-platform mobile apps, as you can see in Google’s Flutter Showcase Page.[3]
We’ll be using Flutter packages and plugins (many of them developed by Google) to build ever more useful apps, also introducing more advanced standard Flutter features such as navigation and animations.