VOOZH about

URL: https://blog.logrocket.com/whats-new-in-flutter-2-0/

⇱ What's new in Flutter 2.0 - LogRocket Blog


2021-03-16
968
#flutter#what's new
Deven Joshi
37772
πŸ‘ Image

See how LogRocket's Galileo AI surfaces the most severe issues for you

No signup required

Check it out

πŸš€ Sign up for The Replay newsletter

The Replay is a weekly newsletter for dev and engineering leaders.

Delivered once a week, it's your curated guide to the most important conversations around frontend dev, emerging AI tools, and the state of modern software.

Introduction

Flutter recently announced its 2.0 release in an event titled β€œFlutter Engage,” marking another milestone on the rapid development of the cross-platform UI toolkit and bringing along a slew of changes and announcements. This event was the culmination of the β€œ30 Days of Flutter” initiative, introducing Flutter to new audiences with the team and community coming together to achieve it.

πŸ‘ What's new in Flutter 2.0

πŸ‘ Flutter 2.0 announcement twitter

Let’s take a look at what was announced at the event.

What’s new in Flutter 2.0?

Null safety

Null safety has been a major sticking point for many developers trying to shift to Dart over languages like Kotlin. Null safety introduces types which cannot be null, allowing the compiler to know that some variables are not null and avoid unnecessary null checks.

At the same time, it also helps developers avoid problems ahead of time because the code simply won’t compile if something isn’t handled properly. Null safety has been in testing for some time now and the entire framework has been shifted to work with null safety in a backward-compatible way.

One concern that people had ahead of time was how existing packages would work with null safety. Currently, major packages have already shifted or are planning to shift to null safety.

However, many remain in the non-null-safe versions. When an app uses a package that does not use null safety, the app runs in the unsound null safety mode β€” and sound null safety when all dependencies have been migrated to null safety.

int i = 5; // i is now non nullable
int? j; // Nullable variables need to be explicitly declared

i = null; // Error

Null safety also allows the size of the code to be shrunk because extra checks can be removed. An interesting thing here is that the Dart language did not choose to go to 3.0 with sound null safety and instead stayed in the 2.x version because null safety did not bring along breaking changes to existing code, which is quite impressive given the amount of change in the code.

Web reaches stable

πŸ‘ Flutter 2.0 web stable announcement

(Folio: A project by the gskinner team shown at Flutter Engage)

After being announced as Project Hummingbird” at the Flutter 1.0 launch event, Flutter Web was something that caused quite a lot of excitement because Flutter could now reach the three major platforms: Android, iOS and web. After a year and a half and multiple approaches to rendering, Flutter Web is finally stable after continuing to improve on performance.

Flutter coming to the web had several obstacles at first: First, the widgets needed to be created to make an immersive, responsive web experience. Additionally, functionality such as hover needed to be implemented, enabling websites to not just look like a large mobile app. Finally, because Dart itself was originally meant as a replacement for JavaScript, the dart2js compiler was already widely used. However, the web itself is a tricky platform to deal with.

A natural benefit of the Flutter Web announcement is the creation of Progressive Web Apps (PWAs). PWAs allow a website to have app-like behaviour on mobile while still retaining a lot of the freedoms that come with the web. Because the Flutter code is already optimized to deal with mobile-sized layouts, PWAs become incredibly easy to create with existing code.

With Web becoming stable, more and more packages continue to add support making web support feel more complete.

Desktop (sort of) reaches stable

πŸ‘ Flutter 2.0 announcement desktop stable

Flutter is now available on Desktop (MacOS, Windows, Linux) on stable. However, this is an early release meant to preview apps meant to run on desktop. The final stable version is going to come along in due time. Similar to Flutter Web, desktop required a whole new category of widgets and input mechanics.


Over 200k developers use LogRocket to create better digital experiences

πŸ‘ Image
Learn more β†’

The surprising thing about Flutter Desktop is that for a long time, the community was the driving force into developing desktop until Flutter officially took over development. Now, it is nearly available for stable release.

One relatively new surprise was that Canonical β€” the creator of Ubuntu β€” was contributing to Flutter. This was explained later with another post: Flutter is the default choice for future apps made for Ubuntu.

πŸ‘ Flutter 2.0 Ubuntu announcement

Not only this, but the Ubuntu installer itself was converted to Flutter:

πŸ‘ Flutter 2.0 Ubuntu installer

You can check out the Ubuntu desktop installer repository here.

Toyota and Flutter join forces

Toyota announced it would be building its new infotainment platforms with Flutter, opening up several positions in its Flutter team as well. With companies like Toyota joining the Flutter ecosystem, it goes to show that Flutter is slowly turning into a mature, trusted framework.

πŸ‘ Flutter 2.0 announcement toyota

Additional improvements to Flutter 2.0

Here are some additional improvements to Flutter with 2.0 now released:

Dart DevTools have been revamped to offer better features while debugging.

  • The dart fix command allows removing deprecated code with its correct implementation
  • ScaffoldMessenger finally comes to master, allowing elements like Snackbars to persist across screens

Looking ahead

Flutter now has more stars on GitHub than competing frameworks like React Native. While not even close to a perfect metric, it does display how quickly Flutter managed to grow in popularity within the mobile app development (and now more) sphere.

Personally, it’s amazing to see how much and how quickly things have grown. The first time I remember using Dart was with Chromium back in 2013-2014 to make a pirate badge β€” with things stalling a bit since then.

A few years later, I started out with the alpha of Flutter and the entire ecosystem including the framework itself, the Dart language, and toolkit. The Flutter community has been expanding and improving to an amazing extent.

Flutter 2.0 shows how Flutter is spreading across platforms to realize its run-everywhere potential, as well proves that it’s stable, with larger corporations now getting onboard.

If you wish to see the full, (VERY) detailed list of changes, this is the place to go.

Get set up with LogRocket's modern error tracking in minutes:

  1. Visit https://logrocket.com/signup/ to get an app ID
  2. Install LogRocket via npm or script tag. LogRocket.init() must be called client-side, not server-side

    $ npm i --save logrocket 
    
    // Code:
    
    import LogRocket from 'logrocket'; 
    LogRocket.init('app/id');
     
    // Add to your HTML:
    
    <script src="https://cdn.lr-ingest.com/LogRocket.min.js"></script>
    <script>window.LogRocket && window.LogRocket.init('app/id');</script>
     
  3. (Optional) Install plugins for deeper integrations with your stack:
    • Redux middleware
    • NgRx middleware
    • Vuex plugin
Get started now
πŸ‘ Image
πŸ‘ Image
πŸ‘ Image

Stop guessing about your digital experience with LogRocket

Get started for free

Recent posts:

How to build a virtual engineering team with Gemini CLI subagents

Learn how to use Gemini CLI subagents to delegate frontend, backend, testing, and docs tasks to specialized agents with guardrails and clear ownership.

πŸ‘ Image
Emmanuel John
Jun 18, 2026 β‹… 10 min read

Debug Next.js apps with AI agents and next-browser

Learn how next-browser gives AI agents runtime context for debugging Next.js apps, including React props, hydration, PPR, forms, and performance.

πŸ‘ Image
Emmanuel John
Jun 17, 2026 β‹… 9 min read

Stop hardcoding LLM SDKs: Dynamic LLM routing with OpenRouter and Next.js

Build dynamic LLM routing in Next.js with OpenRouter, TanStack AI, task classification, model fallbacks, and cost-aware routing.

πŸ‘ Image
Chizaram Ken
Jun 16, 2026 β‹… 13 min read

What is TSRX?: What JSX would look like if it were designed today

TSRX adds first-class control flow, conditional hooks, and scoped styles to React via a TypeScript compiler extension β€” no new framework required.

πŸ‘ Image
Ikeh Akinyemi
Jun 12, 2026 β‹… 6 min read
View all posts

Would you be interested in joining LogRocket's developer community?

Join LogRocket’s Content Advisory Board. You’ll help inform the type of content we create and get access to exclusive meetups, social accreditation, and swag.

Sign up now