Favicon of flutter

flutter

Google's open source SDK for building mobile, web, and desktop apps from a single Dart codebase, with hardware-accelerated rendering and hot reload.

Flutter is Google's SDK for building user interfaces for mobile, web, and desktop from a single codebase. It's aimed at developers who want to target multiple platforms, iOS, Android, web, Windows, macOS, and Linux, without maintaining separate native codebases for each. Flutter is free, open source, and works alongside existing native code rather than requiring a full rewrite, and it's backed by an active community across Discord, X, and Bluesky as well as a dedicated flutter-announce mailing list for releases.

Key features

  • Single codebase, multiple platforms: write once in Dart and target iOS, Android, web, Windows, macOS, and Linux from the same source.
  • Layered, pixel-level control: a layered architecture gives full control over what's drawn on screen, with compositing that lets you overlay and animate graphics, video, text, and controls freely.
  • Full widget catalog: a complete set of widgets for both iOS-style (Cupertino) and Material Design interfaces, along with support for custom components.
  • Hardware-accelerated rendering: powered by graphics libraries including Skia (the same engine behind Chrome and Android) and Impeller, aimed at smooth, jank-free graphics at native device speed.
  • Stateful hot reload: apply code changes and see results instantly in a running app without losing app state or restarting it.
  • Native code interop: FFI support on Android, iOS, macOS, and Windows, plus platform channels for calling platform-specific APIs directly.
  • Large package ecosystem: access to tens of thousands of packages on pub.dev to speed up development regardless of target platform.

Ideal use cases

Flutter fits teams building a product that needs to ship on multiple platforms from one team and one codebase, particularly when the UI needs to look and animate consistently across devices rather than adopting each platform's native look. It's also a good fit when designers want fine control over visuals and motion, since the rendering model gives pixel-level control rather than delegating to each platform's native widget toolkit. Editor support for Visual Studio Code and IntelliJ / Android Studio makes it approachable for teams already using those tools, and breaking changes are tracked publicly across releases so upgrades are easier to plan around.

Flutter is a heavier choice if you only need a single native app for one platform and want to use that platform's native toolkit directly, since you'd be adding a cross-platform runtime for no cross-platform benefit. It's also worth noting that the Flutter tool downloads the Dart SDK and other resources from Google servers on first run and on upgrade, which matters for fully offline or airgapped build environments, and using the SDK means agreeing to Google's Terms of Service as a result.

Teams that need release announcements tracked in one place can subscribe to the flutter-announce mailing list, and the project also maintains public status badges for CI health, code coverage, and security best practices, which can be useful signals when evaluating whether to depend on it for a production app.

Installation

Start with the official install guide, which covers setup for each target platform:

By downloading or using the Flutter SDK, you agree to the Google Terms of Service, since the tool fetches resources like the Dart SDK from Google servers when first run (for GitHub installs) and when upgrading with flutter upgrade. Once installed, the flutter CLI handles creating new projects, running apps with hot reload, and building release binaries for each target platform. Full documentation, including breaking changes tracked across releases, is available at the official Flutter documentation site, and contribution guidelines are in the repository's CONTRIBUTING.md file for anyone wanting to work on the SDK itself.

Categories:

Frequently asked questions

Share:

Stars
177.7K
Forks
30.6K
Last commit
4 hours ago
Repository age
11 years
License
BSD-3-Clause
Self-hosted
No
Activity score
93/100
View Repository
Built with:

Similar to flutter

Favicon

 

  
  
Favicon

 

  
  
Favicon