jeromelaban
released this
28 Jan 22:04
·
8 commits
to release/stable/5.6
since this release
In Uno Platform 5.6, our first release of 2025, we’re doubling down on what matters most to you — productivity, performance, and seamless cross-platform development experiences. There are major advancements across the board, from faster Hot Reload and expanded app packaging support to significant runtime and memory optimizations.
- Hot Reload continues to evolve and lead the .NET ecosystem. As it is the foundation of Hot Design, our next-generation visual designer, nothing short of an amazing Hot Reload experience will satisfy us.
- App packaging is now even easier, with new support for
.pkg
and.dmg
formats, code signing, notarization, and destructive mode Snap package creation for CI environments. - Performance improvements across Uno Platform include up to 10x faster execution for Wasm AOT, more efficient visual states, and memory optimizations that make apps leaner and faster.
Take a look at our blog post for now details!
See below for the full change log.
Features
- Add Color resources to ResourcesExtractor (7d9a654)
- Add Microsoft.Windows.AppLifecycle to Sync generator (96ac958)
- Add missing contracts to ApiInformation (0fe8895)
- Add native embedding to netXX-desktop/macOS (66daa65)
- Add support for AppWindow.Show methods (c9305c4)
- Add XAML resources UPRI trimming (0dfd176)
- Allow selecting custom values on Selector (8b6a5d3)
- Allow simulating touch input in Samples app (2a243c9)
- hr: Add ability to remove root of a DataTemplate with HR without cnomua (545e109)
- hr: Remove deprecated XAML and partial reload HR modes (a46202a)
- Implement pattern/template grammar for DateTimeFormatter (c8c6a43)
- implement ShapeVisual.ViewBox (0a0c855)
- implement the X Input extension to support touch input, smooth scrolling, etc. (071570e)
- In app review on Android (760205a)
- InputPropertyAttribute (493ede4)
- Listen to trat changes on iOS 17+ (3cafa43)
- macOS: override ms-appx location when app is bundled (05f21e6)
- Microsoft.Windows.AppLifecycle contract (b4619da)
- Simulate preview key events for tests (61c80df)
- Uno.UI.GooglePlay (61041ae)
- Use SIMD to compage images in a test to accelerate builds. (f1883d1)
- Warn the user when native frame is used with WinUI Frame behavior (e7a0788)
Performance Improvements
- anim: Don't refresh triggers and transitions during parsing (ec3ab58)
- anim: Register only once to the JS animationframe callback (2b303b6)
- brush: Don't use reflection to invoke brush updates (679b4bf)
- Enable ResourceDictionary "not found" caching (6f696d4)
- limit JavaStringCache entries to deal with excessive GREF counts (deff175)
- optimize opacity filter allocations (91be36d)
- reduce SKPaint and SKPath allocations (9264d5e)
- wasm: Split methods containing try/catch/finally blocks (c4df6bf)
Bug Fixes
- add minimum API HttpRequestHeaderCollection to work (c781c95)
- Adjust [NotImplemented] on PasswordVault (0202aa8)
- Adjust build for macOS 15/14 for the removal of Xcode 16. (519a059)
- Adjust for outdated rc2 references (ba5b416)
- Adjust implicit package inclusion (aba082d)
- Adjust IsFocusable on Popup (228d4a1)
- Adjust support for InvariantCulture mode support (39931e8)
- Adjust tf reordering for VS 17.12 or later (5e6c681)
- Adjust tf reordering for VS 17.12 or later (d7f3733)
- Adjust the target SDK version of Samples app on Android (dc9da22)
- Adjust TreeHelper to correctly handle native elements (06e9137)
- align DepObjCol indexer behavior with winui (1c01de0)
- Allow closing ContentDIalog after button click cancellation (2aacc68)
- Allow properties to be multi-lines (5813d5b)
- Allow properties to be multi-lines (78fa7d7)
- Always activate window on Activate() (33ebe65)
- android: PointerRoutedEventArgs.GestureEventsAlreadyRaised was reset while bubbling events up (864e00f)
- android: Restore inheritance workaround for android (0222291)
- Apply x:Bind expressions in Resources (5529e7b)
- assets: Adjust project transitive output path (983b96d)
- Avoid duplicate slash in AssetsPathBuilder (e5db20c)
- Avoid handler leak on layout instance (f647e4c)
- Avoid MUX vs WUX type clashes (2143af3)
- Avoid subscribing to touch scroll events twice (546946c)
- change how we handle the keyboard (5b7c0fc)
- ci for macOS (d1ca282)
- codegen: markup-ext improper cast for nullable value-type dp (0ab2847)
- Correcly await async RunOnUIThread calls (7866edc)
- DeferLoadStrategy should work even if no visibility is set (6c198eb)
- Define the working directory for add-in discovery (922f095)
- Deprecated iOS
Launcher
methods (73c27f8) - Do not output PopupPanel from VisualTreeHelper (6f486df)
- Do not warn about target platform order for libraries (1c86455)
- Don't include OpenSans for libraries (77af90e)
- Don't include packages on release builds (3e1ea3a)
- Don't invoke ApplyTemplate for collapsed elements (f885175)
- Don't invoke weak event target if the target is a collected peer reference (789bf9c)
- Downgrade BuildTools (593f794)
- dragdrop: don't fire Drop if AcceptedOperation is None (6d1c6fb)
- dragdrop: fire DragEnter and DragOver when firing DragStarting (33ea5a7)
- dragging: when a child and a parent subscribe to dragging, only fire on the child (f3afc4b)
- droid: TabView header not showing (0e5f8fe)
- Enable AllowUnsafeBlocks for winappsdk (9e244aa)
- Ensure Custom NumberFormatter is applied in
NumberBox
validation (7a43317) - Ensure each test ends with non-keyboard input device (c60e172)
- Ensure element translation is applied after Loaded (db8bd3c)
- Ensure HttpRequestMessage.Headers are assigned when default ctor is used (b23b381)
- Fix HRI not being draggable (2c98967)
- Fix invalid code gen (361d014)
- Fix invalid code gen of top resource dictionnaries (275b16d)
- Fix invalid code gen when using markup extension in a style (aff3c8e)
- Fix lock contention in XAML generator during compilation (640ebba)
- Fix logging of add-in discovery (f453993)
- fix native element visibility (reset by clipping) (c297452)
- Fix regression in code gen (c3c48d2)
- Fix When_Window_Closed_Is_Handled on macOS/skia (0ea57fa)
- Fix x:Bind not applied properly (79ed849)
- Frame should throw on page exceptions (36fb076)
- GetCharacterIndexAtPoint throws if layout manager is null (97d9c7d)
- Grouped CollectionView enumeration (8144a16)
- Grouped CollectionView enumeration (f4fe4f0)
- hr: Always generate the Bindings class when HR is enabled (4ea7bce)
- hr: Avoid rude edit (beb33aa)
- hr: Disable partial reload on compatible targets (00f4a15)
- hr: Do not restore MSBuild properties in HR workspace (e15e967)
- hr: Fix invalid code gen for custom markup extensions (9613875)
- hr: Fix invalid gen for top level dic (55822b3)
- hr: Improve retry logic when using UpdateFile in case of NoChnages (f8d848b)
- hr: Restore udage of cnomua for resource dictionnaries (7a8536a)
- hr: Update HR conditions (f664ce4)
- hr: Use properties for subjects (4867046)
- image: clipping images on WASM was not working (f4ade32)
- Improve DateTimeFormatter template matching and mappings (484fac7)
- ios: negative margin clipped on device rotate (ca4a273)
- ios: negative margin clipped on device rotate (2a1c616)
- iOS: PersonPicture late binding (6944ff1)
- iOS: TabView Item selection when loading page (85c57eb)
- iOS: TabView Item selection when loading page (616315d)
- macos: add key modifiers to pointer event args (ff102bd)
- macOS: adjust scrollwheel speed for normal/PC mouses (1566858)
- macOS: Avoid an overflow which breaks drag-and-drop (d629518)
- macos: Bring window to top when activated (5bae5b2)
- macos: Bring window to top when activated (6f1da0e)
- macOS: native clip on the provided path/svg (026226b)
- macOS: OnWindowClosing should not reset cancel (aa41d5e)
- macOS: Prevent pointer over event originating from other window (dcfe4d9)
- macOS: Prevent pointer over event originating from other window (c1b2800)
- Make AutomationProperties bindable (23a5743)
- Make ImageStretch_None wait for images to actually load (8e6894b)
- Make KeyboardHelper use async consistently (908025e)
- Make the Popup logical parent of Child (7d558a7)
- mofidying .ts files only should embed the newly generated .js files (20c2d6f)
- Move to jsimport for bbox (00f3ced)
- net9: Add linker directives (4595bcb)
- net9: Allow for builds to happen even if a RID is explicitly set (840a5a7)
- netstd: late template application is ignored (2293898)
- NRE on favorite button (6bee805)
- Observe specific trait on RootViewController (c496a06)
- parse floating point values in svg path (ab73de5)
- Path: add support for Path.Data being a PathGeometry with some figures having IsFilled = false (7e4982d)
- PopupRoot is a Canvas (8b15fb0)
- Prefer logical parent over visual for ResourceDictionary enumeration (5a56ca6)
- reg: Fix _rootInstance field is always null (69b6aa1)
- reg: Fix ANdroid test not passing (3db1f2c)
- reg: Fix HR no allowing to remove x:Bind as first change (7aae564)
- reg: Fix invalid code gen (87c931a)
- Reset last input type before test execution (7f32505)
- resources: Don't reevaluate all resources on all measure (faad794)
- resources: Make the
FrameworkElement.Resources
property lazy initialized (e20718b) - reverse clip and set fillrule to oddeven (f20b0b8)
- scrollviewer: fix scrollArgs.IsIntermediate on WASm (84c85fe)
- sdk: Adding MAUI and C# markup packages when enabled (fb5f508), closes #18700
- SdkExtras invalid implicit version (f5b2c55)
- SdkExtras invalid implicit version (bace519)
- sdk: Removing redundant packages (0397050)
- shapes ignoring clipping sometimes on Linux (a57c392)
- skia: support color animations (6b908aa)
- tests: Check_FontFallback_Shaping on macOS/skia (6f79a81)
- tests: Fix several Given_TextBox tests on macOS/skia (7e21bee)
- tests: Fix When_IsTextSelectionEnabled_Keyboard_SelectAll_Copy on macOS/skia (10e637e)
- tests: Fix When_Large_List_Scroll_To_End_Then_Back_Up_TryClick on macOS/skia (8be8374)
- tests: Fix When_Paste_While_Pointer_Held on macOS/skia (647a7ac)
- tests: Fix When_Scrolling_Updates_After_Backspace on macOS/skia (20df9bd)
- tests: Fix When_Selection_With_Keyboard_NoMod_Ctrl_And_Shift on macOS/skia (2316d6c)
- tests: Fix When_Undo_Redo_Keyboard_Basic on macOS/skia (ba5867b)
- tests: Tolerate 2 pixels diff (happens on CI) for Check_FontFallback_Shaping (431d124)
- tests: When_Copy_Paste on macOS/skia (dac31e8)
- tests: When_Ctrl_A on macOS/skia (3d19d61)
- tests: When_Ctrl_Backspace on macOS/skia (8fc014a)
- tests: When_Ctrl_Delete on macOS/skia (8547cbd)
- tests: When_Ctrl_Delete_Undo_Redo on macOS/skia (3e1c56c)
- tests: When_Ctrl_End_ScrollViewer_Vertical_Offset on macOS/skia (6acb0cd)
- tests: When_Ctrl_Home_End on macOS/skia (ff2386c)
- tests: When_Cut_Paste on macOS/skia (d5f60ec)
- textbox: BeforeTextChanging crashing ing in specific cases (819ccc2)
- textbox: losing focus on PointerUp when inside a Popup on WASM (066f89f)
- Track modifiers throughout key sequence (69a7287)
- Track the parent command bar for appbar buttons (740cc2c)
- Uno specific workaround for invalid assert in ComboBox (b6fd348)
- Use generated serializers for net9 wasm (eb817af)
- wasm: key tracking when no one is subscribing to Key<Down|Up> (542a226)
- wasm: unwanted preview shown when dragging over existing selection (2436ac6)
- wasm: workaround for invalid net9-browserwasm library detection (9bd0c1d)
- webview2: Adjust target platform selection for windows builds (5a5cdca)
- WriteableBitmap: Invalidation should cause a redrawing (107f0ba)
- x11: fix rendering when DPI scaling is less than 1 (c877936)
- xamlgenerator: fix syntax error when using x:Uid (6b6eb02)
- xLoad not updating bindings when a child sets x:Bind (bb6958f)