Flutter Vikings Conference - Day 1
Today was the long awaited day the Flutter Vikings Conference finally started off. Day 1 of 2 was packed with numerous high-calibre speakers, such as Remi Rousselet (Creator of Provider/Riverpod, Freezed), Craig Labenz (Face of Flutter YouTube) and many many other Google Developer Experts.
After being ceremoniously greeted by the great organiser Majid Hajian with his best Viking impersonation, the day started off with hard choices. As different talks were streamed in 3 rooms simultaneously, the viewers had to decide between them. This was only made easier by the fact that everything was streamed via YouTube and thus rewatchable anytime.
Deep Dive into Theming
I stayed in the “Valhalla” room for the first hour, listening to Mike Rydstrom talk about Flutters theming and potential pitfalls when it comes to Material 3. Mike really showed his full knowledge about the topic, giving helpful pointers, even to more experienced developers.
Flutter Architecture Components
Next up was Alessio Salvadorini with his talk about Flutter Architecture Components.
Even though he stated that the topic will be a hot take for many, I found myself agreeing to his proposed architecture in many ways. That being said, the part where he talked about state management was during technical issues, so it was not streamed - Hot takes might have been avoided there...
What stuck with me the most was his quote during the conclusion:
“Your code must be a reflection of your mental model."
If your mental model is not in line with the code you produce - and especially with the architecture you use - you will run into big troubles.
Sidenote: While the stream was down for a few minutes, I hopped into the “Odin” room and got hooked by Joachim Böhmer´s talk about Flutter Web in action. Definitely something I will rewatch down the line! (Thanks YouTube!)
Lifecycle Of A Widget
After the lunch break, a familiar face in Craig Labenz greeted us. If you are a Flutter developer, you surely know him from his energetic tutorial videos on the official Flutter YouTube channel. Today, he went deep into the framework, talking about the lifecycle of a widget. It was extremely interesting, hearing his detailed explanation of how Widgets relate to Elements and Render Objects, how the scheduling works inside Flutter and much more.
Flutter at Scale
Simultaneously, people in the “Odin” room had the joy of listening to how Flutter was used to create a big banking app. Two employees from “LeanCode” (yes, just like LeanCoders and LeanForge) talked about their experiences during the project, in which more than 25 Flutter developers were involved.
Some key points takeaways for big projects were:
Responsibilities need to be clear. There has to be someone (or better, some team) responsible for every part of the code.
Taking a domain-oriented point of view often helps.
You need a task runner.
Strictly enforce the design system.
Future-proof the system, there will be changes.
Another general suggestion was to use Storybook for Flutter, which I very much look forward to trying!
Building a open-source SDK
Gordon Hayes and Deven Joshi talked about their experience as part of the Stream Chat team. This talk was especially interesting for me, as we at LeanForge already integrated their SDK in one of our apps, and even contributed to the open source project!
The talk was a great mix of technical details, like issues with ListViews they ran into while developing their SDK, and more developer-relations focused topics, like how to engage people in your open source project and how to market it.
Ending the day on a high note, Remi Rousselet took the chance to show off new features coming to his highly popular state management library “Riverpod”. He live-coded an app which interacts with pub.dev (package repository for Dart/Flutter) and integrated features like pull-to-refresh and infinite scrolling with automatic fetching. While doing so, he made some great arguments for using Riverpod, showing how smooth the developer experience of the 2.0 version really is.
Even though we use BLoC at LeanForge, it might be time to look into Riverpod, especially for smaller-scale projects!
Apart from the actual content of the app, I admired how graceful Remi was at live-coding. He definitely prepared quite a few VSCode snippets for that…
This was it for the first day. If you want more insights into the conference, follow me on Twitter, where I post regular updates about the talks I am watching. Stay tuned!