Welcome to the Flutter API reference documentation!

Flutter is Google's SDK for crafting beautiful, fast user experiences for mobile, web, and desktop from a single codebase. Flutter works with existing code, is used by developers and organizations around the world, and is free and open source.

This API reference covers all libraries that are exported by the Flutter SDK.

More Documentation

This site hosts Flutter's API documentation. Other documentation can be found at the following locations:

Offline Documentation

In addition to the online sites above, Flutter's documentation can be downloaded as an HTML documentation ZIP file for use when offline or when you have a poor internet connection.

Warning: the offline documentation files are quite large, approximately 700 MB to 900 MB.

Offline HTML documentation ZIP bundles:

Or, you can add Flutter to the open-source Zeal app using the following XML configurations. Follow the instructions in the application for adding a feed.

Importing a Library

Framework Libraries

Libraries in the "Libraries" section below (or in the left navigation) are part of the core Flutter framework and are imported using 'package:flutter/<library>.dart', like so:

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

Dart Libraries

Libraries in the "Dart" section exist in the dart: namespace and are imported using 'dart:<library>', like so:

import 'dart:async';
import 'dart:ui';

Except for 'dart:core', you must import a Dart library before you can use it.

Supporting Libraries

Libraries in other sections are supporting libraries that ship with Flutter. They are organized by package and are imported using 'package:<package>/<library>.dart', like so:

import 'package:flutter_test/flutter_test.dart';
import 'package:file/local.dart';

Packages on pub.dev

Flutter has a rich ecosystem of packages that have been contributed by the Flutter team and the broader open source community to a central repository. Among the thousands of packages, you'll find support for Firebase, Google Fonts, hardware services like Bluetooth and camera, new widgets and animations, and integration with other popular web services. You can browse those packages at pub.dev.

Libraries

animation
The Flutter animation system.
cupertino
Flutter widgets implementing the current iOS design language.
foundation
Core Flutter framework primitives.
gestures
The Flutter gesture recognizers.
material
Flutter widgets implementing Material Design.
painting
The Flutter painting library.
physics
Simple one-dimensional physics simulations, such as springs, friction, and gravity, for use in user interface animations.
rendering
The Flutter rendering tree.
scheduler
The Flutter Scheduler library.
semantics
The Flutter semantics package.
services
Platform services exposed to Flutter apps.
widgets
The Flutter widgets framework.

Dart

dart:ui
Built-in types and core primitives for a Flutter application.
dart:ui_web

Core

dart:async
Support for asynchronous programming, with classes such as Future and Stream.
dart:collection
Classes and utilities that supplement the collection support in dart:core.
dart:convert
Encoders and decoders for converting between different data representations, including JSON and UTF-8.
dart:core
Built-in types, collections, and other core functionality for every Dart program.
dart:developer
Interact with developer tools such as the debugger and inspector.
dart:math
Mathematical constants and functions, plus a random number generator.
dart:typed_data
Lists that efficiently handle fixed sized data (for example, unsigned 8 byte integers) and SIMD numeric types.

VM

dart:ffi
Foreign Function Interface for interoperability with the C programming language.
dart:io
File, socket, HTTP, and other I/O support for non-web applications.
dart:isolate
Concurrent programming using isolates: independent workers that are similar to threads but don't share memory, communicating only via messages.

Web

package:web open_in_new
This package exposes browser APIs. It's intended to replace dart:html and similar Dart SDK libraries. It will support access to browser APIs from Dart code compiled to either JavaScript or WebAssembly.
dart:js_interop
Interoperability, "interop" for short, with JavaScript and browser APIs.
dart:js_interop_unsafe
Utility methods to manipulate JavaScript objects dynamically.

Web (Legacy)

package:js open_in_new
Use this package when you want to call JavaScript APIs from Dart code, or vice versa.
dart:html
HTML elements and other resources for web-based applications that need to interact with the browser and the DOM (Document Object Model).
dart:js
Low-level support for interoperating with JavaScript.
dart:js_util
Utility methods to manipulate package:js annotated JavaScript interop objects in cases where the name to call is not known at runtime.

platform_integration

android
Flutter platform integration APIs for Android.
ios
Flutter platform integration APIs for iOS.
linux
Flutter platform integration APIs for Linux.
macos
Flutter platform integration APIs for macOS.
windows
Flutter platform integration APIs for Windows.

flutter_test

flutter_test
Testing library for flutter, built on top of package:test.

flutter_driver

driver_extension
This library provides a Dart VM service extension that is required for tests that use package:flutter_driver to drive applications from a separate process, similar to Selenium (web), Espresso (Android) and UI Automation (iOS).
flutter_driver
Provides API to test Flutter applications that run on real devices and emulators.

Flutter

flutter_localizations

flutter_localizations
Localizations for the Flutter library.

flutter_web_plugins

flutter_web_plugins
The platform channels and plugin registry implementations for the web implementations of Flutter plugins.
url_strategy

leak_tracker_flutter_testing

leak_tracker_flutter_testing

async

async
Utilities that expand on the asynchronous features of the dart:async library.

boolean_selector

boolean_selector

characters

