AppPear/ChartView
65.7
Adequate · 30 September 2026
3.9k
lines of production code
Swift
primary language
2
measurements over time
What this system is
SwiftUICharts is a Swift Package Manager library that provides a composable, SwiftUI-native framework for rendering interactive data visualizations. It supports multiple chart types, including line, bar, pie, and activity rings, with features for real-time streaming data, performance optimization, and accessibility. The system is designed for iOS, macOS, and watchOS, offering a unified API for styling, interaction handling, and axis configuration.
How it got here
2019 — Swift Package Manager migration and compliance
5 changes.
The project transitioned to Swift Package Manager by adding workspace and scheme configurations, while upgrading to Swift 5.3 and expanding platform support. It also implemented Apple privacy manifest compliance and added comprehensive unit and smoke tests to ensure library stability and correct rendering.
2020–2026 — SwiftUI-native charting library
7 changes.
The project was rebuilt on a composable, value-based SwiftUI architecture, replacing the previous protocol-based system with a new foundation driven by environment and preference keys. This period saw the introduction of core chart components including LineChart, BarChart, PieChart, and RingsChart, each featuring interactive selection, accessibility support, and performance optimizations like downsampling. A showcase application was also added to demonstrate the library's capabilities, such as real-time streaming data and dynamic axis configuration.
Features
Add RingsChart for activity-style ring visualizations
Introduces a new RingsChart component that renders concentric activity rings, supporting multiple series with gradient fills, drop shadows, and interactive touch handling. Users can now display circular progress indicators with accessibility labels and selection events driven by drag gestures.
Sources/SwiftUICharts/Charts/RingsChart · high confidence
Added Swift Package Manager workspace configuration
The project now includes the standard Swift Package Manager workspace files (contents.xcworkspacedata and IDEWorkspaceChecks.plist). This enables developers to open the package directly in Xcode as a workspace, facilitating easier debugging, testing, and integration of the library within Xcode-based projects.
.swiftpm/xcode/package.xcworkspace · high confidence
Initial release of LineChart, PieChart, and BarChart components
This change introduces the first implementations of the LineChart, PieChart, and BarChart views, establishing the core rendering and interaction capabilities for the library. The LineChart supports curved or straight line styles, animated drawing, background gradients, and interactive point selection via drag gestures that publish selection events. The PieChart renders data as proportional slices with spring animations, touch interaction to highlight slices, and accessibility labels. Both chart types integrate with the existing environment-based configuration system (styles, series visibility, and selection handlers) and include preview providers for SwiftUI Canvas.
Sources/SwiftUICharts/Charts/LineChart · high confidence
Introduction of BarChart component with interactive selection and negative value support
This change introduces the BarChart view, a new SwiftUI component that renders bar charts using a composable structure (BarChart, BarChartRow, BarChartCell). Users can now visualize data series with support for negative values, which are rendered below the baseline. The component includes interactive features, allowing users to drag across the chart to select specific bars, which triggers selection events via a dispatcher. It also respects series visibility configurations and provides accessibility labels for each bar.
Sources/SwiftUICharts/Charts/BarChart · high confidence
New SwiftUICharts Showcase App for iOS
A new iOS example application, \SwiftUIChartsShowcase\, has been added to the Examples directory to demonstrate the library's composable API. The app features a tab-based interface with a main showcase view and a dynamic data lab. It illustrates various charting capabilities including line, bar, pie, and rings charts, along with advanced features such as auto-axis tick generation with collision handling, high-contrast accessibility presets, performance mode with line downsampling for large datasets, and interactive elements like drag selection callbacks and legend-driven series visibility controls.
Examples · high confidence
Behavioural changes
Added Apple privacy manifest and removed placeholder source file
The SwiftUICharts SDK now includes a PrivacyInfo.xcprivacy file declaring that it does not track users, collect data, or access restricted APIs, ensuring compliance with Apple's privacy requirements. Additionally, a placeholder source file containing a generic 'Hello, World!' struct has been removed from the distribution.
Sources/SwiftUICharts · high confidence
Added Xcode scheme configuration for SwiftUICharts
The project now includes an Xcode scheme management file that defines shared schemes for the main SwiftUICharts target and its associated tests, setting them as primary buildables and establishing their order hint. This configuration supports the switch to the Swift Package Manager by providing the necessary IDE-level build settings for the library and its test suite.
.swiftpm/xcode/xcuserdata/andrassamu.xcuserdatad · medium confidence
Chart rendering engine refactored to a composable, value-based architecture
The charting library has been rebuilt on a new SwiftUI-native foundation, replacing the previous protocol-based \ChartBase\ with a composable system driven by environment and preference keys. This change introduces a new \ChartData\ value model for managing data points and ranges, a \ChartAxisConfig\ for unified axis styling and label positioning, and a \ChartGridConfig\ for grid customization. Users gain access to new capabilities including a \ChartStreamingDataSource\ for real-time data with windowed auto-scroll, a \ChartDownsampler\ for performance optimization on large datasets, and a callback-based \ChartSelectionHandler\ for interaction events. The visual layer now uses a \CardView\ wrapper with configurable shadows and a \ChartLegend\ that allows users to toggle series visibility directly.
Sources/SwiftUICharts/Base · high confidence
Test coverage
Added unit and smoke tests for chart extensions, layout, and composable API
Added a comprehensive suite of tests for the SwiftUICharts library, including unit tests for array rotation logic, CGPoint step calculations, hex color parsing, and the chart selection dispatcher. Smoke tests verify that composable chart views (Bar, Pie, Rings, Line) render correctly with optional interaction values, shared chart values, and mixed series. Additional tests cover X-axis alignment and normalization logic, auto-tick and label rotation modifiers, high-contrast style presets, performance mode modifiers, and streaming data sources. Documentation integrity and migration guide tests ensure that example files, resources, and migration mappings for removed public types are present and correctly referenced.
Tests · high confidence
Dependencies
Swift 5.3 upgrade and expanded platform support
The package manifest has been updated to require Swift tools version 5.3, enabling the use of newer language features. Platform support is now explicitly defined for iOS 13, watchOS 6, and macOS 10.15, ensuring compatibility with these operating systems. Additionally, a privacy manifest file (PrivacyInfo.xcprivacy) is now included as a resource in the main target to comply with Apple's privacy requirements.
(dependencies) · high confidence
Housekeeping
Added Xcode scheme and breakpoint configuration files; Updated Xcode scheme configuration for SwiftUICharts.
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 66 → 66 (-0.3)
- Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 100 → 98 (-1.3)
- Architecture 100 → 99 (-1.0)
- Maturity 50 → 50 (+0.0)
- Readiness 57 → 60 (+3.1)
- Security 100 → 100 (+0.0)
Resolved (3)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Off-boarding risk: anonymized user #1
New (19)
- Ambiguous data input formats: The type accepts both a flat array of Y-values (implying X is index-based) and a tuple array of (X, Y) pairs, but the constructor signatures do not clearly distinguish intent or provide a unified abstraction for data binding.
- Coverage not measured — Swift suite
- Dependency hygiene PARTLY measured — SwiftPM pinning read, dependency currency NOT established
- Duplicated block (14–15 lines × 2) (Sources/SwiftUICharts/Base/Extensions/Path+QuadCurve.swift)
- Duplicated block (19 lines × 2) (Sources/SwiftUICharts/Charts/BarChart/BarChartRow.swift)
- Duplicated block (2–13 lines × 5) (Examples/SwiftUIChartsShowcase/SwiftUIChartsShowcaseApp/ShowcaseHomeView.swift)
- Duplicated block (2–6 lines × 3) (Sources/SwiftUICharts/Base/Extensions/Path+QuadCurve.swift)
- Duplicated block (5 lines × 2) (Examples/SwiftUIChartsShowcase/SwiftUIChartsShowcaseApp/ShowcaseHomeView.swift)
- Duplicated block (6 lines × 4) (Sources/SwiftUICharts/Base/Extensions/Path+QuadCurve.swift)
- Duplicated block (7 lines × 2) (Sources/SwiftUICharts/Base/Extensions/Path+QuadCurve.swift)
- Duplicated block (8 lines × 2) (Sources/SwiftUICharts/Base/Extensions/Path+QuadCurve.swift)
- Duplicated block (8 lines × 4) (Examples/SwiftUIChartsShowcase/SwiftUIChartsShowcaseApp/ShowcaseHomeView.swift)
- Duplicated block (8 lines × 4) (Sources/SwiftUICharts/Base/Extensions/Path+QuadCurve.swift)
- Duplicated block (9 lines × 2) (Examples/SwiftUIChartsShowcase/SwiftUIChartsShowcaseApp/ShowcaseHomeView.swift)
- Members sharing a duplicated core (4 members, 50+ identical tokens) (Examples/SwiftUIChartsShowcase/SwiftUIChartsShowcaseApp/ShowcaseHomeView.swift)
- Members sharing a duplicated core (4 members, 50+ identical tokens) (Sources/SwiftUICharts/Base/Extensions/Path+QuadCurve.swift)
- Members sharing a duplicated core (4 members, 50+ identical tokens) (Sources/SwiftUICharts/Base/Extensions/Path+QuadCurve.swift)
- Members sharing a duplicated core (5 members, 50+ identical tokens) (Examples/SwiftUIChartsShowcase/SwiftUIChartsShowcaseApp/ShowcaseHomeView.swift)
- Off-boarding risk: anonymized user #1
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
AppPear/ChartView was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 30 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit df0b2641132b916fafe81b0c899014c01c7f98e8 — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-cb25ca4feafa.