Technology
5 min read
Flutter 3 Highlights: Enhanced Desktop app support, performance upgrade and official support for firebase
Saiful Islam Adar
Senior Frontend Developer
Updated:
.png)
We apply a built by founders for founders' approach to every project we tackle and work towards a common goal: to help our clients build tech unicorns that make the world a better place.
let's talkFlutter is a UI framework by Google to build native cross-platform apps. The first stable version was launched back in 2018. In 2022 it’s topping the chart with its developer-friendly approach and native-like performance of the apps built with it. Flutter has already proven its efficiency in building stable apps with a single codebase for Android, iOS, and Web.
With its recent launch of Flutter 3, the horizon has expanded. Now Flutter has stabilised the support for macOS and Linux within a very short time, along with Android, iOS, Web, and Embedded systems. Along with it, a lot of performance improvement came along. No wonder it is topping the charts among developers and companies. In this article, I will discuss Flutter 3.0 and how it changes the app development industry.
With the latest release, Flutter has enhanced support for desktop applications on different platforms.
Flutter had already released stable versions for Android, iOS, Web, Windows, and embedded systems. With Flutter 3.0, macOS and Linux are also on the official release chart. Now Flutter supports all the major platforms for building apps and spreading happiness to the developers and users. And most of all, applications for all these platforms can be generated by sharing in one single codebase, which was Flutter’s initial goal. And they have achieved it throughout the journey for the last 4 years!
For macOS apps, Flutter now supports Cascading menus and supports the macOS system menu bar using the PlatformMenuBar widget. This lets the developers create platform-specific menus on macOS and let the application control the behavior for it.
Full support for international text input for language inputs that supports text input method editors(IMEs) are now available for all desktop platforms with Flutter 3.0
For macOS apps, Flutter now supports Cascading menus and supports the macOS system menu bar using the PlatformMenuBar widget. This lets the developers create platform-specific menus on macOS and let the application control the behavior for it.
Flutter now provides support for accessibility services on all major desktop platforms.
Now it also supports building macOS applications as universal binaries for both intel and apple silicon-based macs.
Numerous improvements were made to web and mobile application building platforms for Flutter. Such as:
With the help of the Microsoft team, Flutter now has out-of-the-box functionalities to detect foldable phones and make the UI responsive per need. The samples for Foldable phones are available here for the Flutter Gallery app.
For the latest iOS devices, Apple introduced a new feature called ProMotion. Which makes the device display refresh rate dynamic for the apps. Previously Flutter app on iOS had a fixed maximum refresh rate of 60 hz, but now with the latest update, it can reach 120 hz to provide the user with a smooth experience while using the app. More details can be found here
Now developers can build and .ipa file for iOS release easily with flutter build ipa command, which will generate a build for iOS. And then, by running xcrun altool it can be uploaded to the app store to send it to TestFlight/Appstore users.
Flutter 3.0 now uses built-in ImageDecoder API provided in modern chromium-based browsers whenever available. It helps the app to speed up 2x while decoding images, and by using this process, the task is passed off the main thread hence it removes all sorts of junk for the application and provides a smoother performance.
Flutter has introduced a web app lifecycle API for the developers. It is now possible for the developers to detect different stages of the Web app and provides more options to control the bootstrapping of the web app. A few common uses are adding a splash screen or a loading indicator, or even a plain HTML interactive landing page displayed before the Flutter app. More details of web app customizing web app can be found here.
There are other few exciting updates provided with Flutter 3.0
Android 12 introduced versatile theming of applications based on users choice. Flutter now has out-of-the-box support for Material 3 theming, which includes dynamic color, an updated color system, and typography. It also supports new visual effects with ready-made components.
With Flutter 3.0 now, the ads showing performance have been improved by using PlatformViews. It doesn’t slow down the app while transitioning between views while ads are showing. Also, Flutter now gives a more simplified way to handle user consent and Apple’s App Tracking Transparency requirements with Google’s open-source User Messaging Platform (UMP) SDK.
Now material library’s ThemeData can be customized with anything by using these extensions. Previously developers had to use implementations of copyWith, lerp, etc methods to modify those.
New lint packages(version 2) have been released along with Flutter 3.0 for both Flutter and Dart. This will help the developers to follow better coding practices and follow correct patterns.
Firebase has been hugely popular among Flutter developers. According to Slash Data’s study, “About 63% of the developers are using Firebase in their applications.” Finally, the official support for Flutter is released by the Firebase team. Now the documentation and direct support can be found on Firebase’s website.
Along with it, support for Firebase Crashalytics has been released for Flutter, which can be found here. It helps developers to track crashes/errors or to log information in real-time to detect fatal mistakes or to check crash-free users.
Flutter utilizes each pixel on the screen via its skia 2D graphics engine. Now the team has expanded further to provide a starter pack that also includes controlling views, sounds, and monetization through ads by default. Any enthusiastic developer can start to play with it to build cool 2D games.
With Flutter 3.0 a new version of Dart(2.17) was also released. It includes enhanced enumeration, simplified super constructor usage, and using named arguments in any order in constructors.
Flutter has come a long way to building a great community by providing comprehensive resources on different topics to enhance developers’ learning. Being developer-friendly and native-like performance has made Flutter as a top choice for building new applications using a single codebase. We can see the effort the Flutter team has put into making everyone’s life better when building apps. I also recommend checking out Flutter’s keynote from Google I/O.
I hope you enjoyed reading and see you next time!
The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.
A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!
Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.