Home
Softono

Flutter Smooth

Open source MIT Dart
1.7K
Stars
74
Forks
32
Issues
21
Watchers
4 months
Last Commit

 About Flutter Smooth

Achieve ~60 FPS, no matter how heavy the tree is to build/layout

Platforms

Web Self-hosted iOS Android

Languages

Dart

Need Help Installing Flutter Smooth?

We provide expert installation service for this software. Our team will install, configure, and secure Flutter Smooth on your server. plans start at just $30.

Flutter Smooth

View on GitHub

flutter_smooth

logo

Achieve ~60 FPS, no matter how heavy the tree is to build/layout.

🎼 3-second video

https://user-images.githubusercontent.com/5236035/196152010-09a2d829-c94c-48b4-80ed-0633430329ec.mp4

(left = without smooth, right = smooth; captured by external camera to maximally demonstrate end-user perception. High-resolution video here. Deliberately made it super janky for clear demonstration.)

πŸ“š 1-minute explanation

Purpose

No matter how heavy the tree is to build/layout, it will run at (roughly) full FPS, feel smooth, has zero uncomfortable janks, with negligible overhead. (Detailed reports here)

Usage

Two possibilities:

  • Drop-in replacements: For common scenarios, add 6 characters ("Smooth") - ListView becomes SmoothListView, MaterialPageRoute becomes SmoothMaterialPageRoute.

  • Arbitrarily flexible builder: For complex cases, use SmoothBuilder(builder: ...) and put whatever you want to be smooth inside the builder.

πŸš€ What's next

The documentation - https://fzyzcjy.github.io/flutter_smooth/, with usage, demo, benchmark, insights, and more.

Note Feel free to create an issue if you have any questions/problems. I usually reply quickly within minutes if not hours, except for sleeping :)

πŸ’­ Current status

Now I am working on pull requests to Flutter framework and engine (i.e. not directly modifying code in this repository), such that you can use this package with standard stable Flutter. An auto-generated list of PRs can be seen here, or conversations here.

Contributors

All Contributors

Thanks goes to these wonderful people (emoji key following all-contributors specification):

fzyzcjy
fzyzcjy

πŸ’» πŸ“– πŸ€”
Ian Hickson
Ian Hickson

πŸ€”
Dan Field
Dan Field

πŸ€”
Jonah Williams
Jonah Williams

πŸ€”
gaaclarke
gaaclarke

πŸ€”
Nayuta403
Nayuta403

πŸ“–
pajlada
pajlada

πŸ“–

More specifically, thanks for all these contributions:

  • @Hixie (Flutter team): Consider details of my several proposals to the Flutter framework/engine such as requiring zero-overhead principle. Construct concrete cases when the initial proposal becomes fragile.
  • @dnfield (Flutter team): Provide a canonical janky case inside Flutter framework to help prototyping. Point out slowness of sync generators which avoids detouring.
  • @jonahwilliams (Flutter team): Elaborate shortcomings of the old gesture system proposal (later I made a much more natural one).
  • @gaaclarke (Flutter team): Share his pet theory that slowness is caused by memory locality, indicating another potential application of the package.
  • @Nayuta403: Fix link.
  • @pajlada: Fix typo.