A collection of Flutter packages for financial charting and technical analysis.
| Package | Description | Version |
|---|---|---|
acme_chart |
Financial charting library — candlestick/line charts, indicators, drawing tools | 1.0.0 |
acme_indicators |
Pure Dart technical analysis computations | 1.0.0 |
- 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
