Flutter announced their next keynote Flutter Engage to take place on Wednesday 3/3/2021, and we couldn’t be more excited to find out what the new release will bring us. Normally Flutter has a release every 3 months, but since the last release was already 5 months ago, we’re hoping for a big surprise this time!
Will 3/3/2021 be a symbolic date? Maybe they will release a 3rd stable platform, web? Alongside the existing other 2: iOS and Android? We’re speculating the hell out of this one. But let’s hear what our Flutter expert, Koen Van Looveren, predicts, or can we say; hopes for:
The last release took place on 1/10/2020, in the meantime, there were just a few bug fixes but nothing big. So it’s safe to say that the Flutter World is waiting with bated breath for tomorrow’s announcement. So let’s see what we think Flutter 1.26 has in store for us.
In my opinion, three big topics can be the headliner of the release tomorrow:
- Flutter for web
- Focus on Null safety
- Desktop
Let’s have a closer look at each of these topics:
1. Flutter for web
We believe that it’s time to come to a stable version of Flutter for web since it has been in beta version for 1 year and 3 months now. At this moment, hot reload (a very important part of Flutter) isn’t supported in the current beta version. We’re wondering if this feature will also be released or if they will keep this for the next update?
What we’re hoping for:
- Better performance, scrolling, and image processing
- An updated web URL, in the beta version it looks like this https://domain.com/#/page. When looking at GitHub it seems to be resolved already: https://github.com/flutter/flutter/issues/33245 But if not, another possible solution is an external package or .htaccess file.
- Better SEO support, but we think this is rather unlikely for this release
- Solving the blurry text problem in some cases.
- Flutter for web is by default a pwa (progressive web app) which makes it possible to install the pwa directly on your mobile device or desktop without having to access the Play- or AppStore first. This could be interesting for some of our customers. Although this could be an advantage, we will have to be picky when to use this or not. We see this as more of an addition to small web applications for which SEO isn’t important.
If our predictions are true, we see a few advantages and pitfalls:
Advantages:
- The pwa could be used on both mobile and desktop when using chrome.
Pitfalls:
- All used packages will need web support, which has to be carried by the whole community to work and that’s a process that takes some time. Most of the packages we use are already compatible. But on pub.dev we can see that there is still some work that needs to be done
- Although our mobile app could run just fine as a website. I think this is something we don’t want. So a redesign is required for a good user experience on the web.
- A redesign will result in a larger codebase. This will bring more maintenance and a higher complexity for the existing codebase.
2. Focus on null safety
This is a release that’s less interesting for the client but mainly a plus for developers. Null safety has been in beta since November 19th, 2020 and we really hope for a stable release here. Since Flutter promised to release early 2021, we expect this to be one of the main topics. Other packages need to be migrated to support null safety. We already have a lot of packages that we migrated ourselves but the downside is that you have to wait until all dependencies are null safe, which isn’t the case at the moment.
It should be possible to combine null safe code with non-null safe code. So in theory we could already start the migration even if not all our packages support null safety. The dart team has been working on a migration tool for null safety. So that could speed up the process as well.
Advantages:
- Less null pointer exceptions, lower crash chances, better quality
- More clearly codebases for new developers on a project
- Better structure
- Because type safety and null safety equals 💙💙💙💙💙
Pitfalls:
- Codebase refactoring needs to be done even for apps that are already in use, this means more work.
3. Flutter for Desktop
There are already a few existing packages for desktop but since they are all still in alpha, a stable release of these packages is very unlikely. Even though it’s possible that these packages may be transformed to beta.
We already had the chance to play around with Flutter for Desktop, it looks promising and we noticed that there are a few issues but they are similar to the issues we experience with Flutter for web.
For some apps, it would be a nice extra if we could also use them on a desktop app. Because of the fact that Flutter for web is a pwa, we are already able to offer desktop support for our customers. Although deeper integration with OS will not be possible in this case, because in the end, it’s still a website with the advantages of a pwa. When Desktop is promoted to stable, it will be less invasive because the overall design will be very much like the web application. So problems that appear in Flutter for desktop can be fixed the same way as in Flutter for web.
Advantages:
- For some business cases, it can be useful to run the mobile application also on a laptop or pc with a more fine-grained OS integration.
Pitfalls:
- All packages need to receive desktop support. At the moment this support is carried even less than the web packages so this has to be implemented via the community first.
- Also, in this case, redesign is necessary and there will be a larger codebase to maintain. You can run a mobile app on your desktop but it will not be as good as an application especially created for desktop.
Overall Flutter has been focussing on the release of null safety, which is good, but we noticed that a lot of important bugs remained unsolved. We hope that there will be a shift to focus on stability instead of on new features.
We can't wait for the Flutter Engage event tomorrow!