Flutter track at Droidcon London 2022 — summary
I am so glad that we can finally attend technical conferences in person. Recently I was able to attend Droidcon London. I only had one goal — see all talks from one particular track. Okay, maybe two goals, as I was also a speaker there.
The bad thing about big conferences is that there are always amazing talks being given at the same time. It is not possible to attend everything that you are interested in — unless you have Hermione’s thingy for time travel. Luckily for me and all other Flutter people, Droidcon was mainly about native Android development. It featured 5(!) tracks, but one of them was completely dedicated to Flutter. I promised myself that I will attend all talks and I kept that promise. Here is a small recap for all of you who couldn’t attend in person.
Note: the talks were recorded and are available on the Droidcon website. For each talk I attached a link to recording and materials I either got from the speakers or found myself.
Pictures used in this article were either taken by me or come from the official Droidcon album. I am sure you will be able to differentiate them based on their quality.
Flutter under the hood. What makes Flutter tick
Efthymis was the lucky one to start the Flutter track. His talk covered basic concepts of what is happening behind the scenes in any Flutter app. It received quite a lot of attention from conference attendees — the room was full! Who knows, maybe some native Android die-hard fans will now move to Flutter?
Mastering Flutter Web
Did you know that you can use Flutter Web to create games that can be played via Facebook Messenger? Yup, me neither. This way Joachim’s team can maintain one codebase (Flutter FTW!) to support web browser players and Android/iOS native users. What I found interesting was their aim to cater to all kinds of devices, also low-end ones. They do that by reducing the complexity of graphics and animations when needed.
Managing multiple packages in a mono repo
In his lightning presentation Lukas talked about Melos, a CLI tool useful for managing Dart projects with multiple packages in one repository, so-called mono repos. Ever struggled with writing a changelog for your new release? This can be easily automated, even if you need it just for a single package. That is only the tip of the iceberg of possibilities.
The title of this talk comes from a 90s game, which Simon source ported to Flutter. As for me, this presentation should be titled “Out of this world”. Kudos for your idea and its execution, Simon! You should shine as an example to everyone who lists Weather App as their pet project!
Securing flutter apps
Do you think your Flutter apps are secure enough? Don’t bother answering because statistics are ruthless. More than 75% of mobile applications will fail basic security tests. Be in that minority, follow the guidelines provided by OWASP and sleep better at night. What I liked about this talk is that it provided ready-made solutions and packages to improve your apps’ security.
Flutter on Desktop: end to end from build to distribution
Do you know where to start if you want to create a Flutter app for desktop? If your answer is no, then Teresa will guide you through. In her talk, she covered the basic setup, distribution on various desktop platforms and some other desktop-specific topics like navigation or keyboard handling.
Getting started with Functional Programming
This talk brought some nostalgic thoughts to those who come from Kotlin background. If you never heard of Pure Functions, High order Functions, or First class Functions, definitely check out this talk. Yes, the F word is very frequent there, but it really was Fun with Functions. All concepts were shown on a very practical example.
KarmaApp — Why we choose Flutter and Firebase
Summit talked about KarmaApp and how different demands could have been satisfied using Firebase. Analytics, database, storage, push notifications — you name it, and I bet there already is a Firebase product for that. Integrating it in Flutter is quick and easy, so you can quickly build an MVP without any other external services.
The second day was supposed to start with Salih Guler’s talk about offline first applications. Unfortunately, Salih couldn’t make it to London. The topic sounds very attractive and important, especially in the online focused world. I hope that I will have a chance to catch up on that one day. Also Anna Leushchenko was supposed to be in the line-up. Judging from the other talks by her that I attended, it’s a huge loss for the conference. I wish that one day everyone will be able to travel without any restrictions.
Native Platform Views for mobile and beyond
Using native platform views in Flutter is not as bad as it sounds. Dominik proved that by implementing camera view which worked on various platforms. Of course, some obstacles are awaiting brave developers, but at least after his talk you can be aware of them and know how to deal with them.
Adding physics to your Flutter App
This amazing duo gave a talk about adding physics to Flutter app. As an example, they quickly created a game using Flame Engine and Forge2d. It resembled the once famous agar.io, where all the balls were heading toward the center of the screen because of gravity. If you struggled with gravity during your high school classes, don’t worry. With Flame and Forge2d it is super easy to add it to your world. By the way, I wonder what it felt like — talking about Flame, while one of the maintainers sits in the same room and listens to you? No pressure, for sure.
M1 Mac machines in CI/CD for Flutter developers
Nils shared with us interesting statistics on how switching to M1 machines improved build times. Spoiler alert: a lot. He also shared his method of speeding up the testing process during code reviews.
Power of federated plugins in Flutter’s ecosystem
Is there a better-suited person to talk about plugins than the lead developer of FlutterFire? In his talk, Guillaume showed us how was it possible to implement FlutterFire for Desktop without using the native SDK, just the Firebase REST APIs. He also talked about good practices while designing cross-platform APIs and tools that will make your work easier.
Let’s test the full widget tree!
I talked about full widget tree testing — a term created by my colleague Natalie Masse Hooper. Basically in this approach, you write widget tests that resemble integration tests. In each test, you pump the whole application widget and replicate the steps user would have to take to see a given widget. This way you can test everything up till the network layer, as you only mock API calls and maybe some third parties.
Observation-based product development using Flutter
Most apps use some kind of tracking. We log events performed by users, errors, crashes and warnings. But are you taking advantage of all this data? In observation-based product development Mangirdas showed us how can we improve our logs and what conclusions can we extract from them. I believe this is something every Product Owner or Manager should keep in mind. We should listen to our users and their needs and not waste precious developers’ time on implementing features nobody wants or needs.
Secure your Flutter Web app using Multi factor authentication
Renuka shared with us her road to Multifactor Authentication in Firebase… before it was officially supported. A weird thing that such a popular feature wasn’t available, but it’s good to know that it was achievable using Identity Platform. Thankfully, it is now available in Firebase. In the end, Renuka also showed us the updated, much simpler solution.
Your app deserves its own CLI: Try sidekick
Pascal showed us Sidekick, an open-source CLI generator for Flutter and Dart. Imagine you get all the power of a bash script without the need to actually use bash. You can write scripts for automating your tasks using the language you know and love the most — Dart! The project contains thorough documentation to help you with getting started. There is also a growing library of ready-to-use commands. Let’s go and automate everything!
The conference ended with Majid’s lightning talk about extensions in Firebase. The catalog is constantly growing — from image resizing utils to toxic comment detection, the possibilities are vast. It also speeds up your prototyping — why reinvent the wheel, when you can use ready-made functions to achieve your goals? Or, if you like contributing, you can also create your own extensions and publish them in the marketplace.
I enjoyed this conference and I am already looking forward to the next one. Rumour has it there will be a big event in July 2023 in Berlin…. I will take it into account while planning my holidays.
During Droidcon it was good to see that Flutter is already a first-class citizen in the mobile development world. I did a tour around sponsors’ booths (and even won AirPods Pro, woohoo!) and guess what — all of the product companies either already support Flutter or have it in their roadmap for the nearest months. The Flutter room was often full and no, it wasn’t just the speakers. I talked with many participants who came to London just because of this track. I see Flutter’s future in very bright colors!