My Flutter at Google I/O ‘22 Recap
If you want to build beautiful, multi-platform native applications for mobile, web, and desktop from a single codebase with Flutter, Google's open source UI toolkit, I’d recommend ‘What's new in Flutter 3’ to everyone and the sessions below whatever your level of interest or experience.
Flutter 3.0 support for Mac computers with Apple silicon is essential and timely
The Flutter team say that Flutter 3 delivers "stable support for macOS and Linux apps, an upgrade of the Flutter/Firebase integration to a fully-supported, core part of the Firebase offering and support for Mac computers with Apple silicon". I do not doubt these claims. I have already proved for myself in my article "Installing Flutter 3.0 on a Mac Studio running macOS Monterey, and creating your first app, in about 15 minutes" that Flutter 3.0 fully supports support for Mac computers with Apple silicon without the Rosetta framwework, not just for the development environment, but also the applications it can produce for macOS! Flutter has for the past few years been primarily about mobile apps for iOS and Android. I suspect that is the case for most developers but as a strategy for Google, the development, launch and adoption of Flutter and Dart has always had a larger plan to "democratize access to rich applications across all devices".
Mobile first, but stable for macOS and Linux too
Flutter 3.0 adds stable support for macOS and Linux apps to the existing platform support for iOS, Android, web and Windows. Flutter has always had this ambition. Mobile apps were simply the easiest entry point and best opportunity for success compared to, say starting with "Hey kids, heres a new way to write apps for Chrome".
There's no doubting that Flutter is a great tool for building mobile apps. I have successfully produced dozens of Flutter based apps now for the App Store and Google Play. Given that mobile apps today need to be for iOS and Android to have any meaningful impact then Flutter is a great choice, as you are already committed to being a Google shop, because you will be using the Google Play Store and a Google account, and probably therefore Firebase and Google Cloud and all that. But you should do this with your eyes open. Google is not doing this work for the greater good. They have an agenda.
Go full steam ahead with Flutter 3.0 while understanding and managing your risks
If you are a mobile app producer, then as you need to be concerned with the long term viability of the platform toolchain you are using perhaps more than the new bells and whistles of the current release. Flutter is very stable. It is viable for mobile app production all the way in to the App Store and Google Play. It has a generous benefactor with deep enough resources and partnershis to properly cover all the platforms it supports and is open to community contributions provided the project leads find them of merit. As long as you are aware of the potential for lock-in and other consequences of "democratizing access to rich applications across all devices" then you should go full steam ahead with Flutter. These are just risks to manage. The first step to managing risk is to be aware of it.
Flutter talks from Google I/O On-demand
These are the presentations about Flutter related topics I found the most interesting at Google I/O.
What's new in Flutter 3
Flutter can now deliver apps for iOS, macOS, Android, Linux, Windows, Fuchsiea and Chrome. While the plug ins and some functionality isn't quite identical everywhere it is improving with every release. It is remarkable.
Learn about Flutter Desktop
Desktop requires focus, keyboard shortcuts, tab order and other details to provide an effective app for end users.
Monitoring Flutter app stability with Firebase Crashlytics
Crashlytics (are you old enough to remember it used to belong to Twitter) has many improvements for Flutter Android and iOS apps.
Learn how Flutter enhances web apps
Take a deep dive into how Flutter uses the latest browser technologies to enable beautiful web experiences. It is a clear indicator to me that Google see Skia, Canvas and WebGL and Dart replacing HTML in the medium terms and making the DOM and Element view of the web not obsolete, but outmoded. The only thing left will be the URL.
When, why, and how to multithread in Flutter
Allowing events to yield using futures is one way to make your apps more responsive but just because an api is async doesnt mean its work is done concurrently. This presentation is created in the style of the science programmes for the BBC 2 Open University from the 1970's but its really really interesting nevertheless. To me it shows that there is much to do to bring Flutter web apps to parity and much for people new to Flutter and Dart to learn.
Adding WebView to your Flutter app
Personally I dont think you should add webviews but sometimes theres no alternative. You do have to take care to make sure your app will still be able to pass Apple and Google review - just simply packaging up a website as an app isn't good enough. Anyway, you can follow along with the codelab Adding WebView to your Flutter app
Create simple, beautiful UI with Flutter
Flutter apps can start out looking pretty generic. Pressure of feature completeness can often override user experiences. It doesn't have to be this way. You can find out and follow along with the codelab Take your Flutter app from boring to beautiful