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:

  1. JS bundle added ~1MB to app size
  2. Font loading complexity (system fonts via base64)
  3. 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