Photo by Omar Al-Ghossen via Unsplash

Flutter & its ‘poor’ iOS performance

Thomas Middel
4 min readFeb 22, 2021

Flutter’s not all fun and games, the current drama on ‘iOS jank’ is causing lots of developers to either stay away from Flutter or convert their existing Flutter apps to something else. Should you do too, or are people blowing this issue out of proportion?

My feed has been blowing up these last few weeks or so. Whether it’s Twitter, Reddit, or Youtube, everyone’s talking about this so-called ‘iOS jank’ Flutter issue. For those of you that didn’t see it yet, click here to check out the issue (which is one of many).
In short: Flutter apps on iOS are having a lot of issues playing animations for the first time. Even something as simple as a default page transition can be stuttery at first, causing a lot of developers to question whether they should put their Flutter apps in production in the first place. Performance on iOS just seems off, so developers are turning to other cross-platform solutions, going (back) to native development, or are considering something like Kotlin Multiplatform.

How does the issue look? Just check out the video below, notice how the animation is stuttery at first but is smooth later on:

What is ‘jank’?

A lot of developers are currently talking about ‘iOS jank’, ‘animation jank’, etc., but what is jank in the first place?

Think of an animation when it’s not running smooth. It can be stuttery or even freeze for a longer period of time: jank! When Flutter’s running at 60 frames per second, each frame has a specific time in which the framework needs to render the UI. All is good and buttery smooth when the work can be done within the specified amount of time, but if the rendering time exceeds the time available per frame, the framework will start skipping frames. That’s basically what’s causing jank! Flutter posted a nice video on this right here: