Table of Contents

Version 2.88.0

MAUI and Mac Catalyst release · Released May 22, 2022 · NuGet · GitHub Release

API changes · SkiaSharp API diff · HarfBuzzSharp 2.8.2

Highlights

SkiaSharp 2.88.0 is a major platform release centered on .NET 6 and .NET MAUI. It adds first-class MAUI views, brings Mac Catalyst and ASP.NET Blazor WebAssembly components into the supported matrix, reshapes native packaging into smaller asset packs, and includes a long tail of fixes across Uno, Linux, Android, and browser scenarios.

Breaking Changes

  • Native assets are now split into smaller packages — Most applications can keep referencing SkiaSharp as before, but custom deployment flows may need to account for the new NativeAssets package layout. (#1758)

New Features

Platform

  • .NET MAUI views and handlers — Adds the initial SKCanvasView and related view support for .NET MAUI, with follow-up alignment through the MAUI preview and RC cycle. (#1678)
  • Mac Catalyst support — Brings Mac Catalyst into the native and managed support matrix, including the right targets and packaging updates. (#1681, #1760, #1762)
  • ASP.NET Blazor WebAssembly components — Adds dedicated Blazor component support for browser-hosted rendering. (#1811)
  • Broader .NET 6 platform coverage — Adds net6.0-* target frameworks for bindings and keeps Xamarin.Forms and Uno scenarios moving forward on newer stacks. (#1707, #1774, #1873)

Packaging & Distribution

  • Smaller NativeAssets packages — Splits the shipping model into leaner platform packages for better download size and deployment flexibility. (#1758)
  • Symbols and diagnostics packages — Adds Windows native symbols and ships main PDB files in the package set. (#1797, #1781)

API Surface

  • Additional 2.88 APIs — Starts exposing new APIs for the 2.88 line beyond the large platform work. (#1828)

Bug Fixes

  • More reliable Linux loading — Probes libdl.so.2 before libdl.so to work better across distros. ❤️ @akoeplinger (#2010)
  • Blazor and MAUI view stability — Prevents an infinite loop in Blazor SKCanvasView and guards against a .NET MAUI null-reference edge case. ❤️ @JensKrumsieck (#1889), ❤️ @jsuarezruiz (#1734)
  • Safer Windows synchronization — Replaces a global lock with a critical section in HandleDictionary under Windows. ❤️ @toptensoftware (#1817)
  • Sharper packaging behavior — Keeps Android class libraries from carrying unnecessary .so payloads. ❤️ @jonathanpeppers (#1895)
  • Rendering correctness — Fixes how IgnorePixelScaling is applied in affected views. (#1804)

Platform Support

Platform What's New
🍎 Apple Mac Catalyst support and continued MAUI/Apple alignment
🪟 Windows Windows App SDK alignment, Uno 4.0 updates, safer handle synchronization
🤖 Android Cleaner class library packaging
🌐 WebAssembly Blazor components plus emscripten 2.0.23 support
📦 General Smaller NativeAssets packages and shipped symbols

Community Contributors ❤️

Contributor What They Did
@akoeplinger Improved Linux libdl probing
@jeromelaban Added emscripten 2.0.23 support and moved Uno forward to 4.0
@JensKrumsieck Fixed a Blazor SKCanvasView infinite loop
@jonathanpeppers Cleaned up Android .so packaging in class libraries
@jsuarezruiz Guarded MAUI SKCanvasView against a null-reference edge case
@toptensoftware Reworked Windows handle synchronization

Unreleased

Final stabilization built the fully stable package set and moved the MAUI integration to RC 4.


Preview 266 (May 11, 2022)

Updated to .NET MAUI RC 3 and improved Linux native loading behavior.

Full Changelog


Preview 256 (April 20, 2022)

Advanced the release train to .NET MAUI RC 2.

Full Changelog


Preview 254 (April 13, 2022)

Aligned with .NET MAUI RC 1 and refreshed the Apple build environment.

Full Changelog


Preview 232 (March 4, 2022)

Continued the MAUI Preview 14 rollout while refreshing supporting toolchains.

Full Changelog


Preview 209 (February 18, 2022)

Moved the release forward with .NET MAUI Preview 13 and a round of build reliability fixes.

Full Changelog


Preview 187 (January 27, 2022)

Updated to MAUI Preview 12 and cleaned up Android class library packaging.

Full Changelog


Preview 179 (December 16, 2021)

Brought the Uno support story forward to Uno 4.0.

Full Changelog


Preview 178 (December 15, 2021)

Fixed a Blazor render loop, improved Windows synchronization, and aligned with MAUI Preview 11.

Full Changelog


Preview 155 (October 28, 2021)

This preview mostly refreshed dependencies and supporting infrastructure.

Full Changelog


Preview 152 (October 14, 2021)

Added more of the new 2.88 APIs and cleaned up sample publishing.

Full Changelog


Preview 150 (October 11, 2021)

Added ASP.NET Blazor WebAssembly component support.

Full Changelog


Preview 145 (September 28, 2021)

Updated to a newer MAUI preview and started shipping native symbol packages.

Full Changelog


Preview 140 (September 14, 2021)

No pull requests were first shipped in this preview.

Full Changelog


Preview 139 (September 12, 2021)

Fixed IgnorePixelScaling behavior and aligned the release with newer Windows App SDK and MAUI builds.

Full Changelog


Preview 127 (August 20, 2021)

Updated HarfBuzz, added Xamarin.Forms support on netcoreapp3.1, and shipped main PDB files.

Full Changelog


Preview 120 (August 9, 2021)

Added Mac Catalyst support, split the NativeAssets packages, and updated WebAssembly support.

Full Changelog


Preview 61 (July 12, 2021)

Introduced the first .NET MAUI views and the initial net6.0-* target support.

Full Changelog