Launch DevTools2

Download as pdf or txt
Download as pdf or txt
You are on page 1of 36

Diagnosing performance

problems
To diagnose an app with performance problems, you’ll enable
the performance overlay to look at the UI and raster threads.
(The raster thread was previously known as the GPU thread.)
Before you begin, you want to make sure that you’re running in
profile mode, and that you’re not using an emulator. For best
results, you might choose the slowest device that your users
might use.

Connect to a physical device


Almost all performance debugging for Flutter applications
should be conducted on a physical Android or iOS device, with
your Flutter application running in profile mode. Using debug
mode, or running apps on simulators or emulators, is generally
not indicative of the final behavior of release mode builds. You
should consider checking performance on the slowest device
that your users might reasonably use.

Why you should run on a real device:


• Simulators and emulators don’t use the same hardware,
so their performance characteristics are different—some
operations are faster on simulators than real devices, and
some are slower.
• Debug mode enables additional checks (such as asserts)
that don’t run in profile or release builds, and these checks
can be expensive.
• Debug mode also executes code in a different way than
release mode. The debug build compiles the Dart code
“just in time” (JIT) as the app runs, but profile and release
builds are pre-compiled to native instructions (also called
“ahead of time”, or AOT) before the app is loaded onto the
device. JIT can cause the app to pause for JIT
compilation, which itself can cause jank.

Run in profile mode


Flutter’s profile mode compiles and launches your application
almost identically to release mode, but with just enough
additional functionality to allow debugging performance
problems. For example, profile mode provides tracing
information to the profiling tools.

info Note: DevTools can’t connect to a Flutter web app


running in profile mode. Use Chrome DevTools to generate
timeline events for a web app.
Launch the app in profile mode as follows:

• In VS Code, open your launch.json file, and set the


flutterMode property to profile (when done profiling, change
it back to release or debug):
content_copy
"configurations": [

• {
• "name": "Flutter",
• "request": "launch",
• "type": "dart",
• "flutterMode": "profile"
• }
• ]

• In Android Studio and IntelliJ, use the Run > Flutter Run
main.dart in Profile Mode menu item.
• From the command line, use the --profile flag:
content_copy
$ flutter run --profile

For more information on the different modes, see Flutter’s build


modes.

You’ll begin by opening DevTools and viewing the performance


overlay, as discussed in the next section.

Launch DevTools
DevTools provides features like profiling, examining the heap,
displaying code coverage, enabling the performance overlay,
and a step-by-step debugger. DevTools’ Timeline view allows
you to investigate the UI performance of your application on a
frame-by-frame basis.

Once your app is running in profile mode, launch DevTools.


Flutter performance
profiling
Performance
Flutter performance profiling
info Note: To learn how to use the Performance View (part of
Flutter DevTools) for debugging performance issues, see Using
the Performance view.
What you’ll learn
• Flutter aims to provide 60 frames per second (fps)
performance, or 120 fps performance on devices capable
of 120Hz updates.
• For 60fps, frames need to render approximately every
16ms.
• Jank occurs when the UI doesn’t render smoothly. For
example, every so often, a frame takes 10 times longer to
render, so it gets dropped, and the animation visibly jerks.
It’s been said that “a fast app is great, but a smooth app is even
better.” If your app isn’t rendering smoothly, how do you fix it?
Where do you begin? This guide shows you where to start,
steps to take, and tools that can help.

Stay up to date
What’s new
This page contains current and previous announcements of
what’s new on the Flutter website and blog. For details about
what’s new in the Flutter releases see the release notes page.

To stay on top of Flutter announcements including breaking


changes, join the flutter-announce Google group.

For Dart, you can join the Dart Announce Google group, and
review the Dart changelog.

Automated
Flutter builds
with Bitrise
Out-of-the-box support for your Flutter apps. Build
Flutter apps for both iOS and Android and use our
Flutter Steps to build, test, and deploy them.
Start 30-day free trial
Talk to an expert →
The ideal place to
build, test, and
release Flutter
apps
A single Workflow for all platforms
Build a cross-platform app with Flutter and manage your Flutter
build in a single
Extensive customization for Flutter
builds
Customize your Flutter build to fit your needs. Specify the exact
version of the
Get cross-platform and third-party support, automated
workflow configuration, custom plans, and more
continuous integration for your Flutter build — you name
it, we have it.

Automatic Flutter Workflow


configuration
The Bitrise project scanner will detect that your app is built with
Flutter, and will automatically configure an initial Workflow for
you with all the necessary Flutter Steps. If you have tests in
your project, the scanner also recognizes those.

350+ integrations
The Bitrise Step library has over 350 integrations with mobile
tooling and is ever-expanding. Integrate with most third-party
mobile tools to manage your dependencies, run your tests, or
deploy your app. Missing anything? Request or build it yourself!

Enterprise-ready feature sets for


Flutter builds
Bitrise supports all major Git services, Pay-As-You-Build, SAML
SSO, team and role management, enterprise-grade security,
and hosting. Used by 20% of Fortune's Global 100 for some of
the world's most downloaded apps.
Integrating with all the tools you love and use for testing,
distribution, and notification.

Flutter Analyze
Run the `flutter analyze` command in any Flutter build to check
your code with the Dart analyzer.

Flutter Build
Build and deploy your Flutter apps for both Android and iOS
with their own customized configurations.

Flutter Testt tests that are written for Flutter builds. Use
any of the available flags for the `flutter test` command.

16 August 2023: 3.13


release
Flutter 3.13 is live! For more information, check out the Flutter
3.13 blog post.

You might also check out Dart 3.1 & a retrospective on


functional style programming in Dart 3.

In addition to new docs since the last release, we have been


incrementally releasing a revamped version of the
docs.flutter.dev website. Specifically, we have reorganized
(flattened) the information architecture (IA) and have
incorporated some of our most popular cookbook recipes into
the sidenav. Let us know what you think!

Docs updated or added since the 3.10 release

• A rewrite and rename that completes the Use a native


language debugger page. This page covers how to
connect both a native debugger and a Dart debugger to
your app for Android and iOS. (The previous version of
this page was out of date and didn’t cover iOS.)
• A new Layout/Scrolling overview page. (In fact, scrolling is
also a new section of the IA.)
• We have sunsetted the Happy Paths recommendations in
favor of the Flutter Favorites program. Look for additions
to Flutter Favorites very soon!
• The Impeller runtime is now available for macOS behind a
flag. For more information, check out the Impeller
rendering engine page.
• As always, this release includes a few breaking changes.
The following links have more information, including info
on how to migrate to the new APIs:
◦ Removing the ignoreSemantics property from
IgnorePointer, AbsorbPointer, and SliverIgnorePointer
◦ The Editable.onCaretChanged callback is removed
◦ Also check out the deprecated APIs since 3.10
Codelabs and workshops

The following codelab has been published since Flutter 3.10:

• Adding a Home Screen widget to your Flutter app


Articles

The following articles were published on the Flutter Medium


publication since Flutter 3.10:

• The Future of iOS development with Flutter


• How it’s made: I/O Flip
• Flutter 2023 Q1 survey results
What’s coming

Things that are coming soon-ish to a stable release:

Material 3

You’ve probably heard by now that Material 3 is coming. It’s


been available on Flutter for some time now, by setting
useMaterial3: true in your code. By the next stable release in Q4,
Material 3 will be enabled by default. Now would be a good
time to start migrating your code. Most all of the example code
on this website has been updated to use Material 3.

For more information, check out the following resources:

• Flutter 3.13 blog post


• Material Design for Flutter page
Impeller for Android

Progress continues on Impeller for Android. For more


information, check out the Flutter 3.13 blog post.

New scrolling APIs

We have been working on updating our scrolling APIs. The


rework will eventually result in 2D scrolling support for trees
and tables, even diagonal scrolling! Flutter 3.13 also provides
new Sliver classes for fancy scrolling. For more information,
check out the Flutter 3.13 blog post.

Updates to the Games toolkit

We are working on updates to the Flutter Games toolkit,


including the sample code, additional docs, and a new video.
The Games toolkit is developed independently of the Flutter
SDK, so stay tuned for updates as they are ready. For more
information, check out the Flutter 3.13 blog post.

10 May 2023: Google I/O


2023: 3.10 release
Flutter 3.10 is live! This release contains many updates and
improvements. This page lists the documentation changes, but
you can also check out the 3.10 blog post and the 3.10 release
notes.

You might also check out Introducing Dart 3.

Docs updated or added since the 3.7 release

• Added section on wireless debugging for iOS or Android


