August 2023: Flutter 3.13 Release, FlutterCon Recordings, Latest Community Articles

Flutter 3.13 is here!

This release introduces new widgets (2D scrolling, yay!) and brings improvements on many different fronts (performance, accessibility, Material support, improved iOS widgets, and more!).

Alongside it, Dart 3.1 is available too, and in this newsletter, I’ll give you an overview of all the highlights.

But there’s more.

A few weeks ago, the FlutterCon speaker videos were published. Having attended the conference back in July, I can assure you that this video archive is a goldmine, and below you’ll find some my favourite talks. ❤️

Finally, I’ll also share some of the latest articles from the community. 🙂

Ready? Let's go!

What’s new in Flutter 3.13

In a nutshell, here are the top highlights from the new release:

For all the details, read the official blog post:

📝 Dart 3.1 & a retrospective on functional style programming in Dart 3

With the release of version 3.0, Dart has truly become a multi-paradigm language that allows you to write code with an object-oriented style (using class hierarchies) or functional style (using types and pattern matching).

As a minor release, Dart 3.1 doesn’t introduce any new language features, and it won’t affect the way you write Dart code.

As a result, the official announcement is more of a retrospective about how the new language features can help you model your data and improve the way you write and structure your Dart code.

If you want to better understand the difference between the object-oriented and functional approaches when writing code, this is a great read:

📹 Flutter Resources for iOS developers

If you’re coming from the iOS world and you want to port your apps to Android with a single codebase, Flutter is the ideal choice.

To help with this, the Flutter team has published a new in-depth video explaining how Flutter works on iOS:

Additionally, these useful resources are available in the official documentation:

The FlutterCon Videos are Now Available!

As I mentioned in the previous newsletter, FlutterCon 23 has been an amazing conference, packed with many in-depth talks.

So it’s great to see that all the Flutter video recordings have been published:

Admittedly, the official website is a bit clunky to navigate. But fear not, for I have listed all the talks and resources on this (updated) repo:

With so many great talks, I really struggled to pick my favourites.

So here’s a shortlist of the ones I found most engaging, creative, and informative. 👇

🎤 Leaving the nest: The Next 10 Years of Flutter

I know very few people who can kickstart industry-leading products such as Flutter, and have the long term vision to see them thrive over many years.

One of these people is Eric Seidel. And it was great to hear his take on where Flutter might go over the next 10 years, what expectations the next 10M Flutter developers will have, and how to meet those expectations.

In the talk, Eric also gave a demo of Shorebird, a new tool that enables code push for Flutter apps:

🎤 Demystifying Text Rendering in Flutter

This was a highly entertaining talk by Raouf Raniche about how text rendering works, and how even big companies like Spotify mess it up in their apps.

Covered topics include:

  • How various font metrics affect the text line height
  • How character positioning and selection works on LTR, RTL, top-to-bottom layouts
  • How text rendering works in Flutter, known gotchas, and things you should consider to “get it right”

For all the details, here’s the full talk:

🎤 From Network Failures to Offline Success: A Journey of Visible App

Dominik is a Flutter GDE who’s been working on Visible, an app for people with chronic illnesses (such as long COVID).

And in his talk, he talks about the challenges his team encountered when dealing with network connectivity as the app grew in scale and how they overcame them by making the app offline-first.

The biggest takeaway is that offline is not an error. Rather, it is one possible (and rather common) application state that should not be left as an afterthought.

For all the details, watch this:

🎤 Building Kahoot visually with FlutterFlow and Firebase

This was a super-fun talk and live demo, where Pooja Bhaumik showed us how to build the Kahoot quiz app using FlutterFlow.

What made the talk so interesting is that Pooja did not focus on the UI - but rather showed how to use FlutterFlow to handle business logic and Firebase data access, including:

  • How to connect a ListView to a Firebase Backend Query
  • How to handle Firebase Authentication and chain multiple actions using visual workflows
  • How to render UI based on complex conditions that depend on the application state

She did all this without writing any code. And to top it off, she showed how to use the finished product by running a live quiz with the audience. 🤯

Check it out:

🎤 Building a large-scale Flutter mobile banking application with 25 Flutter Devs

During FlutterCon, the LeanCode guys delivered not one but two very interesting talks.

The first one was about Patrol, a powerful tool for UI integration testing in Flutter (here’s the talk: Reimagining Flutter UI tests with Patrol).

