A Flutter widget for embedding Apache ECharts charts with reactive data updates and two-way communication.
Flutter ECharts is a Flutter widget that allows developers to embed Apache ECharts visualizations into their Flutter applications. It solves the problem of creating interactive, complex charts in Flutter by leveraging ECharts' capabilities through a WebView, providing a reactive way to update charts when data changes. The widget supports a wide range of chart types, from basic line and bar charts to advanced 3D and geographic visualizations.
Flutter developers who need to incorporate interactive, data-driven charts into their mobile or web applications and prefer using the Apache ECharts library for its extensive features and customization options.
Developers choose Flutter ECharts because it seamlessly integrates the powerful ECharts library into Flutter with reactive data binding, two-way communication, and support for extensions, eliminating the need to build charting solutions from scratch or use less feature-rich native alternatives.
A Flutter widget to use Apache ECharts in a reactive way.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Charts automatically re-render when the option property changes, leveraging ECharts' data-driven architecture for seamless updates without manual intervention.
Through onMessage and extraScript properties, developers can handle interactive chart events and send messages between Flutter and JavaScript, enabling rich interactivity.
Supports all ECharts chart types, including 3D, geographic, and advanced visualizations, as shown in the comprehensive example gallery with GIFs.
Allows injection of ECharts extensions (themes, components) as raw strings, simplifying asset management without external file dependencies.
The project is no longer maintained, with the author explicitly recommending native alternatives like Graphic, meaning no bug fixes, security patches, or new features.
Rendering charts in a WebView can lead to higher memory usage, slower load times, and compatibility problems on some devices compared to native Flutter widgets.
Configuring gesture capture (e.g., captureAllGestures) often interferes with parent widgets like ListViews, requiring tedious trial-and-error to avoid breaking user interactions.