Pre loader

SciChart iOS with Metal /Android / Xamarin v2.5 released!

SciChart iOS with Metal /Android / Xamarin v2.5 released!

What’s New in SciChart iOS /Android /Xamarin v 2.5?

There is a large number of improvements and bug fixes made in SciChart iOS/ Android / Xamarin v2.5. It is recommended for all users of SciChart v2.2 to update to the latest version! Please see more information below.

New Features:
  • Metal Support for iOS Charts

SciChart iOS and Xamarin.iOS is now the first hardware-accelerated iOS Chart Control to support the Metal graphics API by Apple, which will replace OpenGL ES in future versions of iOS. By default, our charts render using OpenGL ES, but you can switch to Metal with the following line of code:

// in Swift:
surface.renderSurface = SCIMetalRenderSurface(frame: surface.bounds)

// in Objective-C:
self.surface.renderSurface = [[SCIMetalRenderSurface alloc] initWithFrame:self.surface.bounds];

//in Xamarin:
Surface.RenderSurface = new SCIMetalRenderSurface(Surface.Bounds);

Please note this code should be called after initialization of SCIChartSurface object, before creating any axis, series, or styles.

Also, it is advisable to detect if the current iOS version and the current device has the full support of all the Metal features used in SCIChart using the code below:

// in Swift
if SCIChartSurface.isMetalSupported {
   surface.renderSurface = SCIMetalRenderSurface(frame: surface.bounds)

// in Objective-C
if (SCIChartSurface.isMetalSupported) {
   self.surface.renderSurface = [[SCIMetalRenderSurface alloc] initWithFrame:self.surface.bounds];

//in Xamarin
if (SCIChartSurfaceView.IsMetalSupported) {
   Surface.RenderSurface = new SCIMetalRenderSurface(Surface.Bounds);

This will ensure compatibility on older phones. (Link to Documentation).

We would recommend testing on multiple devices before deploying any apps to the App Store with the new Metal render surface. The OpenGL surface is fundamentally the same and considered the best choice for production apps at this time. Finally, we would really appreciate your feedback on the new Metal renderer.

  • New iOS and Android Documentation

The documentation for iOS Charts and Android Charts now has a new stylish theme, so it is easier and more pleasant to read. We have also taken care of making it easier to find just what you need via Google using Title tags and structured data. It is responsive and works great on all devices including tablets and mobile. There have been many small corrections and improvements made to the documentation and there is more to come!

Bug Fixes for iOS:
  1. Updated: bindings of SCIMetalRenderSurface to have a proper constructor
  2. Fixed: append and FIFO test cases for SciChart
  3. Fixed: memory leak on OpenGLRenderSurface deallocation Made SCIChartSurfaceViewBase.renderSurfafe property strong to avoid warning
  4. Added: allowing to draw outside of the main scene/end scene sequence + create the regular polygon texture once they are required + comment on the pre-creation;
  5. Fixed yellow triangles in point markers example: new drawing command for raw triangles
  6. Fixed: errata in swift example for scatter series
  7. Fixed: global angle for AquireRegularPolygonSprite
  8. Fixed: brush initialization
  9. Fixed: styling/theming examples
  10. Fixed: Multi-stack chart: use a projection matrix that doesn’t clip in screen space; gradient texture areaways horizontal ( width x 1 ); gradient texture need clamp sampler; approximate the output to match OpenGL by modulating the alpha of the gradient colors.
  11. Fixed: columns don’t appear in swift examples due to long* conversion to SCIGenericType
  12. Fixed SWIFT: heatmap chart example
  13. Fixed for Metal: crash with logarithmic axis where there were no major ticks
  14. Fixed: heatmap red spots issue
  15. Fix for Metal: broken line colors ( fade should be on alpha )
  16. Fixed for Metal: gaps between lines, new metal shaders, also AA lines should only be fading with Alpha on its edges, this way we can evade the 1.5 hackexp fixes for lines in metal
  17. Fixed for Metal: spline line examples
  18. Fixed for Metal: setting wrong screen size to global shader content
  19. Fixed: the multi-surface example, by making sure the correct width and height are passed down
  20. Fixed for Metal: ellipses example crash
  21. Fixed: black screen while app in the background
  22. Added display link to metalRenderSurface to bring back animations
  23. Removed obsolete methods on renderSurface Metal
  24. Multi sampling 4x enabled and 2x multi sampling
  25. Fixed for Metal: drawing of grid-linesbands with properly savingrestoring matrix state
  26. Fixed: SetDrawingArea command
  27. Fixed for Metal:  errata in SetClipRct and updated Translate code
  28. Fixed for Metal: scaling for lines
  29. Fixed: memory leak in HeatMap chart examples
  30. Fix for Metal: lines thickness to match with OpenGL
  31. Fixed: black bar at the bottom (iPhone X)
  32. Fixed for Metal: Colormap
  33. SCIOS-792: fixed SCICustomAnnotation can’t be selected; Also improved moving it and scaling using available anchor points
  34. SCIOS-791: fixed PieDonut series segmentSpacing is ignored
  35. Fixed for Metal: HeatMap Example
  36. Fixed for Metal: Using Point Marker example
  37. Updated forMetal:  Xamarin.iOS bindings to work with Metal integration
  38. Added: new example that shows how to leave rollover on-screen
  39. Fixed: incorrect type of RenderSurface interface
  40. Fixed: Custom Legend Placement
  41. Fixed:  updating renderableSeriesAreaBorder / renderableSeriesAreaFill styles on SCIChartSurface
  42. Fixed: incorrect Call of formatXCursorValue
  43. SCIOS-609: fixed making one stacked in the group invisible makes the whole group invisible
  44. SCIOS-712: fixed cursor modifier shouldn’t show labels on hidden axes
  45. SCIOS-711: fixed ZoomPanModifier shouldn’t trigger inertia if velocity is very low (very gentle swipe)
  46. Fixed and enabled displaying of ARC -related warnings
  47. Fixed: crash on “show source code” feature in example demo
  48. Fixed: Tooltip on RolloverModifier appear outside the Chart area
  49. Improved: SCIRolloverModifier layout to fit chart bounds whenever it’s possible
  50. Updated: pen style in Xamarin.iOS
  51. Added: missing ctor which isn’t inherited from protocol in Xamarin.iOS
  52. Updated: heatmap examples in Xamarin.iOS
Bug Fixes for Android: 
  1. SC_DROID-654: extended need to draw check in AxisTitleRendererComponent to cover the case when axis title is an empty string;
  2. SC_DROID-653: fixed incorrect values displayed by axis tooltips in CursorModifier when using custom layout axis layout such as vertically stacked YAxes;
  3. SC_DROID-652: added handling of the vertical chart for Horizontal/VerticalLineAnnotation;
  4. Fixed: incorrect work of AnnotationCreationModifier when the chart is vertical
  5. SC_DROID-649: replaced invalidateElement() on invalidateLayout() when modifying series collection because series affect layout of pie/donut chart
  6. SC_DROID-650: modified rendering of pie and donut charts – added code which splits arc into two parts to ensure that it will be rendered;
  7. Fixed missing jar name in path to support-annotations; updated to Android 27; updated instructions;
  8. Fixed incorrect parameter in scroll() implementation for axis
  9. SC_DROID-612: fixed incorrect hit test results if xAxis has flipped coordinates – added isCoordinatesSortedAscending() flag for render pass data which is used for findIndex() call with xCoordinates;
  10. Fixed: wrong ColumnPaletteProvider, when colors changed during scrolling of chart;
  11. SC_DROID-607: updated AxisTitleRendererComponent to correctly handle RTL title;
  12. SC_DROID-599: changed LazyGLTexture which should prevent possible NullPointerException in case of any race conditions
  13. SC_DROID-598: added notification about changes of axis layout when settings axis title orientation and placement;
  14. SC_DROID-501: refactored AxisTickLabelsRendererComponent to correctly render multiline tick labels;
  15. Fixed: issue with aapt2-proto library when building a project on new PC where there is no cached version of the library – reordered repositories which are used for downloading dependencies;
  16. Fixed Tooltip on RolloverModifier appear outside the Chart area
  17. SC_DROID-596: improved layout of rollover tooltip to prevent clipping of tooltip at the bottom if there is enough space to place it a bit higher;
  18. SC_DROID-596: refactored VerticalSliceBehaviorBase to allow to override layout of rollover tooltips by creating custom SliceLayout.

Where to get iOS / Android / Xamarin v2.5?

You can get the SciChart iOS/Android/ Xamarin SDK v2.5 from the Downloads page. Source code customers can also get the latest from our Github repository as well as from Cocoapods for iOS, and Maven for Android. We also keep on delivering continuously for bug fixes, features and minor updates to the following package sources.

In addition, our example code is published to Github and is available to clone or download.

Download SciChart iOS/Android / Xamarin v 2.5

Best regards,
SciChart Team

By Julia Skorobogata | Mar 12, 2019
I contribute to the growth and development of SciChart, assisting my team with sales, marketing, and project management.

Leave a Reply

Try SciChart Today

Start a trial and discover why we are the choice
of demanding developers worldwide

Start TrialCase Studies