Build Mobile, Desktop and WebAssembly apps with C# and XAML. Today. Open source and professionally supported.
Uno Platform 4.4 is our 4th release in 2022, keeping us on a once-in-six-weeks rapid release schedule we aim for. The release packs numerous UI and performance improvements across all target platforms. First, on the UI side you’ll be able to produce beautiful fluid animations on .NET Android, .NET iOS and Skia-based targets, as well as increase high-fidelity renderings of all your texts on Skia-based targets. Second, on the performance side we are including support for the most recent WebAssembly advances available in .NET 7 – Wasm Threading and Exception Handling. Lastly, we also enabled new input scenarios via GamePad API support and improved the default project templates. In total we have implemented and resolved over 90 new feature requests and issues.
View the full announcement in our blog post.
Some of Highlights:
ProgressRing
on all Skia targets and .NET 6 mobile targets) (@jeromelaban)dotnet new unoapp
now uses .NET 6 and WinAppSDK (@jeromelaban)As always, thanks to our contributors:
You'll find below the full change log.
Color
to CGColor
b9f8051Subviews
getter inside Dispose
eff8fd7GRGlInterface.Create
to determine OpenGL availability 503d60buserSpaceScaleFactor
f2b76ccUno 4.3.8 is a service release for Uno 4.3.
Full Changelog: https://github.com/unoplatform/uno/compare/4.3.6...4.3.8
Uno Platform 4.3 is here! The focus of this release was on enhancing our Figma plugin which generates your app XAML directly from Figma designs, Uno.Themes Material v3 update, as well as advancing Uno Extensions to help bootstrap your apps faster.
See our blog post to get all the details!
You'll also find updates for:
MarkupExtension
NetworkInformation
API support on Skia (@MartinZikmund)BatteryReport
and AggregateBattery
(Thanks @pkar70!)Read below for the full change log.
IndexOutOfRangeException
on macOS de70392Remove LoadActions a8f2aec
skia: Reuse surfaces/bitmaps and reduce native calls f8efae7
fix!: Launch arguments should be separated by space 19ef842
As of last week’s release of .NET 6 Mobile RC1, Uno Platform is now following the updates to ensure that you have access to the latest features provided by the .NET runtime.
You can read the full post here.
As per Microsoft’s announcement, the .NET 6 Mobile APIs are now considered stable for iOS, Android, and Mac Catalyst. This enables applications and libraries to be developed without having to deal with any breaking changes in future .NET Mobile releases. As Uno Platform takes a dependency on dotnet runtime, this is important as we can stabilize our own support for iOS, Android and mac Catalyst targets.
Since our previous release about six weeks ago, we also made a batch of changes to fix the support for localization of iOS, macOS and Catalyst apps, based on the new behaviors of .NET 6. In total there were over 190 new features and fixes completed, around Geolocation, focus and keyboard management, Android/Skia/WebAssembly performance, and more. For those who like stats – that’s about 6 closed PRs per business day; we are definitely picking up velocity even more.
As always, to upgrade to the latest bits and use .NET 6 Uno Platform app templates, you’ll need to use uno-check.
You can find up-to-date information about uno-check in our docs.
To install Uno-check:
dotnet tool install -g uno.check
To update Uno-check if you had it installed already
dotnet tool update -g uno.check
You can then run it with:
uno-check --pre
Important note: If you were already using Uno 4.1.x, had run uno-check and were using VS 17.2 preview 3 or earlier, upgrading to 17.2 Preview 4 or later will cause mobile workloads to become desynchronized. To fix your environment, you’ll need to run the following command:
dotnet workload install ios android maccatalyst macos --from-rollback-file https://aka.ms/dotnet/maui/rc.1.json --source https://aka.ms/dotnet6/nuget/index.json --source https://api.nuget.org/v3/index.json
We'd also like to thank the community contributors for this release:
FileOpenPicker
mime types, DisplayInformation
and Geolocator
updates (by @pkar70)PercentFormatter
, PermilleFormatter
, DecimalFormatter
(by @MohammadHadi2031)MonoAndroidAssetsPrefix
to use Assets from shared project eb5d0aa.GetParent()
in an element while it's being finalized. fb10dc8The .NET team has been steadily releasing a set of updates to the .NET 6 Mobile previews. Last week's update was Preview 14, which came at just about the same time as Uno Platform 4.1 release. Following .NET 6 mobile Preview 14, we’re publishing the Uno Platform 4.1.9 service update.
This update includes a new set of binary breaking changes added in .NET 6 Mobile Preview 14, which requires the use of Visual Studio 17.2 Preview 2. If you update to Preview 2, you will need to be on Uno Platform 4.1.9 or later.
To use this new preview in Uno Platform projects, you’ll need a few steps:
Install the latest uno-check preview
dotnet tool install -g uno.check --version 1.2.0-dev.10
Or update to the latest uno-check preview
dotnet tool update -g uno.check --version 1.2.0-dev.10
Then run the following:
uno-check --pre
If you’re building on a mac, either directly or through VS for Windows, you’ll need to run uno-check
on the mac as well.
Make sure that your Visual Studio 2022 Uno Platform extensions are updated to 4.1.9 (it should be automatically updated)
Update your nuget packages to Uno.UI.* 4.1.9 or create a new project from the templates.
Note that if you intend to build for iOS, Xcode 13.3 is required and that this version of requires macOS Monterey.
It has been just over 3 months since our 4.0 release, and we’ve used that time to focus on performance as well as bringing the latest .NET 6 and even .NET 7 innovation to Uno Platform. By simply updating your application to the newest bits you will notice a significant boost to your app performance.
This release packs over 200 new feature requests, bugs, and issues you raised. We welcomed a few great contributions from our community which is now over 210 contributors strong! Thanks for all you bring to Uno Platform.
For more information about the release, read our blog post.
The current support for .NET 6 Mobile Preview 13 requires VS 2022 17.2 Preview 1 or later, 17.0.x and 17.1.x are not supported, and naturally Uno Platform will face the same constraints. It’s also worth noting that with .NET 6 mobile Preview 14, Microsoft will introduce an additional (and likely final) set of binary breaking changes, and we’ll publish an update to Uno nuget package to align with those changes.
Once you have 17.2 Preview 1 or later installed, use uno-check --preview
to setup your environment.
XamlRoot.RasterizationScale
(8ff10bf)FrameworkTemplatePool
to show the actual factory lambda (d59c30f)ArrayPool<T>
for Grid
's CellCacheStackVector
inner storage (1572d6a)ConditionalDisposable
pressure (3b4bf41)Uno.FoundationFeatureConfiguration.Runtime.RethrowNativeExceptions
config flag to false
.ObjCRuntime.NativeHandle
replacement of IntPtr
(3993e64)MemoryManager.AppMemoryUsageLevel
(afdc298)AdditionalFiles
containing binary files (645e2fd)All files
(ce6a94e)For a comprehensive description of the Uno 4.0 release, please read our blog post.
As we’re continuing the alignment with the WindowsAppSDK, we’ve made some binary and source breaking changes in the Uno.UI 4.0 NuGet packages.
Most of these changes are minor and are generally present to remove the use of uno-specific conditional code. You can find additional information on how to migrate to Uno 4.0 on our documentation site.
See the full change log below:
x:Name
hot reload 083fce5dotnet new unoapp
11d4b56Revert "fix: Disable rolsyn generators for below MSBuild 17, fallback to uno source generators" 2eac0a3
feat!: Align with WinUI 3 desktop apis bdb7295
fix!: Make some classes static to match UWP 53f6d4e
fix!: Generate property setters only when needed d9bdd5d
fix(combobox)!: Make ComboBox inherit from Selector 63f35c3
fix!: Make CoreDispatcher.Main internal to match UWP 5363a1f
fix!: Match FlyoutBase.Opened,Closed,Opening with UWP 1ab5f89
fix!: Fix resource dictionary path handling 30f21ac
fix!: Fix InputScope on Android to match UWP behavior e5fea16
Uno.UI.DualScreen
to Uno.UI.Foldable
Windows.UI.Text.FontWeights
and Windows.UI.Colors
are removed from Uno.WinUI
. Use Microsoft.UI.Text.FontWeights
and Microsoft.UI.Colors
instead.This change also moves to use the up-lifted Input APIs provided by the Microsoft.UI.Input namespace.
CoreDispatcher.Main
is no longer public.FlyoutBase.Opened
, FlyoutBase.Closed
, and FlyoutBase.Opening
signature with UWP.Uno Platform's 3.11 release ships 160+ features and bug fixes and adds support for .NET 6 RTM with all related improvements.
As Microsoft had announced the delay for .NET 6 support for Android and iOS, we've re-introduced Xamarin-based templates for Visual Studio 2022. Additionally, the support for preview .NET 6 Android and iOS has now been moved to 17.1 Preview 1.
In Visual Studio 2022, you'll find now two templates:
You can setup your environment with Uno.Check
1.0.2 for Windows, macOS and Linux, which you can install as follows:
dotnet tool install -g uno.check
Then run:
uno-check
Here's a summary of the features for this release:
NumeralSystemTranslator
for Arab Numeral SystemFileSavePicker
for GtkRadioMenuFlyoutItem
IncrementNumberRounder
and SignificantDigitsNumberRounder
GetPeerRadioAsync
As always, many thanks to our contributors:
GetPeerRadioAsync
You'll find below the full change log for this release.
This is a service update for the 3.10 release, with some changes and bug fixes for .NET 6 support and Visual Studio.
We continue to evolve Uno Platform in lockstep with the latest Microsoft developer platforms and tooling. Our 3.10 release supports .NET 6 RC1, latest developments in WinUI.
We are following developments in .NET 6 and Visual Studio 2022 until their general availability and look forward to bringing to you all the productivity, performance and stability benefits this latest wave of innovation from Microsoft is enabling for all of us. In addition, we closed over 150 new features and issues requested by our community and clients, as well as added 30+ samples to our documentation.
As always, thanks to our community contributors:
You can view the full blog post for this release here.
MinYear
and MaxYear
are still used for that since they are already of type DateTimeOffset
. 33ffc12Activity
instances tracking fbe91b5GetHashCode
implementation of NamedTypeSymbolStringComparer
27cd5f8VisualState.Setters
are now applied after VisualTransition.Storyboard