Apple's Liquid Glass UI: Flutter Will Struggle
Apple just announced its first major UI redesign in years: "Liquid Glass". It's meant to bring a consistent, futuristic look across all Apple platforms — iOS, macOS, iPadOS, tvOS, and watchOS — starting with version 26 this fall. It really does look like something out of a sci-fi movie, and it gives all iDevices a fresh look.
But what I'm really curious about is how the Flutter team is going to handle this. Honestly, I think Flutter is going to have a tough time. Here's why.
The Core Issue: Flutter Renders Everything on a Canvas
Flutter draws its UI on a canvas, ignoring the underlying platform — iOS, Android, web, whatever. That's why Flutter apps look the same everywhere. If you want a platform-specific element, you end up doing platform checks if(Platform.isIOS)
to render pre-built, platform specific widgets, which gets messy fast in a big codebase.
Struggle #1: Adapting Liquid Glass
People are going to love Liquid Glass. It makes old devices feel new again. Beyond just looks, it allows UI elements float over the content, making the actual content render edge-to-edge, making it more enjoyable. I bet we'll see new design patterns pop up soon.
But for Flutter, this is a headache. Since everything is painted on a canvas, the Flutter team will have to recreate the Liquid Glass look — UI, UX, and all the fancy glass shaders. And they'll need to do it fast, since the new UI lands this fall.
Even if Flutter pulls it off, developers still have to write platform-specific UI code, especially for older iOS versions where Liquid Glass isn't available. That's a lot of extra work.
Struggle #2: Apple Will Keep Tweaking Liquid Glass
As much as people love it, they will hate it too.
The transparent, squiggly design is bound to cause new accessibility issues — like white text over a busy background being unreadable. Once millions start using Liquid Glass, feedback will pour in. I've already seen people on X and Hacker News mentioning readability issues just from Apple's demo video, so you can bet more complaints are on the way.
Apple will probably add settings for things like "Transparency" or "Viscosity", letting users fine-tune the effect. Suddenly, Liquid Glass could look different for every user — tinted, less squiggly, more grainy, whatever.
Flutter will struggle to keep up with these changes. It's not as simple as switching a background color for dark mode — you'd have to actually respect the user's current UI settings.
Struggle #3: UI Divergence — Material 3 vs. Liquid Glass
Just two weeks ago, Google announced Material 3 "Expressive" for Android. Now Apple has Liquid Glass. The design languages are diverging fast. Users will expect apps to match their platform's look and feel. This is where cross-platform tools like Flutter will fail in the near future.
Conditionally rendering UI for each platform gets as time-consuming as just writing native apps in Swift or Kotlin. As your app grows, the codebase gets harder to maintain.
So, What's the Best Option?
I wrote an article three years ago on how to pick the right tool — native or cross platform — for your next app idea. It's the right time to update the recommendations.
With design languages splitting like this, my advice for your new app: if you really want to reduce time and cost, use native UI with cross-platform logic. Kotlin Multiplatform is a solid choice — you can write native UIs in SwiftUI and Compose, but share business logic (database, APIs, storage, Bluetooth, etc.) in Kotlin, since it compiles to native code for both iOS and Android.
Note: While Compose Multiplatform (which is different than Kotlin Multiplatform) lets you share UI code across platforms, it faces similar challenges as Flutter — your app won't fully match each platform's native look and feel.
Let's see how this all plays out. But for now, I'm betting Flutter is in for a rough ride.