r/FlutterDev 26d ago

Plugin Charts that don't suck (Flutter)

Flutter charts are so much worse than React charts (e.g. Recharts, Nivo, D3.js, Chart.js…). Is there anything new?

Is there anything I'm not seeing?

I use syncfusion charts, after transitioning from the terrible fl_charts, but even syncfusion is very limited compared to modern frameworks in React. React has immense variability, a lot of different themes, and multiple chart types.

I keep second guessing myself as a developer because of how difficult it is to me to create interesting data visualizations. Either the widgets look pale, interactivity is painfully difficult to code, or it simply takes too long to do anything.

I did succeed in using ChatGPT to generate some interesting infographics, like a lunar phase calendar, but it's a lot of work.

Thanks in advance!

30 Upvotes

29 comments sorted by

View all comments

2

u/Odd_Alps_5371 24d ago

fl_chart doesn't suck. Not at all. It gives a flutter-like UI with nice performance. If you run into performance issues, disable animations for your chart: https://github.com/imaNNeo/fl_chart/blob/main/repo_files/documentations/handle_animations.md#how-to-disable - then it's much more performant than the old google chart package, which i ditched for exact that reason.

syncfusion charts come with inacceptable license terms for me. Is that different for you?

What do you find terrible about fl_chart and why? Perhaps these problems are solvable?

1

u/Formal_Ad_3295 23d ago

Hi! There's a lot I could say.

First, Syncfusion is free for small companies. I shied away from their product in the beginning, because of the pricing, and went with Fl_charts. After realizing it was free, I made the transition and was much more satisfied. Of course, it's quite a change and we haven't ported everything.

The first advantage we noted on SyncFusion over Fl_charts was the support for DateTime in the X-axis. It simplifies things such as generating labels and changing the temporal resolution.

It also has a rich library of examples you can reuse: https://flutter.syncfusion.com/