A guide covering the Flutter Framework including the applications and tools that will make you a better and more efficient Flutter developer.
Note: You can easily convert this markdown file to a PDF in VSCode using this handy extension Markdown PDF.
Flutter is Google's UI toolkit for crafting beautiful, natively compiled applications for mobile(Andorid and iOS), web, and desktop(Windows, MacOS, Linux, and Google Fuchsia) from a single codebase. Flutter works with existing code, is used by developers and organizations around the world, and is free and open source.
Flutter Gems is a curated package guide for Flutter which functionally categorizes some of the most useful and popular flutter packages available on pub.dev Flutter Gems A Flutter package landscape guide comprising 1500+ neatly categorized useful and popular packages.
Dart is an open-source, scalable programming language, with robust libraries and runtimes, for building web, server, and mobile apps using the Flutter framework.
Fuchsia is an open source effort to create a production-grade operating system that prioritizes security, updatability, and performance.
Firebase is a Backend-as-a-Service (BaaS) app development platform that provides hosted backend services such as a realtime database, cloud storage, authentication, crash reporting, machine learning, remote configuration, and hosting for your static files.
Dart Code is a VS Code extension that provides support for the Dart programming language, and provides tools for effectively editing, refactoring, running, and reloading Flutter mobile apps.
Flutter Dart Code is a VS Code extension that adds support for effectively editing, refactoring, running, and reloading Flutter mobile apps. It depends on (and will automatically install) the Dart extension for support for the Dart programming language.
Pubspec Assist is a Visual Studio Code extension that allows you to easily add dependencies to your Dart and Flutter project's pubspec.yaml, all without leaving your editor.
Flutter Stylizer is a VSCode extension that organizes your Flutter classes in an opinionated and consistent manner.
Flutter Tree is a VS Code extension for Flutter to build basic widget tree with nice syntax.
Json to Dart Model is a VS Code extension that converts Json to Dart Model class.
Better Comments is a is a VS Code extension that helps your code commenting by annotating with alert, informational, TODOs, and more.
ErrorLens is a VS Code extension that turbo-charges language diagnostic features by making diagnostics stand out more prominently, highlighting the entire line wherever a diagnostic is generated by the language and also prints the message inline.
Flutter-view VSCode is a VS Code extension that allows you to inspect pug files and see the generated dart code behind it, as well as navigate to it. This makes navigating between Pug source and generated Dart code quicker and more pleasant.
Flutter-view is a command line tool that allows you to lay out your Flutter apps faster, using Pug/HTML and Sass/CSS.
FlutterFire is a set of Flutter plugins that enable Flutter apps to use Firebase services. You can follow an example that shows how to use these plugins in the Firebase for Flutter codelab.
FlutterBoost is a Flutter plugin which enables hybrid integration of Flutter for your existing native apps with minimum efforts.
Go-flutter is a package that brings Flutter to the desktop. project implements the Flutter's Embedding API using a single code base that runs on Windows, macOS, and Linux. For rendering, GLFW fits the job because it provides the right abstractions over the OpenGL's Buffer/Mouse/Keyboard for each platform.
Firebase is a Backend-as-a-Service (BaaS) app development platform that provides hosted backend services such as a realtime database, cloud storage, authentication, crash reporting, machine learning, remote configuration, and hosting for your static files.
Firebase iOS is all the Apple platform Firebase SDK source except FirebaseAnalytics, FirebasePerformance, and FirebaseML.
Appwrite is a secure end-to-end backend server for Web, Mobile, and Flutter developers that is packaged as a set of Docker containers for easy deployment.
Fluro is a Flutter routing library that adds flexible routing options like wildcards, named parameters and clear route definitions.
Fuchsia is an open source effort to create a production-grade operating system that prioritizes security, updatability, and performance.
Fuchsia Filesystem Architecture
Fuchsia emulator (FEMU) is the default emulator for Fuchsia. FEMU allows you to test Fuchsia components and applications without a physical Fuchsia device.
Fuchsia Interface Definition Language (FIDL) is the language used to describe interprocess communication (IPC) protocols used by programs running on Fuchsia.
Fuchsia System Interface is the binary interface that the Fuchsia operating system presents to software it runs. The foundation of the interface is the vDSO, which provides access to the system calls. Programs are not allowed to issue system calls directly (e.g., by trapping into the kernel). Instead, programs use the vDSO to interface with the kernel. The bulk of the system interface is provided through inter-process communication protocols, typically defined using FIDL. These protocols are spoken over various kernel primitives, including channels and sockets.
Fuchsia Integrator Development Kit (IDK) is a Developer Kit that contains a small set of libraries and tools required to start building and running programs that target Fuchsia.
Zircon is the core platform that powers Fuchsia. Zircon is composed of a kernel (source in /zircon/kernel) as well as a small set of userspace services, drivers, and libraries (source in /zircon/system/) necessary for the system to boot, talk to hardware, load userspace processes and run them, etc. Fuchsia builds a much larger OS on top of this foundation.
ffx is a tool that provides a unified platform for Fuchsia CLI tools for host target interactions. It introduces a service oriented interface to many common development and integration workflow operations that users may wish to perform against one or more Fuchsia target devices.
Escher is a physically based renderer. It is a C++/Vulkan library that is used primarily by the Scenic implementation; it is not exposed by the Fuchsia SDK.
Magma is the gpu driver architecture for Fuchsia. There are two driver components: a gpu-specific library loaded into each application’s address space; and the magma system driver that manages the hardware.
Sysmem is a FIDL service that allocates shared memory for use by multiple applications and hardware blocks. This document gives an overview of its major features and what it provides to the system.
GN is a meta-build system that generates build files for Ninja. GN is currently used as the build system for Chromium, Fuchsia, and related projects.
GN C++ Frontend SDK is development kit that currently only supports Linux hosts and the GN build system.
Dart is an open-source, scalable programming language, with robust libraries and runtimes, for building web, server, and mobile apps using the Flutter framework.
Android Studio is the official integrated development environment for Google's Android operating system, built on JetBrains' IntelliJ IDEA software and designed specifically for Android development. Availble on Windows, macOS, Linux, Chrome OS.
IntelliJ IDEA is an IDE for Java, but it also understands and provides intelligent coding assistance for a large variety of other languages such as Kotlin, SQL, JPQL, HTML, JavaScript, etc., even if the language expression is injected into a String literal in your Java code.
Dart DevTools is a suite of debugging and performance tools for Dart and Flutter. These tools are distributed in IDEs, the flutter tool, the webdev tool, and the devtools package.
DartPad is an online editor for Dart.
Flutter SDK is Google's UI toolkit for crafting beautiful, natively compiled applications for mobile, web, and desktop from a single codebase using Dart.
Pub is a tool that has commands for managing packages and for deploying packages and command-line apps.
Analysis server is designed to provide on-going analysis of one or more code bases as those code bases are changing.
Dart VM is a tool to run Dart command-line apps such as server-side scripts, programs, and servers.
dart2js is a tool to compile Dart code to deployable JavaScript. Another Dart-to-JavaScript compiler, dartdevc, is for development use only. The webdev build command uses dart2js by default.
dartdevc is the Dart development compiler that lets you run and debug your Dart web app in the Chrome browser.
AngularDart is a productive web application framework that powers some of Google's most critical applications. It's built on Dart and used extensively by Google AdWords, AdSense, Fiber, and many more projects.
RxDart is a package with Reactive Extensions for Dart that adds additional capabilities to Dart Streams and StreamControllers.
Firebase is a Backend-as-a-Service (BaaS) app development platform that provides hosted backend services such as a realtime database, cloud storage, authentication, crash reporting, machine learning, remote configuration, and hosting for your static files.
Android Studio is the official integrated development environment for Google's Android operating system, built on JetBrains' IntelliJ IDEA software and designed specifically for Android development. Availble on Windows, macOS, Linux, Chrome OS.
Firebase Analytics is a Google API that provides methods for logging events and setting user properties.
Firebase ML is an Google API includes all of Firebase's cloud-based ML features.
ML Kit is a standalone library for on-device ML, which you can use with or without Firebase.
Firebase iOS is all the Apple platform Firebase SDK source except FirebaseAnalytics, FirebasePerformance, and FirebaseML.
FlutterFire is a set of Flutter plugins that enable Flutter apps to use Firebase services. You can follow an example that shows how to use these plugins in the Firebase for Flutter codelab.
AngularFire is the official Angular library for Firebase.
Vuefire is Firebase bindings for Vue.js & Vuex.
Reactive Native Firebase is a well-tested feature-rich modular Firebase implementation for React Native. Supports both iOS & Android platforms for all Firebase services.
React Redux Firebase is Redux bindings for Firebase that includes React Hooks and Higher Order Components.
FirebaseUI is an open-source library for Android that allows you to quickly connect common UI elements to Firebase APIs.
Pyrebase is a simple python wrapper for the Firebase API.
EmberFire is the officially supported adapter for using Firebase with Ember.
ReactFire is a project that provides Hooks, Context Providers, and Components that make it easy to interact with Firebase.
- If would you like to contribute to this guide simply make a Pull Request.
Distributed under the Creative Commons Attribution 4.0 International (CC BY 4.0) Public License.