Flutter is growing fast, getting more and more mature. But what about the charting libraries? How powerful and usable are they today? We will compare five libraries:

The code used to test is available on Github:

Note before to start: this comparison is totally subjective, it is just my opinion and feeling. The comparison is made only for a timeline chart so it is not covering all the features of the libraries presented here. Note for the authors of the libraries if they read this: I might not have understood everything right so forgive me if I say something wrong and correct me please.

Let’s start by checking the general results and then we will review the details library by library. The criteria that we use are: general api power, api comfort, customization, maintenance, documentation and beauty.

Api

The api power represents the possibilities offered by the library and the api comfort is the ease of use and understanding.

Maintenance and documentation

The maintenance represents the frequency and recentness of the commits in the repository.

Customization and beauty

The customization is the amount of options and visual changes possible for the chart. The beauty is really subjective, make your own opinion.

Now let’s check the details for each library. The test was made with some stock price data: a date and a double. All the libraries have been tested with 3 dataset sizes: 15 records, 500 records and 3000 records. Note that the speed of rendering has never been a problem: all the libraries render the chart almost instantly in release mode even with 3000 datapoints on an old device (Flutter rocks!), so the speed of rendering has not been included in the comparison.

Flutter charts

The good old chart library from Google (non official).

This library is very powerful: many charts are available: check the gallery. There are a lot of customization options but the api is really complicated and unfriendly. Furthermore the IDE popups help when you hover a function are not helpful at all (in Vscode).

Two more criteria will be used to evaluate the libraries: the ability to use directly some model data from a class without transforming it and the automatic labeling from a DateTime serie on the x axis, which is very helpful for charting time series.

Use model data directly: yes

Automatic labeling from datetimes: yes

Some very important criteria for me are the documentation and the maintenance. For Flutter Charts the documentation is good with a lot of examples with code in the gallery. Where it hurts is the maintenance: the repository has not been updated since 4 months. Here is the repository activity chart:

To sum up this library is powerful but hard to get a grip on. It can still be very useful and produces good looking animated charts. The problem is that it seems pretty abandoned today. Strengths and weaknesses of this library in a chart: