Report Generator - Historical
STATUS: SUPERSEDED (2025-12-17)
This document describes the original JavaScript/Satori approach that was replaced with pure Swift SVGReportRenderer. Kept for historical reference.
See 306-report for current implementation.
Original Approach (Deprecated)
The original implementation used:
- Satori - HTML/CSS to SVG conversion via WASM
- JavaScript - TypeScript bundled with Vite
- WKWebView - JS execution and font loading
This was replaced because:
- JS bundle added ~1MB to app size
- Font loading complexity (system fonts via base64)
- Unnecessary abstraction layer for simple SVG generation
Current Implementation
Pure Swift SVGReportRenderer:
- Direct SVG string generation
- Core Text for text measurement
- No external dependencies
- ~200 lines of Swift code
See 306-report for full documentation.
Related
- 306-report - Current ReportService documentation