Flutter performance tips - Flutter in Focus

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[MUSIC PLAYING] FILIP HRACEK: Hi, I'm Filip from the Photo Team. And today I'm going to give you some tips on how to make your apps performant. We have a growing set of documentation pages about Flutter performance at this URL. This video is meant to give you only a high level overview. Flutter apps are performant by default. For example, here's an app that orbits 100 individually painted containers around the screen, recomputing each position every frame. All in Dart and Flutter, all smooth at 60 frames per second. That is to say, don't optimize majorly. Test first, and only if your test reveals an issue, then optimize. Also, Flutter and Dart themselves are getting faster. For example, some very important performance benchmarks saw significant improvements just in the last few months. That is to say, the Flutter team really cares about making it easy for you to build performant apps without you having to do all the work. Still, sometimes there's work to be done. Sometimes you want to squeeze that extra bit of performance out of Flutter or you see a performance issue in your app and you don't know why. For these reasons, we have these videos, the Performance Related Pages on flutter.dev and, of course, the Performance Tooling. This five-minute intro video will not teach you everything you need to know about performance. I'm here to give you some pointers and some terminology. Broadly speaking, there are two types of performance issues, those relating to time and those relating to space. Performance issues relating to time arise when something takes too much time or when it forces the device to run at a faster pace. Jank is a time-related issue. Jank is when there is an animation that is otherwise smooth, but it skips a frame or two. The effect is unpleasant. There was not a problem on your side, by the way. It was just us trying to illustrate jank on video. Anyway, jank is when your app spends too much time building a frame. The frame is not ready in time, so Flutter has to skip one or more of the others. What you see here is what we call the timeline view. The dotted lines are when each new frame should be ready. We call them vsync. The green bars represent the amount of time your app spends building each frame. When the bar is short like this, all is good. It's ready in time for its vsync so it gets shown. But when a frame takes too long to build, it can be missed. Flutter has nothing new to show so the UI kind of freezes. That's jank. Sometimes your app doesn't jank but it consumes too much battery. That is actually a very similar issue. Here's what the timeline view looks like for a battery hungry app. Every frame takes way too long to build. It doesn't jank, thankfully, but the device needs to do a lot of work. And for mobile devices, that translates directly into shorter battery life. Ideally, you always want the timeline view to look like this. And of course, if you're not showing an animation, if your UI is static at the time, then Flutter it is smart enough to not do any frame builds at all. So these where time-related performance issues. What about the space related ones? Your app might be too big, which is a problem when it doesn't fit on your user's phones or when it's too big of a download for them. Your app can also take too much memory or it can leak memory, which means you are unwittingly keeping some memory you don't need anymore forever. Both performance problems, time-related and space-related can be awful for the user. Flutter gives you tools to deal with both. There's the Performance Overlay, the widget Rebuild Tracker, the DevTools Timeline, the DevTools Memory Tab, and more. Check out flutter.dev/docs/perf for more information. We'll be adding more tutorials and videos like this one so that you can make your app as performant as possible. Battery's full, frame rate smooth, and, ultimately, users happy. [MUSIC PLAYING]
Info
Channel: Flutter
Views: 145,364
Rating: undefined out of 5
Keywords: GDS: Yes, Flutter performance tips, Flutter performance, rendering best practices, flutter debugging tools, flutter performance tools, battery issues, what causes jank, battery draining issues, memory consumption issues, measure app size, rendering performance, rendering, Flutter tutorial, what is Flutter, how to improve Flutter performance, DevTools, flutter devtools, Dart, Flutter, Flutter widgets, Flutter in Focus, Filip Hracek
Id: PKGguGUwSYE
Channel Id: undefined
Length: 4min 29sec (269 seconds)
Published: Tue Jun 23 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.