to the add-to-app module guide. You can debug your iOS
or Android app on a physical device over Wi-Fi.
• Updated the Material Widget Catalog to cover Material 3.
• Added the new canvasKitVariant runtime configuration
setting. This web initialization option lets you configure
which version of CanvasKit to download.
• Updated the Impeller reference. iOS apps now default to
the Impeller renderer.
• Added the Android Java Gradle migration guide on
resolving an incompatibility between Java 17 and Gradle
releases prior to 7.3.
• Updated the DevTools reference material.
• Updated the WebAssembly support reference with
guidelines on trying out preview support.
• Added guide on adding iOS app extensions to Flutter
apps. This release enables using native iOS app
extensions with your Flutter apps.
• Added guide on testing Flutter plugins.
• Added guide on fonts and typography.
• Added guide on restoring state on Android and iOS Flutter
apps.
• Added a section about sharing iOS and macOS plugin
implementations.
• Added a guide on adapting the Material alert dialog, top
app bar and navigation bar, and bottom navigation bar
widgets to the current platform as a start of UI component
platform adaptation guidelines.
• Introduced the Anatomy of an app section in the
Architectural overview.
• Added provenance information per SLSA to all downloads
in the SDK archive page. Provenance guarantees that the
built artifact comes from the expected source.
Codelabs

The following codelabs have been published since Flutter 3.7:

• Records and Patterns in Dart 3


Discover Dart 3’s new records and patterns features.
Learn how you can use them in a Flutter app to help you
write more readable and maintainable Dart code.
• Building next generation UIs in Flutter
Learn how to build a Flutter app that uses the power of
flutter_animate, fragment shaders, and particle fields. You
will craft a user interface that evokes those science fiction
movies and TV shows we all love watching when we
aren’t coding.
• Create haikus about Google products with the PaLM API
and Flutter
NEW Learn how to build an app that uses the PaLM API
to generate haikus based on Google product names. The
PaLM API gives you access to Google’s state-of-the-art
large language models.
Articles

The Flutter team published the following articles on the Flutter


Medium publication since Flutter 3.7:

• Flutter in 2023: strategy and roadmap


• Wonderous nominated for Webby Award

25 Jan 2023: Flutter


Forward: 3.7 release
Flutter 3.7 is live! This release contains many updates and
improvements. This page lists the documentation changes, but
you can also check out the 3.7 blog post and the 3.7 release
notes.

You might also check out What’s next for Flutter and
Introducing Dart 3 alpha.

Docs updated or added since the 3.3 release

• You can now pass configuration information to the engine


in the initializeEngine method. For more information, check
out Customizing web app initialization.
• Creating Flavors for Flutter Learn how to create a flavor in
Flutter (also known as a build configuration in iOS).
• Internationalization support has been revamped and the
Internationalizing Flutter apps page is updated.
• The DevTools memory debugging tool has been
completely overhauled and the corresponding page, Using
the memory view, is rewritten.
• This release includes numerous improvements to Flutter’s
support for custom fragment shaders. For more
information, see the new Writing and using fragment
shaders page.
• Some security tools falsely report security vulnerabilities in
Flutter apps. The new Security false positives page lists
the known false positives and why you can ignore them.
• You can now invoke a platform channel from any isolate,
including background isolates. For more information,
check out Writing custom platform-specific code and the
Introducing isolate background channels article on
Medium.
• We’ve updated our Swift documentation. New and
updated pages include:
◦ Flutter for SwiftUI developers - updated
◦ Add a Flutter screen to an iOS app - updated for
SwiftUI
◦ Flutter concurrency for Swift developers - new
◦ Learning Dart as a Swift developer on dart.dev - new
• As of Xcode 14, Apple no longer supports bitcode. Two of
our pages, Adding an iOS clip target and the Flutter FAQ,
are updated to reflect this fact.
• For developers who enjoy living on the bleeding edge, you
might want to try Flutter’s future rendering engine,
Impeller. Because Impeller isn’t yet ready for a stable
release, you can find more information on our Flutter
GitHub wiki.
Codelabs and workshops

We have new codelabs since the last stable release:

• Your first Flutter app


Learn about Flutter as you build an application that
generates cool-sounding names, such as “newstay”,
“lightstream”, “mainbrake”, or “graypine”. The user can ask
for the next name, favorite the current one, and review the
list of favorited names on a separate page. The final app
is responsive to different screen sizes. (Note that this
codelab replaces the previous “Write your first Flutter
codelab for mobile, part 1 and part 2.”)
• Using FFI in a Flutter plugin
Dart’s FFI (foreign function interface) allows Flutter apps
to use of existing native libraries that expose a C API. Dart
supports FFI on Android, iOS, Windows, macOS, and
Linux.
• Building a game with Flutter and Flame
Learn how to build a platformer game with Flutter and
Flame! In the Doodle Dash game, inspired by Doodle
Jump, you play as either Dash (the Flutter mascot), or her
best friend Sparky (the Firebase mascot), and try to reach
as high as possible by jumping on platforms.
• Add a user authentication flow to a Flutter app using
FirebaseUI
Learn how to add Firebase Authentication to your Flutter
app using the FlutterFire UI package. You’ll add both
email/password and Google Sign In authorization to a
Flutter app. You’ll also learn how to set up a Firebase
project, and use the FlutterFire CLI to initialize Firebase in
your Flutter app.
• Local development for your Flutter apps using the
Firebase Emulator Suite
Learn how to use the Firebase Emulator Suite with Flutter
during local development, including how to use email-
password authentication with the Emulator Suite, and how
to read and write data to the Firestore emulator. Also,
you’ll import and export data from the emulators, to work
with the same faked data each time you return to
development.
In addition, we’ve updated all of our existing codelabs to
support multiplatform. The codelabs & workshops page is
updated to reflect the latest available codelabs.

Articles

We’ve published the following articles on the Flutter Medium


publication since the last stable release:
• What’s next for Flutter
• Adapting Wonderous to larger device formats
• What’s new in Flutter 3.7
• Announcing the Flutter News Toolkit
• How it’s made: Holobooth
• Playful typography with Flutter
• Material 3 for Flutter
• Introducing background isolate channels
• How can we improve the Flutter experience for desktop?
• What we learned from the Flutter Q3 2022 survey
• Supporting six platforms with two keyboards
• Studying developer’s usage of IDEs for Flutter
development

31 Aug 2022: Flutter


Vikings: 3.3 release
Flutter 3.3 is live! For more information, see

What’s new in Flutter 3.3, and Dart 2.18: Objective-C & Swift
interop (free articles on Medium), and the Flutter 3.3 release
notes.

Docs updated or added since the 3.0 release

• The navigation and routing overview page has been


rewritten with more guidance on using Navigator and Router
together, named routes, and using a routing package.
• The URL strategies page has also been updated to reflect
a more streamlined API.
• For apps not published to the Microsoft Store, you can
now set the app’s executable’s file and product versions in
the pubspec file. For more information, see Build and
release a Windows desktop app.
• If you are developing software for iOS 16 and higher, you
must enable Developer mode. The macOS install page is
updated with this information.
• As described in the 3.3 release notes, you should catch all
errors and exceptions in your app by setting the
PlatformDispatcher.onError callback, instead of using a
custom Zone. The Handling errors in Flutter page has
been updated with this advice.

11 May 2022: Google I/O


2022: Flutter 3 release
Flutter 3 is live!!! For more information, see Introducing Flutter
3, What’s new in Flutter 3, and Dart 2.17: Productivity and
integration (free articles on Medium), and the Flutter 3 release
notes.

Docs updated or added since the 2.10 release

• We have launched the Casual Games Toolkit to help you


build games with Flutter. Learn more on the Games page
and the Games doc page.
• Are you struggling to level up as a Flutter developer? We
have created the Happy paths project to help. Learn more
on the Happy paths page. (Note, this program has been
discontinued in favor of the Flutter Favorite Program.)
• Are you a web developer who would like more control over
your app’s launch process? Check out the new page,
Customizing web app initialization, which has been added
to the newly updated and collected web docs under /
platform-integration/web.
• Flutter 3 supports Apple Silicon processors. We’ve
updated the macOS install page to offer an Apple Silicon
download button.
• In Flutter 3, the macOS and Linux platforms have reached
stable, in addition to Windows. You can now develop your
app to run on any or all of these platforms. As a result, the
Desktop (and related) pages are updated.
• The Performance best practices page has largely been
rewritten and moved to be more visible. The changes
include additional advice on avoiding jank, including how
to minimize layout passes caused by intrinsics, and
techniques to minimize calls to saveLayer().
• Firebase’s Flutter docs have been overhauled. Check out
the newly updated Flutter Firebase get started guide.
• The dart.dev site has its own what’s new page, but one
new page of note is the guide, Learning Dart as a
JavaScript developer. Stay tuned for similar articles on
Swift and C#.
Codelabs and workshops

We have a new codelab since the last stable release:

• Take your Flutter app from boring to beautiful Learn how


to use features in Material 3 to make your more beautiful
and more responsive.
Also, check out the workshops written by our GDEs and
available on the Flutter community blog.

Videos

Google I/O 2022 is over, but you can still check out the Flutter-
specific updates and talks from Google I/O on the videos page.
03 Feb 2022: Windows
Support: 2.10 release
Desktop support for Microsoft Windows (a central feature of the
2.10 release) is live! For more information, see Announcing
Flutter for Windows and What’s new in Flutter 2.10, free articles
on Medium.

Flutter
507K subscribers
Flutter Update: Windows

Share

Watch on
<div class="player-unavailable"><h1 class="message">An error occurred.</h1><div
class="submessage"><a href="https://www.youtube.com/watch?v=g-0B_Vfc9qM"
target="_blank">Try watching this video on www.youtube.com</a>, or enable JavaScript if
it is disabled in your browser.</div></div>

08 Dec 2021: 2.8 release


Flutter 2.8 is live! For details, see Announcing Flutter 2.8 and
What’s new in Flutter 2.8.

08 Sep 2021: 2.5 release


Flutter 2.5 is live! For details, see What’s new in Flutter 2.5.

We’ve made significant changes to flutter/website repo to make


it easier to use and maintain. If you contribute to this repo, see
the README file for more information.

Docs updated or added since the 2.2 release

• A new page on Using Actions and Shortcuts.


Articles

We’ve published the following articles on the Flutter Medium


publication since the last stable release:

• Raster thread performance optimization tips


• Writing a good code sample
• GSoC’21: Creating a desktop sample for Flutter
• Flutter Hot Reload
• What can we do to better improve Flutter?
• Adding Flutter to your existing iOS and Android
codebases
• Google I/O Spotlight: Flutter in action at ByteDance
• Improving Platform Channel Performance in Flutter

18 May 2021: Google I/O


2021: 2.2 release
Flutter 2.2 is live! For details, see Announcing Flutter 2.2 and
What’s New in Flutter 2.2.

We continue migrating code on the website to use null safety,


but that work is not yet completed.

Docs updated or added since the 2.0 release

• A new page on Building adaptive apps.


• A new page describing how to use Google APIs with
Flutter.
• A new landing page for Embedded Support for Flutter.
• A new page on setting up and using Deferred components
on Android.
• Significant updates to the DevTools Memory view page.
• The desktop page is updated to reflect the progress on
desktop support, particularly the new support for Windows
UWP.
Codelabs

New codelabs since the last stable release:

• Adding in-app purchases to your Flutter app


• Build Voice Bots for Android with Dialogflow Essentials &
Flutter
• Get to know Firebase for Flutter
Workshops

For Google I/O 2021, we have added a new Flutter/Dart


learning tool that is based on DartPad: Workshops! These
workshops are designed to be instructor led. The instructor-led
videos are available on the Flutter and Firebase YouTube
channels:
• Building your first Flutter app
• Firebase for Flutter
• Flutter and Dialogflow voice bots
• Inherited widgets
• Null safety
• Slivers
To see the event list of “all things Flutter” at I/O, see the Google
2021 I/O Flutter page.

You can author your own DartPad workshops! If you are


interested, check out the following resources:

• DartPad Workshop Authoring Guide


• DartPad Sharing Guide (using a Gist file)
• Embedding DartPad in your web page
Articles

We’ve published the following articles on the Flutter Medium


publication since the last stable release:

• How It’s Made: I/O Photo Booth


• Which factors affected users’ decisions to adopt Flutter? -
Q1 2021 user survey results

03 Mar 2021: Flutter


Engage: 2.0 release
Flutter 2 is live!!! For more information, see Announcing Flutter
2, What’s new in Flutter 2, Flutter web support hits the stable
milestone, Announcing Dart 2.12, and the Flutter 2 release
notes.
Docs updated or added since the 1.22 release

• A new Who is Dash? page!


• Information about monetizing your apps has been
collected in the new Flutter Ads landing page.
• Added a new page explaining the Flutter Fix feature and
how to use it.
• New and updated web pages, including:
◦ Web support for Flutter
◦ Configuring the URL strategy on the web
◦ Web FAQ
• The Desktop support for Flutter page is updated, as well
as other pages on the site that discuss desktop support.
• The DevTools docs have been updated. The most
significant updates are to the following page:
◦ Flutter inspector
• Added a page on how to implement deep linking for
mobile and web.
• Updated the Creating responsive and adaptive apps page.
• Many pages (including all codelabs on flutter.dev) and
examples are updated to be null safe.
• Added two new add to app pages:
◦ Using multiple Flutter instances
◦ Adding a Flutter view to an Android app
• Added a page on how to write integration tests using the
integration_test package.
• Significant updates to the internationalization page.
• New and updated performance pages, including:
◦ Performance metrics
◦ Performance faq
◦ More thoughts about performance
Codelabs

Many of our codelabs have been updated to null safety. We’ve


also added a new codelab since the last stable release:

• Adding AdMob banner and native inline ads to a Flutter


app
For a complete list, see Flutter codelabs.

Articles

We’ve published the following articles on the Flutter Medium


publication since the last stable release:

• Flutter performance updates in the first half of 2020


• Are you happy with Flutter? - Q4 2020 user survey results
• Join us for #30DaysOfFlutter
• Providing operating system compatibility on a large scale
• Updates on Flutter Testing
• Announcing Dart null safety beta
• Deprecation Lifetime in Flutter
• New ad formats for Flutter
• Accessible expression with Material Icons and Flutter
• Dart sound null safety: technical preview 2
• Flutter on the web, slivers, and platform-specific issues:
user survey results from Q3 2020
• Testable Flutter and Cloud Firestore
• Performance testing on the web

01 Oct 2020: 1.22


release
Flutter 1.22 is live! For details, see Announcing Flutter 1.22.

Docs updated or added to flutter.dev since the 1.20 release

• Updated the Developing for iOS 14 page with details


about targeting iOS 14 with Flutter, including some Add-
to-App, deep linking, and notification considerations.
• Added a page on how to add an iOS App Clip, a new iOS
14 feature that supports running lightweight, no-install
apps under 10 MB.
• Added a page that describes how to migrate your app to
use the new icon glyphs available in CupertinoIcons.
• Added a page that describes the new implementation for
Platform Views and how to use them to host native
Android views and iOS views in your Flutter app platform-
views. This feature has enabled the google_maps_flutter
and webview_flutter plugins to be updated to production-
ready release 1.0.
• Added a page that describes how to use the new App Size
tool in Dart DevTools.
Codelabs

We’ve added a new codelab since the last stable release:

• Building Beautiful Transitions with Material Motion for


Flutter
Learn how to use the Material animations package to add
prebuilt transitions to a Material app called Reply.
For a complete list, see Flutter codelabs.

Articles

We’ve published the following articles on the Flutter Medium


publication since the last stable release:

• Learning Flutter’s new navigation and routing


• Integration testing with flutter_driver
• Announcing Flutter Windows Alpha
• Handling web gestures in Flutter
• Supporting iOS 14 and Xcode 12 with Flutter
• Learn testing with the new Flutter sample
• Platform channel examples
• Updates on Flutter and Firebase
05 Aug 2020: 1.20
release
Flutter 1.20 is live! For details, see Announcing Flutter 1.20.

Docs updated or added to flutter.dev

• Flutter architectural overview, a deep dive into Flutter’s


architecture, was added to the site just a few days after
the 1.20 release.
• Reducing shader compilation jank on mobile is added to
the performance docs.
• Developing for iOS 14 beta outlines some issues you
might run into if developing for devices running iOS 14
beta.
• New instructions for installing Flutter on Linux using
snapd.
• Updated the Desktop support page to reflect that Linux
desktop apps (as well as macOS) are available as alpha.
• Several new Flutter books have been published. The
Flutter books page is updated.
• The codelabs landing page has been updated.
A deep dive into null safety has been added to dart.dev:

• Understanding null safety


Codelabs

Flutter Day was held on 6/25/2020. In preparation for the event,


we wrote new codelabs and updated existing codelabs. New
codelabs include:

• Adding Admob Ads to a Flutter app


• How to write a Flutter plugin
• Multi-platform Firestore Flutter
• Using a plugin with a Flutter web app
• Write a Flutter desktop application
For a complete list, see Flutter codelabs.

Articles

We’ve published the following articles on the Flutter Medium


publication since the last stable release:

• Announcing Adobe XD support for Flutter


• What are the important & difficult tasks for Flutter devs? -
Q1 2020 survey results
• Optimizing performance in Flutter web apps with tree
shaking and deferred loading
• Flutter Package Ecosystem Update
• Improving perceived performance with image
placeholders, precaching, and disabled navigation
transitions
• Two Months of #FlutterGoodNewsWednesday
• Handling 404: Page not found error in Flutter
• Flutter and Desktop apps
• What’s new with the Slider widget?
• New tools for Flutter developers, built in Flutter
• Canonical enables Linux desktop app support with Flutter
• Enums with Extensions in Dart
• Managing issues in a large-scale open source project
• What we learned from the Flutter Q2 2020 survey
• Building performant Flutter widgets
• How to debug layout issues with the Flutter Inspector
• Going deeper with Flutter’s web support
• Flutter Performance Updates in 2019
06 May 2020: Work-
From-Home: 1.17
release
Flutter 1.17 is live!

For more information, see Announcing Flutter 1.17.

Docs added and updated since the last announcement include:

• Added a new page on Understanding constraints,


contributed by Marcelo Glasberg, a Flutter community
member.
• The animations landing page has been re-written. This
page now includes the animation decision tree that helps
you figure out which animation approach is right for your
needs. It also includes information on the new package for
pre-canned Material widget animations.
• The hot reload page has been re-written. We hope you
find it to be clearer!
• The Desktop page has been updated and now includes
information on setting up entitlements and using the App
Sandbox on macOS.
• The plugin docs are updated to cover the new Android
Plugin APIs and also to describe Federated Plugins.
Affected pages include:
◦ Developing packages and plugins
◦ Developing plugin packages
◦ Supporting the new Android plugin APIs
◦ Writing custom platform-specific code
• Added an Obfuscating Dart code page. (Moved from the
wiki and updated as of 1.16.2.)
• Added a page on using Xcode 11.4 and how to manually
update your project. The tooling, which automatically
updates your configuration when possible, might direct
you to this page if it detects that it’s needed.
• Added a page on Managing plugins and dependencies in
add-to-app when developing for Android.
Other newness:

• We’ve published a number of articles on the Flutter


Medium publication since the last stable release:
◦ Custom implicit animations in Flutter…with
TweenAnimationBuilder
◦ Directional animations with build-in explicit
animations
◦ When should I use AnimatedBuilder or
AnimatedWidget?
◦ Improving Flutter with your opinion - Q4 2019 survey
results
◦ How to write a Flutter web plugin, Part 2
◦ It’s Time: The Flutter Clock contest results
◦ How to float an overlay widget over a (possibly
transformed) UI widget
◦ How to embed a Flutter application in a website using
DartPad
◦ Flutter web: Navigating URLs using named routes
◦ How to choose which Flutter animation widget is right
for you?
◦ Announcing a free Flutter introductory course
◦ Announcing CodePen support for Flutter
◦ Animation deep dive
◦ Flutter Spring 2020 update
◦ Introducing Google Fonts for Flutter v 1.0.0!
◦ Flutter web support updates
◦ Modern Flutter plugin development
11 Dec 2019: Flutter
Interact: 1.12 release
Flutter 1.12 is live!

For more information, see Flutter: the first UI platform designed


for ambient computing, Announcing Flutter 1.12: What a year!
and the Flutter 1.12.13 release notes.

Docs added and updated since the last announcement include:

• To accompany an updated implementation of add-to-app,


we have added documentation on how to add Flutter to an
existing app for both iOS and Android.
• If you own plugin code, we encourage you to update to the
new plugin APIs for Android. For more information, see
Migrating your plugin to the new Android APIs.
• Web support has moved to the beta channel. For more
information, see Web support for Flutter and Web support
for Flutter goes beta on the Medium publication. Also, the
building a web app with Flutter page is updated.
• A new write your first Flutter app on the web codelab is
added to the Get started docs, and includes instructions
on setting breakpoints in DevTools!
• We’ve introduced a program for recommending particular
Dart and Flutter plugins and packages. Learn more about
the Flutter Favorite program.
• A new implicit animations codelab is available featuring
DartPad. (To run it, you don’t need to download any
software!)
• Alpha support for MacOS (desktop) is now available in
release 1.13 on the master and dev channels. For more
information, see Desktop support for Flutter.
• The iOS section of the app size page is updated to reflect
the inclusion of bitcode.
• An alpha release of Flutter Layout Explorer, a new feature
(and part of the Flutter inspector) that allows you to
explore a visual representation of your layout is available.
For more information, see the Flutter Layout Explorer
docs.
Other newness:

• A brand new version of Flutter Gallery. There’s a link to


the runnable sample in the side nav under Samples &
Tutorials.
Happy Fluttering!

10 Sep 2019: 1.9 release


Flutter 1.9 is live!

For more information, see Flutter news from GDD China:


uniting Flutter on web and mobile, and introducing Flutter 1.9
and the 1.9.1 release notes.

For the 1.9 release, Flutter’s web support has been merged
(“unforked”) into the main repo. Web support hasn’t reached
beta, and is not ready to be used in production. Web and
desktop support (which is also coming), will impact the website,
which was originally written exclusively for developing Flutter
mobile apps. Some website updates are available now (and
listed below), but more will be coming.

New and updated docs on the site include:

• We’ve revamped the Showcase page.


• The Flutter layout codelab has been rewritten and uses
the updated DartPad, the browser-based tool for running
Dart code. DartPad now supports Flutter! Try it out and let
us know what you think.
• A new page on using the dart:ffi library to bind your app to
native code (a feature currently under development).
• The Performance view tool, which allows you to record
and profile a session from your Dart/Flutter application,
has been enabled in DevTools. For more information, see
the Performance view page.
• A new page on building a web application.
• A new page on creating responsive apps in Flutter.
• A new page on preparing a web app for release.
• A new web FAQ.
• The Flutter for web page is updated.
Other relevant docs:

• Error messages have been improved in SDK 1.9. For


more information, read Improving Flutter’s Error Messages
on the Flutter Medium publication.
• If you already have a web app that depends on the
flutter_web package, the following instructions tell you
how to migrate to the flutter package: Upgrading from
package:flutter_web to the Flutter SDK.
• A new ToggleButtons widget, described in the API docs.
ToggleButtons demo
• A new ColorFiltered widget, also described in the API docs.
ColorFiltered demo
• New behavior for the SelectableText widget.
Happy Fluttering!

09 Jul 2019: 1.7 release


Flutter 1.7 is live!

For more information, see Announcing Flutter 1.7 on the Flutter


Medium Publication, and the 1.7.8 release notes.

New and updated docs on the site include:

• The Preparing an Android app for release page is updated


to discuss how to build an Android release using an app
bundle, as well as how to create separate APK files for
both 32-bit and 64-bit devices.
• The DevTools docs are migrated to flutter.dev. If you
haven’t tried this browser-based suite of debugging,
performance, memory, and inspection tools that work with
both Flutter and Dart apps and can be launched from
Android Studio/IntelliJ and VS Code, please check it out!
• The Simple app state management page is updated. The
example code in the page now uses the 3.0 release of the
Provider package.
• A new animation recipe, Animate a page route transition
has been added to the Cookbook.
• The Debugging, Flutter’s build modes, Performance best
practices, and Performance profiling pages are updated to
reflect DevTools. A Debugging apps programmatically
page has also been added.
The Flutter 1.7 release includes the new RangeSlider
component, which allows the user to select both the upper and
lower endpoints in a range of values. For information about this
component and how to customize it, see Material RangeSlider
in Flutter.

07 May 2019: Google I/O


2019: 1.5 release
Flutter 1.5 is live!

For more information on updates, see the 1.5.4 release notes


or download the release.

We are updating DartPad to work with Flutter. Try our new


Basic Flutter layout codelab and tell us what you think!

26 Feb 2019: 1.2 release


Flutter released version 1.2 at Mobile World Congress (MWC)
in Barcelona. For more information, see the 1.2.1 release notes
or download the release.

In addition, here are some recent new and updated docs:

• We’ve updated our state management advice. New pages


include an introduction, thinking declaratively, ephemeral
vs app state, simple app state management, and different
state management options. Documenting state
management is a tricky thing, as there is no one-size-fits-
all approach. We’d love your feedback on these new docs!
• A new page on Performance best practices.
• Also at MWC, we announced a preview version of the new
Dart DevTools for profiling and debugging Dart and Flutter
apps. You can find the docs on the DevTools wiki (Note:
since moved to this site.) In particular, check out the
DevTool’s widget inspector for debugging your UI, or the
timeline view for profiling your Flutter application. Try them
out and let us know what you think!
• An update to the Performance profiling page that
incorporates the new Dart DevTools UI.
• Updates to the Android Studio/IntelliJ and VS Code pages
incorporating info from the new Dart DevTools UI.
If you have questions or comments about any of these docs,
file an issue.

05 Nov 2018: new


website
Welcome to the revamped Flutter website!

We’ve spent the last few months redesigning the website and
how its information is organized. We hope you can more easily
find the docs you are looking for. Some of the changes to the
website include:

• Revised front page


• Revised showcase page
• Revised community page
• Revised navigation in the left side bar
• Table of contents on the right side of most pages
Some of the new content includes:

• Deep dive on Flutter internals, Inside Flutter


• Technical videos
• State management
• Background Dart processes
• Flutter’s build modes
If you have questions or comments about the revamped site,
file an issue.

You might also like