On August 31st and September 1st, we attended the FlutterVikings Conference in Oslo, Norway. Flutter Vikings is an event created by Google Developer Groups, Nordic groups focused on Flutter and Dart, and the global community. The lineup consisted of 46 international speakers from the world’s top Flutter software companies, and Google Developer Experts, who offered informative, technical, and highly substantial talks.
We were honored to sponsor the event, along with companies like Microsoft, Invertase, Stream, Codemagic, Rebel App Studio, Very Good Ventures, LeanCode, and more. We were also speakers! Our Software Developer and Google Developer Expert, Abhishek Doshi, gave a talk on the importance of Community and Leadership.
Oslo is a very long way from Uruguay, 12.169 km to be exact! With Mauricio Pastorini, CEO of Somnio Software, we traveled for 72 hours to get there. After many hours spent in airplanes and airports, we arrived in Norway.
Flutter 3.3 release
While we were in Oslo, we were pleasantly surprised by the announcement of Flutter 3.3!
Amongst the most important topics, a new graphics engine was introduced: Impeller. It’s meant to be a replacement for Skia, and thus be able to count on modern hardware-accelerated graphics APIs such as Metal on iOS and Vulkan on Android. Also, Impeller comes with many improvements that we cannot wait to try! To see further details about Flutter 3.3 I recommend this blog about what’s new in Flutter 3.3.
Wonderous App
Simultaneously, a new reference app was released that will undoubtedly help us get closer to a real example of the use of Impeller. The app has a modern design, full of animations, and is proof of what can be done with Flutter today. If there is something to highlight about Flutter, it is the possibility of building this type of experience. As we already know, Flutter provides a canvas where creativity is the limit. This app shows how to be able to innovate with different interfaces that do not necessarily conform in some cases to predetermined guidelines. It should be noted that the entire app was launched as open source and the gskinner team built the Flutter Animate library where we can find animations that were used in the app available to everyone.
Dart 2.18
Of course, we have to name the updates that were made for Dart, the secret sauce of Flutter. Dart now supports Objective-C and Swift interoperability for all iOS developers. This is huge and continues with the same line of what we have seen previously in other languages. If we remember, Dart started to provide interoperability to call native C APIs in 2020. Now we can extend FFI (Foreign Function Interface) to these 2 languages that are part of the development of iOS apps in Flutter. It will be very interesting to see what new approaches can be taken to have access to the latest iOS APIs seamlessly.
To test ffigen, you can visit the examples of Objective-C and Swift.
In addition to these improvements, we can also find:
- Platform-specific networking in multi-platform apps: There is a really cool example of cupertino_http based on NSURLSession for macOS/iOS as well as cronet_http based on Cronet for Android.
- Improved type inference: Thereby improving developer experience and readability.
- pub.dev improvements: To support funding tags in the pubspec for all those who want to reference some way of being able to sponsor the packages that, as we know, many developers spend a lot of their time on.
- Null safety update: The team talked a bit about the great adoption of null safety and its continuity.
We’d love to continue enumerating Dart improvements, but given there are so many, here’s a more detailed note to refer to.
Day 1
Finally, the first day of Flutter Vikings arrived! The event was hosted in the Felix Conference Center, with three simultaneous stages featuring speakers. Due to this, we had to miss some talks, but we'll definitely watch them online. You can watch them for free on the FlutterCommunity YouTube channel.
The event began with the organizer Majid Hajian presenting the sponsors of the event dressed as a Viking, and with Tim Sneath saying some really lovely words and announcing Flutter 3.3.
Deep Dive Into Flutter Theming by Mike Rydstrom
Afterward, in the same stage, began the first talk of the day by speaker Mike Rydstrom. Mike managed to demystify how to use theming in Flutter. For those who have encountered issues with the theme during a Flutter project, I highly recommend this talk.
There are many ways to interact with the theme, and Mike cleared up which ones are the best and which ones would sooner o later give us problems. I think it’s a very interesting approach to handle this subject at the beginning of the project so that we don’t have to worry about the theme later in the process. This also gives us the chance to create white label apps in a very simple way.
Here, you can see the package created by Mike, and here you’ll find an interactive website to see how it works.
Riverpod 2.0 by Remi Rousselet
Last but not least, we got to see Remi Rousselet. He presented a preview of the new features that will be in Riverpod 2.0. His talk was excellent because it consisted of a live coding of an app that interacted with the API of pub.dev. Among other things, we got to see how to get the packages list with a limit and pagination, infinite scroll, and pull-to-refresh. At the same time, we saw how to achieve reactivity to changes in the packages, like the number of likes through the invalidation of a provider after a certain amount of time.
To sum up, the live coding perfectly demonstrated the simplicity and power of the library for both simple features and more difficult things.
Day 2
Flutter, FFI And Fun: Windows Development With Dart And Win32 by Tim Sneath
Tim Sneath’s talk was fascinating. I think that Tim was able to keep us engaged throughout his talk through many examples and each of them at the necessary timing. It certainly has great potential and is something that will greatly facilitate the development of desktop applications from now on.
Custom User Interactions: Building A Desktop Drawing App by Justin McCandless
In this talk, Justin demystified how the Shortcut-Intent-Action system works in Flutter. He provided lots of examples alongside a demo app where we were able to see all the results. The talk explores how to customize the behaviors and handle cases of overlapping where you want Flutter to handle, or you want to handle it yourself. To whoever is exploring the terrain of Flutter for desktop, this is a must to watch as we know that rich desktop apps requires keyboard shortcut interactions in the majority of the cases.
Meet Mason: Intro To Templating And Custom Code Generation by Felix Angelov
In this opportunity, Felix Angelov presented Mason. Without a doubt, if you haven’t used Mason so far, we strongly recommend it. At Somnio we started using this tool a long time ago, which I wrote a blog about, and even gave a talk on the subject at Flutter Global Summit.
Trusting Your Clients: Live-Coding A Cross-Platform Multiplayer Bingo App by Eric Windmill and Frank van Puffelen
With the help of Eric Windmill and Frank van Puffelen, we were able to not only see how to build a Bingo App using Flutter and Firebase, but also play it! The approach they took was very interesting since we could see the step by step on how to build the app in a super simple way. At the same time, they stopped to explain captivating concepts about Firebase, such as the ability to stream data from Firestore. For those who are not familiar with Firebase and the services it offers, we recommend this talk to see the cool things that can be made with the combination of this stack. In the end, we were able to enter a website that the team had prepared and play live Bingo! We almost won!
Quick Start To Game Development In Flutter by Filip Hráček
In this talk, Filip Hráček highlighted his path in making and releasing his game using Flutter. The talk could have been really technical, however, Filip opted to provide his experience making the game rather than explain the actual Codebase behind the project. And this was really cool. We were able to see the reasons why solo developers abandon their projects and comparisons of different kinds of games that you can come up with. The talk is a summary of a lot of years he spent experimenting with his game til he finally published it. I cannot empathize more with Filip in the sense that a side project tends to be pretty messy and the path we take really differs from a regular project you could encounter in your daily full-time job. I really encourage seeing this talk if you are someone who is really interested in developing a game or just experimenting with Flutter in game development.
Q&A with the Flutter Team
Finally, the conference closed through a QA that included the Google team. The experience was very good since we were able to see and hear first-hand what the projections, roadmap, and visions of Flutter are in the short and long term in what is to come.
In summary
Flutter 3.3 showed us improvements, such as Impeller, that demonstrate the Flutter team's capability to keep innovating and go long-term to continually improve Flutter.
The trip was very enriching because we were finally able to meet people from the community with whom we had been in close contact for a long time.
The event was not just about networking and meeting people, but also about listening to highly quality talks. We will certainly incorporate many of the topics they touched on into our practices. In that sense, we recommend seeing all the talks in this link since we couldn’t cover all of them in a single note. From Somnio, we are very happy to have been part of this conference, and we look forward to the next edition of Flutter Vikings!