The second one was about their experience in building a large-scale app with a team of 25 Flutter developers.

Without a doubt, building large apps with large teams presents some unique challenges, including:

  • Deciding who owns the code
  • How to structure the code (project structure, packages and features, etc.)
  • What tools to use to make life easier (Melos, Patrol, StoryBook)
  • How to establish a design system that could be used by multiple teams (and how to ensure the app conforms to the designs using golden tests)

Here’s the full talk:

🎤 Shaders - Beyond the Gimmick

Fragment Shaders are a very interesting topic, and I’ve already shared various resources about them in previous newsletters.

So I particularly enjoyed this talk where Renan Araujo showed:

  • What shaders are and how they work
  • How to add them to a Flutter application
  • A few examples (basic interpolation, fancy gradients using meshes and animations, image textures, UI sampling)

Definitely worth a watch if you want to know what Flutter is capable of:

🎤 Migrating a Flutter app to Material 3

If you want to migrate your Flutter app to Material 3 but don’t know how to, this talk by Taha Tesser covers all the things you need to know, including:

  • The userMaterial3 flag and what happens when you enable it
  • Ways to update the color scheme and typography
  • Elevation and how it affects the look of your widgets
  • Switching to the new Material 3 widgets

Here are all the details:

🎤 Animating a production app with tens of thousands of users

When it comes to Flutter animations, Marcin Szałek is one of the most knowledgeable devs out there.

And in this talk, he shows how he added advanced animations to a real-life production app that allows users to send money to friends, by covering:

  • How to build a simple micro-interaction example and gradually add more complex effects, ensuring the end result can be reused in multiple places.
  • How to implement an animated splash screen, which can be used to delight users when they first install the app.

If you want to learn how to make your apps beautiful with the built-in Flutter animation APIs, don’t miss this:

🎤 Custom_lint: write lints and fixes

When Remi Rousselet comes on stage, there is always something amazing to learn.

And in this talk, he delivered a live coding demo, showing how (relatively) easy it is how to write custom lint rules and fixes for your Dart projects.

As part of this, you will learn:

  • How to create custom lint rules
  • How to report errors that will appear in the code editor (based on some rules)
  • How to add quick fix options and the logic for applying them

Here’s the full talk:

🎤 Other excellent talks

With so many amazing talks, it was hard to make a shortlist. Here are a few more of my favourites:

And once again, you can find the entire list here:

Other community articles

Aside from the Flutter 3.13 announcement and all the FlutterCon talks, I also want to share these useful articles from the community. 👇

📝 A new way of listening to the app lifecycle events in Flutter

In this new article, Mangirdas Kazlauskas takes us through the new AppLifeCycleListener class introduced in Flutter 3.13, showing how it’s now possible to listen to transitions between states, making it easier to run some code only for the transitions you are interested in.

Additionally, it shows how we can use the onExitRequested callback to ask if the application should exit in cases where the exit is cancelable:

📝 Static Code Analysis

As part of her new newsletter, Daria Orlova published a great article about:

  • The static code analysis tools her team uses to follow established code practices and have more confidence in the quality of the codebase.
  • Some useful lint rules you can enable in your projects
  • An example of how she implemented a custom lint rule with the custom_lint package (no doubt, this was inspired by Remi’s talk at FlutterCon 🙂)

Overall, I quite like her humorous and informal writing style, and you can read the full article here:

Until Next Time

For most of the last month, I’ve been on holiday with my family, and I haven't published new articles as a result.

But now I’m back in business and can’t wait to share new content (and some new, upcoming projects) with you all! 💪

So stay tuned for updates and happy coding!

Want More?

Invest in yourself with my high-quality Flutter courses.

Flutter Foundations Course

Flutter Foundations Course

Learn about State Management, App Architecture, Navigation, Testing, and much more by building a Flutter eCommerce app on iOS, Android, and web.

Flutter & Firebase Masterclass

Flutter & Firebase Masterclass

Learn about Firebase Auth, Cloud Firestore, Cloud Functions, Stripe payments, and much more by building a full-stack eCommerce app with Flutter & Firebase.

The Complete Dart Developer Guide

The Complete Dart Developer Guide

Learn Dart Programming in depth. Includes: basic to advanced topics, exercises, and projects. Fully updated to Dart 2.15.

Flutter Animations Masterclass

Flutter Animations Masterclass

Master Flutter animations and build a completely custom habit tracking application.