Hi friends, after a month working on it full-time, I managed to make arbitrary Flutter apps ~60FPS smooth regardless of how janky it originally was due to build/layout.<p>For demonstration, there is a 3-second video in GitHub README. You can also find more details in the "Benchmark" chapter, where I experimented it and see it runs at (roughly) full FPS, feel smooth, has zero uncomfortable janks, with negligible overhead.<p>There are two ways to use it: For common scenarios, just add six letters ("smooth"), such as using SmoothListView instead of ListView. For complex cases where you want customization, use SmoothBuilder and put things that you need to be smooth inside the builder (just like how you use Builder everyday, but smooth).<p>As for how it is implemented, I have written down a full chapter ("Design" chapter) in the documentation.<p>Story time: Indeed I have failed a ton of times before finding out this solution. The "literature review" section summarizes them so I do not repeat here. It is another ton of failures before the theory becomes truth. At around half a month I was almost going to give up, because it stuck at less than 40-50FPS instead of the perfect ~60FPS, and my theory seems does not consider the scenario after a janky frame properly at all. But later I managed to patch my theory to fix the problem (seen in "post draw frame" section of doc). After that I fixed many edge cases one by one, where each problem causes (for example) 1FPS drop, then finally reached near 60FPS.