DEV Community

Cover image for A Visual Recap of #FlutterEngage: My 5 Takeaways
Nitya Narasimhan, Ph.D for Microsoft Azure

Posted on

A Visual Recap of #FlutterEngage: My 5 Takeaways

Quick Resources:


Background

#FlutterEngage is a signature event from Google's Flutter team, held online on March 3, 2021, and signaling the launch of Flutter version 2. You can catch all the sessions online on demand - including the hour-long keynote, 4 technical sessions from the Flutter team, and 11 technical sessions from the Flutter community.

Don't have time to watch the whole keynote? I have you covered! Here's a sketchnote summary of the whole thing. You can download a hi-res version of the image here and get a 'behind-the-sketchnote' peek at the process in this 30 second video

https://twitter.com/flutterfyi/status/1367699763639054336

That's a lot to digest, so let me group this into my 5 main takeaways!


Takeaway 1: Mobile Past, Portable Future!

Flutter-v2's core message is that it is moving beyond mobile targets (Android, iOS) and exploring portability to more platforms starting with Desktop (Windows, MacOS, and Linux) and Web.

The benefit to developers and teams is that you get multiple apps from the same codebase, effectively with one team. At the same time, it opens the door to having platform-specific app variants that tailor user experiences to the affordances and capabilities of each.


Takeaway 2: Sound Null Safety in Dart!

Redmonk's January 2021 Programming Language Ratings put Dart within one place of the Top 20 for the first time, with a +3 jump in rankings!

The null-safety feature checks off a much-requested parity metric for Kotlin devs! It is also sound enabling other compiler optimizations that can reduce bugs and speed up execution. This is huge given performant rendering and responsiveness are critical to Flutter's success.


Takeaway 3: Foldables & Monetization

While Flutter 2 expands to new platforms, it's current mobile audience gets two new toys to play with!!

First, let's talk Foldables! You might have seen past articles from me on Dual Screen and Multi-Posture support for native Android apps. Today we learned about Flutter Support for Foldable Devices contributed by Microsoft to the Flutter project! Specifically, Flutter apps can explore spanning by default, and take advantage of Two Pane Widget and Hinge Aware Widget capabilities to adapt their mobile app experiences to new foldable form factors.

Next, let's talk Monetization! Most mobile app developers monetize their apps through ads - and having support for native ads and inline banners was key. Now, they have a Google Mobile Ads SDK (plugin) that provides open beta access to these capabilities for developer experimentation and feedback!


Takeaway 4: DevTools & Demos!

Personally, my highlight was the four new tooling highlights showcased in the keynote: Flutter Fix to help you deal gracefully with breaking changes, Dart Migrate to help you refactor to leverage null safety support, Flutter Debugging updates where DevTools embed in the IDE of your choice (enabling seamless transition from error message to Flutter inspector view), and new Tooling features like App Size debugging and more. I think I could spend an entire day just getting up to speed on DevTools features and power usage!

The other notable aspect was the partnerships showcasing app demos in various contexts:

  • gSkinner - showing off the Flutter Folio "signature" open source multi-platform app for Flutter v2.
  • iRobot Education - showing Flutter in the browser, with their education web app migration.
  • Canonical - showing Flutter in the desktop (Linux), and committing to Flutter for future mobile/desktop apps.
  • Toyota - showing Flutter in embedded environments, with their in-vehicle infotainment use case.

Takeaway 5: Flutter ♥️ Microsoft

This was perhaps the most surprising moment for me. There were multiple instances during the keynote where Microsoft got shout-outs (deservedly) for not just partnering on an application, but contributing core functionality to the Flutter engine.

There were at least three separate areas that I am looking forward to exploring further:

  • Flutter For Windows - a snapshot of Flutter Desktop in the stable channel should allow you to compile Flutter source code to a native Windows app! The Flutter 2 announcement also highlights this ongoing collaboration to add support for UWP.

  • Flutter For Foldables - the same Flutter 2 announcement also highlights this collaboration with the Microsoft Surface Duo Dev team, to explore support not just for the Surface Duo, but for the broader class of foldable or dual-screen devices.

  • Flutter & VS Code - Visual Studio Code has always been a first class IDE option for Flutter. Now, by installing and running DevTools from VS Code, we can explore the new debugging features and tooling support right within our favorite IDE. I can't wait to try this out.

There's a lot more to talk about, but perhaps that can wait for the next post!


10 Highlights: Flutter Team

You can also watch this 8-minute recap from the Flutter team, and scroll down to see the snapshot showing the top 10 announcements they chose to highlight.

Alt Text


Next Steps

So what are my next steps in this context? Well, consider me officially intrigued and energized to revisit all things Flutter. Specifically, look out for the following posts in this series:

  • Hands-on With Flutter-v2: Setup & First Impressions
  • Flutter & DevTools: Getting Started with VS Code!
  • Flutter & Foldables: Designing for Dual-Screen & Display Features
  • Flutter & Windows: Building For The Desktop!
  • Flutter & Web: Exploring PWA and SPA experiences!

Plus, some deep-dives (with sketchnotes) under the hood of both the Flutter Engine, and the Dart Compiler. I'm not tired of Mobility, but I am wired for Portability!

Want to track my progress? Three ways to do this

  • Follow the Azure organization. I will post relevant articles here first!

What new features or announcements did you find most interesting?

Leave your comments below


Resources

Top comments (0)