characters
String operations based on characters (Unicode grapheme clusters).

clock

clock

collection

algorithms
Import collection.dart instead.
collection
equality
Import collection.dart instead.
iterable_zip
Import collection.dart instead.
priority_queue
Import collection.dart instead.
wrappers
Import collection.dart instead.

crypto

crypto

fake_async

fake_async

file

chroot
A file system that provides a view into another FileSystem via a path.
file
Core interfaces containing the abstract FileSystem interface definition and all associated types used by FileSystem.
local
A local file system implementation. This relies on the use of dart:io and is thus not suitable for use in the browser.
memory
An implementation of FileSystem that exists entirely in memory with an internal representation loosely based on the Filesystem Hierarchy Standard.

integration_test

common
integration_test
integration_test_driver
integration_test_driver_extended

intl

date_symbol_data_custom
API to allow setting Date/Time formatting in a custom way.
date_symbol_data_file
This file should be imported, along with date_format.dart in order to read locale data from files in the file system.
date_symbol_data_http_request
This file should be imported, along with date_format.dart in order to read locale data via http requests to a web server..
date_symbol_data_local
Date/time formatting symbols for all locales.
date_symbols
date_time_patterns
Date/time formatting symbols for a large subset of locales.
find_locale
intl
This library provides internationalization and localization. This includes message formatting and replacement, date and number formatting and parsing, and utilities for working with Bidirectional text.
intl_default
intl_standalone
This provides facilities for Internationalization that are only available when running standalone. You should import only one of this or intl_browser.dart. Right now the only thing provided here is finding the operating system locale.
locale
This library provides access to the Locale class.
message_format
MessageFormat prepares strings for display to users, with optional arguments (variables/placeholders). The arguments can occur in any order, which is necessary for translation into languages with different grammars. It supports syntax to represent plurals and select options.
message_lookup_by_library
Message/plural format library with locale support. This can have different implementations based on the mechanism for finding the localized versions of messages. This version expects them to be in a library named e.g. 'messages_en_US'. The prefix is set in the "initializeMessages" call, which must be made for a locale before any lookups can be done.
number_symbols
number_symbols_data
Date/time formatting symbols for all locales.

leak_tracker

devtools_integration
The library should be used by DevTools to analyse the collected leaks.
leak_tracker

leak_tracker_testing

leak_tracker_testing

matcher

expect
matcher
Support for specifying test expectations, such as for unit tests.

material_color_utilities

blend/blend
contrast/contrast
dislike/dislike_analyzer
dynamiccolor/dynamic_color
dynamiccolor/dynamic_scheme
dynamiccolor/material_dynamic_colors
dynamiccolor/src/contrast_curve
dynamiccolor/src/tone_delta_pair
dynamiccolor/variant
hct/cam16
hct/hct
hct/src/hct_solver
hct/viewing_conditions
material_color_utilities
palettes/core_palette
palettes/tonal_palette
quantize/quantizer
quantize/quantizer_celebi
quantize/quantizer_map
quantize/quantizer_wsmeans
quantize/quantizer_wu
quantize/src/point_provider
quantize/src/point_provider_lab
scheme/scheme
scheme/scheme_content
scheme/scheme_expressive
scheme/scheme_fidelity
scheme/scheme_fruit_salad
scheme/scheme_monochrome
scheme/scheme_neutral
scheme/scheme_rainbow
scheme/scheme_tonal_spot
scheme/scheme_vibrant
score/score
temperature/temperature_cache
utils/color_utils
utils/math_utils
utils/string_utils

meta

dart2js
Constants for use in metadata annotations to provide hints to dart2js, which is the compiler used by dart compile js.
meta
Annotations that developers can use to express the intentions that otherwise can't be deduced by statically analyzing the source code.
meta_meta
Annotations that describe the intended use of other annotations.

path

path
A comprehensive, cross-platform path manipulation library.

platform

platform

process

process

source_span

source_span

stack_trace

stack_trace

stream_channel

isolate_channel
stream_channel

string_scanner

string_scanner
A library for parsing strings using a sequence of patterns.

sync_http

sync_http

term_glyph

term_glyph

test_api

backend
fake
hooks
hooks_testing
scaffolding
test_api

typed_data

typed_buffers
Growable typed-data lists.
typed_data
Utilities and functionality related to the "dart:typed_data" library.

vector_math

hash
vector_math
A library containing different type of vector operations for use in games, simulations, or rendering.
vector_math_64
A library containing different type of vector operations for use in games, simulations, or rendering.
vector_math_geometry
A library containing geometry generators (like CubeGenerator, SphereGenerator and CylinderGenerator) and filters (BarycentricFilter, ColorFilter and InvertFilter).
vector_math_lists
A library for working with lists of vectors in a memory efficient way.
CAESARPLAY
A library containing matrix operations (Matrix44Operations) that can be performed on Float32List instances and SIMD optimized operations (Matrix44SIMDOperations) that can be performed on Float32x4List instances.

vm_service

utils
vm_service
vm_service_io

webdriver

async_core
async_html
async_io
core
io
support/async
support/firefox_profile
support/stdio_stepper
sync_core
sync_io