
It’s a new year, and for mobile application developers, there’s now a new version of SciChart Mobile to download. This guide gives a quick-read summary of all the changes and upgrades we’ve made, including some exciting new examples. You can also view a complete history of our iOS chart library and Android chart library updates over on our iOS/Android changelog.
What’s New in v4.7 of SciChart’s iOS & Android Charts?
Discover all the bug fixes, new features and new examples that the SciChart team has been working on to improve the chart library experience for developers. If you’re still on version v4.6, or lower, we recommend making the switch to v4.7.
Find out what’s new and what you’re most interested in below:
Bug Fixes
Bugs are always the bain of any developer’s working day. That’s why we’re committed to resolving as many bugs as quickly and efficiently as possible. With an active team of in-house developers, it’s safe to say that we’ve been busy on this front, fixing around 20 SDK and example-related bugs reported by our customers and users. Take a look at the latest updates we’ve made.
SDK
- Fixed an issue where the drag modifier behaved incorrectly during chart interactions.
- Added the missing watermark image asset for macOS builds, resolving a crash in free license mode.
- Fixed modifier lines extending beyond chart bounds on macOS; modifier lines now respect chart height even when the chart is smaller than the screen.
- Resolved an issue in SCIRubberBandXyZoomModifier where zooming failed if the final touch point was near the axis on macOS.
- Eliminated duplicate tooltip modifiers in SwiftUI, ensuring only the active tooltip modifier is visible.
- Fixed the issue where tooltips for invisible series weren’t shown when sourceMode was set to AllSeries.
- Corrected RolloverModifier behavior to respect the configured sourceMode instead of displaying all data.
- Fixed incorrect placement of custom annotation grips in vertically oriented charts.
- Updated the project to ensure compatibility with the latest SDK version.
- Fixed a mouse selection offset issue in SCIRubberBandXyZoomModifier when multiple left-aligned axes were present.
- Fixed an issue where SCIRubberBandXyZoomModifier did not apply zoom correctly when constrained to the Y-axis.
- Resolved a macOS 26 (Tahoe) issue where tooltip modifiers failed to track mouse movement, preventing tooltip display.
- Fixed incorrect rubber band rectangle rendering for SCIRubberBandXyZoomModifier on macOS.
- Resolved an issue where annotations could not be dragged while in edit mode.
- Fixed tooltip visibility for hidden series when modifier sourceMode was set to All Series.
- Fixed LogBaseNumericLabelFormatter to handle correct exponent calculation.
Examples
- Fixed an issue where real-time chart updates were not functioning correctly on macOS.
- Resolved a UI bug in the macOS example app where duplicate toolbars interfered with navigation.
- Fixed a search filter issue in the iOS example app where results did not update based on the selected tab.
- Fixed a macOS example app issue where charts failed to reload due to duplicate toolbar item identifiers when navigating between charts.
New Features
Take a look at the new features with code samples that you can try straight away.
1. SCIChartOverview Support
Introduced SCIChartOverview, a mini-chart that provides an overview of the entire dataset and allows users to quickly navigate, pan, and select the visible range of the main chart.
SCIChartOverview *overviewChart = [SCIChartOverview new];
[self.view addSubview:overviewChart];
self.overviewChart.createOverviewChart(forParentSurface: self.surface)iOS Example Code | iOS Documentation | Android Example Code | Android Documentation
2. Axis Borders Support
Added support for displaying borders around chart axes.
axis.axisBorderStyle = SCIAxisBorderStyle(color: 0xFFAD3D8D, thickness: 2.0)Example: AxisBorderView iOS Example Code | AxisBorderView Android Example Code | iOS Documentation | Android Documentation
3. Include Axis API for Modifiers
Introduced an axis-specific API allowing modifiers to be applied to selected axes. Supported modifiers include Pinch, Pan, Axis Drag, and Zoom Extents.
// Exclude a specific axis from the pan zoom operation
pinchZoomModifier.includeXAxis(xAxis, isIncluded: false)
// Include a specific axis to the pan zoom operation
pinchZoomModifier.includeYAxis(yAxis, isIncluded: true)Example: Axis API for Modifiers iOS Code | Axis API for Modifiers Android Code
4. SCIAxisDragModifier Support
Implemented a unified SCIAxisDragModifier with directional support, replacing the separate SCIXAxisDragModifier and SCIYAxisDragModifier classes.
let axisDragModifier = SCIAxisDragModifier()
axisDragModifier.direction = .xDirection // X axisNew Examples
From custom Overview Chart configurations to axis border support, take a look at the latest examples we’ve added to the library to help make your chart building efforts run more smoothly.
1. Overview Chart
Demonstrates how to implement chart overview functionality with customizable configuration options.

2. Trade Marker
Illustrates how to display Buy/Sell trade markers as annotations, including price labels, on a stock chart.

View iOS ExampleiOS TradeMarker Code
3. Add Dynamic Annotation
Demonstrates the creation of dynamic annotations using multiple gesture types via a custom chart modifier.

View iOS ExampleView iOS Dynamic Annotation Code
4. Axis Borders Example
Highlights the use of axis border support in charts. Now you can set the style for your axis borders with the axis color and individual thickness for each side.

You can do this by using the AxisBorderStyle class and passing the color, antiAliasing, thickness to it.
val xAxis = NumericAxis(this)
xAxis.setBorderStyle(AxisBorderStyle(0xFF4FBEE6.toInt(), true, 3f))Another constructor allows you to set individual thickness for each side (top, left, bottom, right).
xAxis.setBorderStyle(AxisBorderStyle(0xFF4FBEE6.toInt(), true, 0f, 1f, 2f, 3f))View iOS Example View Android Example
5. Include Axis API
Demonstrates how to selectively include or exclude specific axes when applying chart interaction modifiers. You can control which axes a modifier affects using the includeAxis API. By default, all axes are included, so modifiers work on all axes unless you configure otherwise.

You can do this by using the includedXAxes, includedYAxes and includeAllAxes methods on the modifier, which provide methods to include or exclude specific axes.
val xAxis = NumericAxis(this)
val zoomPanModifier = ZoomPanModifier()
// below code excludes the provided axis
zoomPanModifier.includeXAxis(xAxis, false)For cursor and rollover modifiers, you can control which renderable series the modifier affects using the includeRenderableSeries() method.
val cursorModifier = CursorModifier()
val series = FastLineRenderableSeries()
// below code excludes the provided series
cursorModifier.includeRenderableSeries(series, false)View iOS Example View Android Example
6. TradeMarkerAnnotation Implementation

You can add trade markers (buy/sell arrows) to your charts using TradeMarkerAnnotation.
Create a TradeMarkerAnnotation using the constructor that takes the context, X-axis value (timestamp/index), Y-axis value (price), and an isBuy boolean indicating whether it’s a buy or sell marker:
val sellMarker = TradeMarkerAnnotation(context, x, y, false)
surface.getAnnotations().add(sellMarker)View Android ExampleView Android TradeMarkerAnnotation Code
Where to Find v4.7?
SciChart iOS/Android v4.7 is available by:
- Downloading the installer from our scichart.com/downloads page
- Using Install-Package or Update-Package from NuGet
- By cloning and compiling the examples source code on GitHub
- By cloning or downloading the SciChart source code on GitHub (source code customers only)
Visit Android GitHubVisit iOS GitHub
Let Us Know What You Think
Tell us what you think about our latest bug fixes, features, examples and improvements by contacting our team. Honest thoughts are welcome – we want to know what would make things even better for you when building high-performance charts using SciChart. If you have a specific question, you can also use our community forum, which is regularly updated by our team.
Related Posts

