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:
- flutter.dev (main Flutter site)
- Stable channel API Docs
- Main channel API Docs
- Engine Embedder API documentation:
- Installation
- Codelabs
- Contributing to Flutter
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.
- Stable channel Zeal XML configuration URL: api.flutter.dev/offline/flutter.xml
- Main channel Zeal XML configuration URL: main-api.flutter.dev/offline/flutter.xml
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
- 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.
- 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.
- 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.
- 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.
Core
VM
Web
Web (Legacy)
platform_integration
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
async
- async
- Utilities that expand on the asynchronous features of the
dart:async
library.
boolean_selector
characters
- characters
- String operations based on characters (Unicode grapheme clusters).
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
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 byFileSystem
. - 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
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
matcher
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
process
source_span
stack_trace
stream_channel
string_scanner
- string_scanner
- A library for parsing strings using a sequence of patterns.
sync_http
term_glyph
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.