After recently celebrating its 5-year anniversary, Flutter has become a growing influence in the multiplatform development framework scene. While the documentation and community maturity are lesser than in the case of, say, React Native, Dart development is growing in popularity quite consistently.
And with its newest version – the new Flutter 3 – released back in May 2022, it’s time to have a look at what the team at Google has been up to lately. In this article, we’ll explore the 5 most important changes that Flutter 3 brings, as well as how they were received by developers.
The 5 things that we’ll go over today are:
- Dart 2.17 and Sound Null Safety;
- MacOS and Linux support;
- Casual Games Toolkit;
- Web app lifecycle;
- Firebase support.
1. Dart 2.17 and Sound Null Safety
The release of Flutter 3 also brought the reveal of the most up-to-date version of Google’s own programming language, Dart 2.17. Among the more significant features, we can count the possibility of using enums and override as default functions, using API sample code, and testing and deploying custom-written classes.
However, on the more controversial side of things, Dart’s Sound Null Safety feature, which prevents the assignment of ‘null’ to value arguments by default, has seen significant growth in popularity since its release. The reason for this addition is to prevent bugs caused by failing to dereference null arguments. As this is a rather common issue, the rationale was to eliminate it even before compiling the code.
Now, the programmer must specifically state whether a value argument can or cannot be null, by using a specific syntax. For example:
int x – non-nullable
int? x – nullable
While this change appears to make debugging easier, especially in larger codebases, developers are only partially happy with the change. For others, the Flutter Sound Null Safety feature gets rid of a set of problems and makes room for others, such as keeping track of which variables can or cannot be assigned null.
This can add more overhead to the coding process, and it’s considered far from efficiently addressing the problems at hand. Some argue that this kind of fix comes from Dart’s dynamic data type format and that most changes to address issues like this will be the ‘one step forward, two steps back’ kind.
A number of developers also agree that, while the change is welcome for eliminating null-related bugs, more is left to be done to turn Dart into a truly sound language. A system that prevents programs from crashing 100% of the time may be well within the realms of myth, but getting closer to this imaginary standard means less time spent in the debugging console for you.
Nonetheless, Flutter 3 allows you to enable or disable Sound Null Safety according to your preferences. In this sense, those who appreciate the change can use it, and vice versa. This opt-in system, for us, is Google’s way of dealing with the controversy, as well as what makes this particular update welcome for the Dart ecosystem.
2. MacOS and Linux Support
As a fundamentally multiplatform development framework, the horizons of Flutter development have broadened with the addition of support for both macOS and Linux. For developers, this means a larger palette of projects that they can work on, thanks to the progress in the multiplatform expansion of Flutter 3.
From among its competitors, Flutter is now consolidated as having the largest amount of supported platforms. Even more so, the general performance and visual aspect of desktop apps developed through Flutter seem to be one of the best among the multiplatform development frameworks so far. In contrast with other tools, such as Electron, which has a couple of issues with performance and app size, Flutter is doing great on the desktop development scene.
We see this as a large step toward the growth of the Dart developer community in the future.
3. Casual Games Toolkit
It’s no surprise that a large part of mobile app development has branched into the Gaming sector lately. Mobile games have become a domain of interest for developers, and the addition of the Flutter 3 Casual Games Toolkit attempts to swiftly bridge developers in this area.
The toolkit is designed to allow for the creation of games from scratch, and its open-source nature means a handful of available features, such as in-game purchases, or play services. In addition, Flutter already supports hardware-accelerated graphics, meaning that the possibility of developing industry-standard mobile games is already here for the community.
4. Web App Lifecycle
The newest Flutter update brings some awaited improvements to web app development with the introduction of the Web App Lifecycle feature. It gives developers more room to work around during the bootstraps process of the Flutter app.
In addition, the Crashalitycs feature can offer real-time insights into performance and efficiency, making it considerably easier to fix issues at this level.
5. Firebase Support
Lastly, on the more popular side of Backend-as-a-Service software, Firebase has been making a valuable addition to Flutter development. Now, Flutter 3 provides access to full integration and support of Firebase. Dart developers can reap the whole benefits of a powerful backend service that lets them create better mobile apps that support more features.
In addition, Google is also providing plug-ins to make Firebase more accessible to its developers, and deliver data on program crashes in real-time.
Because it’s rather difficult to briefly cover the entire set of updates brought along with Flutter 3, we will resort to the ones above, plus some honourable mentions:
Extended support and integration with Material Design 3;
Theme extensions, which allow developers to add custom themes to widgets much more easily;
Foldable phone support, which provides utilities for phones and devices with more unconventional displays.
Flutter 3 – Blessing or Curse?
While not all updates are created equally, we think that Flutter 3 remains largely on the positive side of things. What is of utmost importance is that Google seems to be very involved in both the Flutter and Dart communities.
Listening to and addressing user complaints was what allowed Flutter to develop so much in such a short period of time. It may be impossible to keep everyone satisfied after an update, but we should think of Flutter 3 as a net positive gain for its community, and for the multiplatform development ecosystem as a whole.
About abac software
Did you like our take on the new Flutter 3 update? We’re glad!
abac software is a startup from Cluj-Napoca, Romania, that aims to help enterprises and other startups with designing the software products of tomorrow. Our team loves to keep up with the latest news in software and web development.
So, if you liked our take, subscribe to our newsletter and keep an eye on your inbox for more stories like this!