The latest release of the Uno Platform cross-platform user interface (UI), version 3.8, brings several new additions to the platform. These include WinUI controls and layouts like CalendarDatePicker and CalendarView controls, Grid controls, 2x performance, new Linux scenario and more. With this release, Uno is approaching one step closer to the #WinUIEverywhere vision."
Two of the most requested UI controls which the community asked for were CalendarDataPicker and CalendarView. With the usage of touch, mouse or keyboard input, date picker provides a standardized way to pick the date value, and with this release, developers can implement date functionalities inside of their app. Uno Platform provides the same control for Web, Windows, Linux, macOS, iOS and Android, and the control can have the three standard themes, such as Material, Fluent or Cupertino look. Both of the controls can be seen in the Uno Playground or inside of Uno Gallery.
Performance improvements in the 3.8 release were accomplished by the changes with DependencyObject
and UI Elements Creation. The DependencyObject
is the core of WinUI
, improvements and optimizations made a global impact on the application performance. The latest changes were aimed towards the DependencyProperty
instances and their default values, and strategy on how default values will be computed on demand.
Faster UI creation was the result of another significant performance improvement, from the change which was made to the way objects are initialized.
Some control templates have very large definitions with multiple groups and dozens of states, some of which are used in edge cases (e.g. Drag and Drop in a ListViewItem). Originally in Uno, those large object graphs were created on object initialization. Now, those object graphs are created on-demand, and only if a state is about to be used.
The new Uno Platform grid brings the improved performance by the 2x; previous Grid control implementation was replaced with the original WinUI Grid implementation. This replacement led to closing a lot of the issue related to behaviour deviations for apps running on the Windows OS.
The Uno Platform 3.8 release removes the need for installing an X Server because the support for Linux FrameBuffer and libinput
for the touch, mouse, and keyboard is added. It is important to highlight that it also comes with additional restrictions for now, such as TextBox. The current implementation relies on Gtk. If there is a need for text input, the on-screen keyboard needs to be implemented manually.
The Uno Platform also includes the WebAssembly AOT Windows Support and improved debugger support, support for UniformGridLayout, a couple of Gtk and WPF features and about 100 various bug fixes. A more detailed release note is available on the Uno Platform website and GitHub release changelog.