Reflecting on Flutter after Fluttercon 2024

3 minute read

Fluttercon 2024

Not sure how about you, but lately I’ve been getting impression that Flutter ecosystem has been affected by some pessimistic or defeatist claims, sometimes even overshadowing other good news or experiments. Thankfully, coming again to a big event makes you realize that online chatter is not the whole picture.

If you’re not in the twitters and reddits of the web, here’s a quick recap of the most impactful voices either commenting or responding to claims that Flutter can be killed by Google:

Same as many of you I sometimes get a bit of FUD, but in the long run, I see how the general trajectory of the framework and ecosystem maintains stable. To support this, let’s recap some of the exiting news and showcases from this year’s Fluttercon.

Platform Views and the big thread merging

The Flutter TL John McCutchan had a quite insightful talk about Platform Views on Android. It was refreshing to see the team admitting to mistakes in the current implementation, as well as proposing a long-term plan of fixing that. The only issue is that these fixes will only be enabled by the upcoming Android SDKs (34 and 35) which means that we’ll have to deal with current limitations for another year or two. Aside from that they confirmed that there’s a plan on merging platform and Flutter UI thread, which sparked a lot of discussion e.g. around native interop (things like method channels, ffi, JNI).

Folks from the Dart team have shown the jnigen tool that enables calling Java and Kotlin code directly from Dart, avoiding message passing through method channels. In short you could potentially invoke Kotlin plugin functions through simple Dart interface like in this example:

void showNotification(String title, String text) {
  i = i + 1;
  var jTitle = JString.fromString(title);
  var jText = JString.fromString(text);
  Notifications.showNotification(activity, i, jTitle, jText);
  jTitle.release();
  jText.release();
}

Some experiments are in progress to bring similar syntax to Swift through ObjC.

Personally, I find this to be a really solid response to Kotlin Multiplatform expect and actual declarations.

Visuals, animations, shaders

As it often happens, the most impressive talks are the ones that play with visuals. I got impressed by Raouf Rahiche’s take on fragment shaders, reminding me of last year’s shader talk by Renan Araujo (missed you!).

Btw check out the new project bringing some amazing shaders straight to Flutter: fluttershaders.com

Compose

I went to couple of Compose and Compose Multiplatform talks just to see what makes the Android devs excited. Seems like Compose is doing well, although I can’t get rid of the uncanny feeling that it’s taking best from Flutter while keeping entire Android toolchain weight to deal with. Worth keeping an eye on Jetbrains efforts on Multiplatform as they are facing quite similar challenges as Flutter, while being able to avoid some of the dead ends that Flutter had to face (e.g. with multi window support, native interop).

Social battery charged

During my talk I asked folks what are the types of the apps that they work on and the response from over 200 people who scanned the QR code makes me feel joyful.

word cloud

To all the people I met and ones I missed - you’re doing amazing job, and I couldn’t be more happy to be part of this community. Thanks to all the organizers, speakers, and attendees for making this event so special. I’m looking forward to the next one!

Updated: