Flutter: Tree-Shaking vs. Selective Import

When building mobile application, the most important consideration is how to optimise it’s size and performance. In case of flutter, two most important approaches for achieving this is tree-shaking and selective import. In this article, we will explore both approaches and discuss which one might be the best one for your Flutter project.

Tree-Shaking in Flutter

Tree-shaking is a process that reduces your Flutter binary size by eliminating the unused codes from your application. Flutter has built-in support for tree-shaking. It works by creating a tree structure for all the executable code from the main function. Then it eliminates all the unused variables and functions. We have written a great article on Let’s understand Flutter Tree shaking, you can read it for more details.

Selective Import in Flutter

Selective Import is another technique to optimise your Flutter application by reducing the memory footprint and reducing the binary size. This approach involves importing only the useful parts of a package or library that are needed by the application, instead of entire package or library.

For example, if you only need to import Text widget from the material library in Flutter framework, you can import it like this:

import 'package:flutter/material.dart' show Text;

This way, you don’t import all the other components of Flutter framework, thus reducing the binary size and improve it’s performance. You can read more about selective import on this StackOverflow answer.

Which is better: Tree-Shaking or Selective Import?

Both tree-shaking and selective imports are effective techniques to reduce your binary size and optimise your memory footprint. However, the best approach depends on your Flutter application functionality.

If your have a large application, tree-shaking is better approach for you since it will automatically optimise your code. However, if you have a small application, it will be better to use selective import since you will import only those part of package or libraries that you really require. This will result in smaller size and optimised code.


In summary, both these methods tree-shaking and selective import are important tools for code and memory optimisation. What you choose as your go to technique, depends on what you project’s specific needs.

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *