Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
d869e41
Replace the old with a more sleek and flexible code architecture
AppPear May 22, 2020
5cd5858
Added a first implementation of BarChart and LineChart also introduce…
AppPear May 24, 2020
a2d75dc
Write unit tests for CGPoint+Extension.swift (#100)
AdrianBinDC May 25, 2020
aa91264
Add PieChart + multicolor (#98)
satan87 May 25, 2020
b5beab5
removed .rotate for foreGroundColor
AppPear May 25, 2020
99b952f
Restore rotating index for multicolor (#102)
satan87 May 26, 2020
4963ec5
Write unit tests for Color+Extension.swift (#101)
AdrianBinDC May 26, 2020
f2866ae
Syntax corrections (#105)
satan87 May 28, 2020
0caebce
added mac os as a build target
AppPear May 28, 2020
d64d0e9
Bug Fix: Bar Chart with [0] crashed (#110)
satan87 May 30, 2020
f0eea58
Add CardView and CardLabel (#111)
AppPear May 30, 2020
dff16e8
Creating a data structure which propagets changes in data to the char…
AppPear Jun 21, 2020
57ac969
Added ChartLabel interaction
AppPear Jun 28, 2020
c46902d
Refactor Chart base (#143)
AppPear Jul 25, 2020
3265d3e
Add public modifier to ChartColors and add showShadow property
AppPear Jul 25, 2020
7fb2a00
Fix cornerMasking on card view when no shadow is set
AppPear Jul 29, 2020
2ef73c8
Dark/Light mode fixes (#148)
sagar5534 Jul 31, 2020
ed01f53
recalculate geometry if orientation has changed (#156)
danwood Aug 24, 2020
51db5a0
Issue 99 documentation (#159)
danwood Aug 24, 2020
8ee353c
Activity-type Rings charts (#161)
danwood Aug 24, 2020
9210d01
V2 beta 2 changes (#150)
AppPear Aug 24, 2020
84578d2
Add a public init() to RingsChart
AppPear Aug 24, 2020
7861bbc
feat(core): refactoring chart dispalying (#191)
AppPear Jun 9, 2021
caa75ec
feat: add linechart interaction point (#202)
AppPear Aug 11, 2021
bd29afc
fix: BarChartCellShape to handle negative numbers correctly (#250)
AppPear Sep 3, 2022
d7e9802
fix: remove UIColors which caused CI build errors (#251)
AppPear Sep 3, 2022
ebaaf81
feat: new protocol for chained functions, and added support for expli…
AppPear Oct 24, 2022
7fd5b18
Feat/new protocol and range (#255)
AppPear Nov 26, 2022
7140b8b
feat: add animation toggle interface (#256)
AppPear Nov 26, 2022
0879fb2
Refactor composable API and unify x-axis alignment
AppPear Mar 1, 2026
ffddd1f
Ignore Xcode workspace user data for showcase app
AppPear Mar 1, 2026
688ddaf
Improve dark mode defaults and showcase styling
AppPear Mar 1, 2026
7c63009
Add line chart drag interaction and showcase card
AppPear Mar 1, 2026
f1897fa
Add legend-driven series visibility controls
AppPear Mar 1, 2026
e91c2b9
Add streaming data source with windowed auto-scroll
AppPear Mar 1, 2026
0724f18
Add auto axis ticks with collision handling and rotation
AppPear Mar 1, 2026
28f4a50
Improve accessibility metadata and add high-contrast presets
AppPear Mar 1, 2026
609a392
feat: add chart performance mode with line downsampling
AppPear Mar 1, 2026
ca55ba0
feat: add callback-based chart selection events
AppPear Mar 1, 2026
55d3a6c
feat: add tab-based showcase app with dynamic data lab
AppPear Mar 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions .github/workflows/swift.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Swift

on:
push:
branches: [ master, new-version ]
pull_request:

jobs:
build-and-test:
runs-on: macos-latest

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Select Xcode
run: sudo xcode-select -s /Applications/Xcode.app

- name: Build
run: swift build

- name: Test
run: swift test

- name: Build Showcase App
run: |
cd Examples/SwiftUIChartsShowcase
xcodebuild \
-project SwiftUIChartsShowcase.xcodeproj \
-scheme SwiftUIChartsShowcase \
-sdk iphonesimulator \
-destination "generic/platform=iOS Simulator" \
CODE_SIGNING_ALLOWED=NO \
build
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,5 @@
/.build
/Packages
/*.xcodeproj
**/*.xcodeproj/project.xcworkspace/xcuserdata/
**/*.xcworkspace/xcuserdata/
64 changes: 64 additions & 0 deletions .swiftlint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
disabled_rules:
- explicit_acl
- trailing_whitespace
- force_cast
- unused_closure_parameter
- multiple_closures_with_trailing_closure
opt_in_rules:
- anyobject_protocol
- array_init
- attributes
- collection_alignment
- colon
- conditional_returns_on_newline
- convenience_type
- empty_count
- empty_string
- empty_collection_literal
- enum_case_associated_values_count
- function_default_parameter_at_end
- fatal_error_message
- file_name
- first_where
- modifier_order
- toggle_bool
- unused_private_declaration
- yoda_condition
excluded:
- Carthage
- Pods
- SwiftLint/Common/3rdPartyLib
identifier_name:
excluded:
- a
- b
- c
- i
- id
- t
- to
- x
- y
line_length:
warning: 150
error: 200
ignores_function_declarations: true
ignores_comments: true
ignores_urls: true
function_body_length:
warning: 300
error: 500
function_parameter_count:
warning: 6
error: 8
type_body_length:
warning: 300
error: 400
file_length:
warning: 500
error: 1200
ignore_comment_only_lines: true
cyclomatic_complexity:
warning: 15
error: 21
reporter: "xcode"
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>SchemeUserState</key>
<dict>
<key>SwiftUICharts.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>2</integer>
</dict>
</dict>
</dict>
</plist>
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Bucket
uuid = "91E23D30-CB6C-44DA-BEFC-9D39A1DA2242"
type = "1"
version = "2.0">
</Bucket>
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,20 @@
<key>SwiftUICharts.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>1</integer>
<integer>0</integer>
</dict>
</dict>
<key>SuppressBuildableAutocreation</key>
<dict>
<key>SwiftUICharts</key>
<dict>
<key>primary</key>
<true/>
</dict>
<key>SwiftUIChartsTests</key>
<dict>
<key>primary</key>
<true/>
</dict>
</dict>
</dict>
Expand Down
28 changes: 28 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Changelog

## 2.0.0-beta.9

### Added

- Full SwiftUI-idiomatic modifier API:
- `chartData`, `chartXRange`, `chartYRange`
- `chartGridLines`, `chartGridStroke`, `chartGridBaseline`
- `chartXAxisLabels`, `chartYAxisLabels`, `chartAxisFont`, `chartAxisColor`
- `chartLineWidth`, `chartLineBackground`, `chartLineMarks`, `chartLineStyle`, `chartLineAnimation`
- `chartInteractionValue`
- Immutable chart configuration structs and environment-key-based composition.
- Updated docs/examples and generated showcase app.

### Changed

- Major clean break from mutating chain APIs.
- Chart style/data/range/axis/grid/line configs are now modifier-driven and value-based.

### Fixed

- Removed required `@EnvironmentObject` interaction dependency for basic chart rendering paths.
- Existing regression and smoke tests remain green after API shift.

### Migration

- See `MIGRATION.md` for full old-to-new mapping.
18 changes: 18 additions & 0 deletions Examples/SwiftUIChartsShowcase/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# SwiftUICharts Showcase App

This iOS app demonstrates the current composable API features of `SwiftUICharts`:

- Line chart with marks, ranges, style, background fill, and animation
- Grid and axis labels
- Multiple overlaid line charts
- Mixed bar + line chart in one frame
- Interactive bar chart with shared `ChartValue` + `ChartLabel`
- Pie and rings charts
- Card-based composition with `CardView`

## Open in Xcode

1. `cd Examples/SwiftUIChartsShowcase`
2. `xcodegen generate`
3. Open `SwiftUIChartsShowcase.xcodeproj`
4. Run the `SwiftUIChartsShowcase` scheme on an iOS simulator
Loading