A native SwiftUI charting library with built-in accessibility and localization for iOS, macOS, watchOS, and tvOS.
SwiftUICharts is a native charting library for SwiftUI that enables developers to create interactive and accessible data visualizations for Apple platforms. It solves the problem of building custom charts in SwiftUI by providing a declarative API, multiple chart types, and built-in support for accessibility and localization. The library is designed to integrate seamlessly with SwiftUI's modern development patterns.
iOS, macOS, watchOS, and tvOS developers using SwiftUI who need to embed interactive charts with native accessibility features in their applications.
Developers choose SwiftUICharts for its native SwiftUI API, cross-platform consistency, and built-in accessibility—eliminating the need to manually implement VoiceOver support or platform-specific chart code.
A charts / plotting library for SwiftUI. Works on macOS, iOS, watchOS, and tvOS and has accessibility features built in.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses declarative data models like LineChartData and SwiftUI view modifiers, making it feel like a natural extension of SwiftUI, as highlighted in the library's philosophy.
Includes comprehensive VoiceOver support with localization for chart descriptions and markers, reducing the manual work needed for accessible visualizations, detailed in the Accessibility section.
Works on iOS, macOS, watchOS, and tvOS with a single codebase, enabling developers to maintain chart consistency across all Apple platforms without platform-specific code.
Offers touch/pointer detection with configurable info boxes and legends via modifiers like .touchOverlay, allowing for rich user interactions out of the box.
Only supports basic chart types (line, bar, pie/doughnut), missing advanced options like scatter plots or area charts, which may require switching libraries for complex visualizations.
The README mentions a Version 3 in development, indicating the current version could have breaking changes or be less stable, posing a risk for production apps.
Requires workarounds like adding .id() modifiers for views to update correctly, as noted in the installation section, which can be non-intuitive and error-prone for developers.