The Uno Platform team has announced the release of version 5.6, bringing substantial improvements in performance, productivity, and cross-platform development capabilities. Among the key updates are significant enhancements to Hot Reload, expanded app packaging support, and notable memory and runtime optimizations.
One of the most significant advancements in this release is the improvement of Hot Reload, particularly for mobile platforms such as iOS, Android, and Catalyst. Full XAML and C# support for Hot Reload is now available for these platforms across all integrated development environments (IDEs). Visual Studio for Windows has also been updated to include Hot Reload with the debugger for iOS and Android.
Additionally, a new C# compiler feature allows for expanded support of lambda modifications, reducing the need for app restarts or code rollbacks. The release reports that the enhancements to Hot Reload are designed to improve stability, with the goal of providing a more consistent experience across supported platforms.
The performance improvements in Uno Platform 5.6 are another highlight of the release. As reported, performance improvements in WebAssembly AOT (Ahead of Time) compilation scenarios can lead to up to a 10x increase in execution speed, contributing to more efficient application performance.
As stated, users can also expect a 2.5x improvement in visual state creation and memory optimizations. These changes result in leaner, faster apps, with key scenarios showing up to a 2.5x performance boost. For stated example, the DataGrid sample in Uno Gallery now loads nearly three times faster than in the previous release, Uno 5.5.
In terms of app packaging, Uno Platform has expanded its support for macOS, including the addition of .pkg and .dmg formats, as well as code signing and notarization for publishing on the App Store. The update also introduces Snap package creation in destructive mode, which is ideal for continuous integration (CI) environments. The updates, as stated, include expanded packaging support for macOS and other platforms, designed to reduce the steps involved in creating executables for various environments.
(Source: Uno Platform Blog)
Further performance optimizations have been made, including improvements to WebAssembly AOT updates, which address a specific slowdown issue caused by certain method configurations in the AOT compiler. This fix eliminates the fallback to the interpreter, which as reported previously caused significant performance degradation. Additionally, the refactoring of Visual State creation and JavaScript interactions has reduced the time taken to apply animation frame changes, contributing to overall performance gains.
Uno Platform 5.6 also includes a range of memory and resource optimizations. The Key not found cache strategy for resource resolution, borrowed from WinUI, improves the performance of large UI trees by reducing the number of deep searches in nested dictionaries. Other memory updates include the lazy creation of ResourceDictionary instances for controls, saving valuable memory space. Automatic resource file trimming further reduces the size of Uno assemblies, with the largest assembly shrinking by 16% in empty apps.
Additional updates in this release include touch input support for Skia+Desktop on X11 and the introduction of .NET 9.0 as the default option in the dotnet new template and solution wizard.
For interested readers, the full release changelog for this version is available on GitHub for exploring all the new features, fixes, and optimizations.