A collection of Flutter packages for financial charting and technical analysis.
| Package | Description | Pub |
|---|---|---|
acme_chart |
Financial charting library - candlestick/line charts, indicators, drawing tools | |
acme_indicators |
Pure Dart technical analysis computations |
- 📊 Chart Types — Candlestick (OHLC) and line series
- 📈 20+ Technical Indicators — RSI, MACD, Bollinger Bands, Ichimoku Cloud, ADX, Alligator, Aroon, CCI, Donchian Channels, DPO, Fractals, Gator, MA/MA Rainbow/MA Envelope, Parabolic SAR, ROC, SMI, Stochastic Oscillator, Williams %R, ZigZag, and more
- ✏️ Drawing Tools — Trend lines, horizontal/vertical lines, rays, channels, rectangles, Fibonacci fan, and more
- 🖱️ Interactive — Pinch-to-zoom, pan, crosshair, tap-to-select
- 🚧 Barriers & Markers — Entry/exit markers, price barriers, tick indicators
- 🎨 Theming — Built-in dark/light themes, fully customizable
- 💾 Persistent Storage — Saves indicator and drawing tool configuration via
shared_preferences
- 🎯 Standalone Dart package — no Flutter dependency required for computations
- 🔗 Used internally by
acme_chartfor all indicator calculations
Add acme_chart to your pubspec.yaml:
dependencies:
acme_chart: ^1.0.0import 'package:acme_chart/acme_chart.dart';
AcmeChart(
mainSeries: CandleSeries(
candles: candles, // List<Candle>
),
)Use AcmeChart for the full-featured widget with UI controls for adding/removing indicators and drawing tools:
AcmeChart(
mainSeries: CandleSeries(candles: candles),
pipSize: 2,
granularity: 60, // seconds
)Use the lower-level Chart widget when you need manual control:
Chart(
mainSeries: CandleSeries(candles: candles),
overlaySeries: [
BollingerBandsSeries(candles: candles),
],
bottomSeries: [
RSISeries(candles: candles),
MACDSeries(candles: candles),
],
)XAxisWrapper ← zoom/scroll, data management
└── GestureManager ← pan, zoom, tap
└── Chart ← visualization coordinator
├── MainChart ← candles, overlays, drawings, crosshair
└── BottomCharts ← RSI, MACD, and other independent-axis indicators
See doc/how_chart_lib_works.md for a detailed technical walkthrough.
This repository uses Melos to manage the monorepo.
# Install dependencies across all packages
dart pub get
# Analyze all packages
flutter analyze --no-fatal-infos
# Format code
dart format .
# Run tests
flutter test
# Run code generation (JSON serialization)
dart run build_runner build --delete-conflicting-outputscd packages/acme_chart/example
flutter runThe chart ships with ChartDefaultDarkTheme and ChartDefaultLightTheme, which switch automatically based on Theme.of(context).brightness. Override specific tokens by extending either class:
class MyChartTheme extends ChartDefaultDarkTheme {
@override
Color get backgroundColor => const Color(0xFF1A1A2E);
}See CONTRIBUTING for code style, commit format, and review checklist.
- Follow Conventional Commits for PR titles
- Run
flutter analyzeandflutter testbefore submitting - Add dartdoc comments to all public APIs
MIT © 2026 Acme Software LLC
