Hello again! 👋 It's the .NET MAUI Community Toolkit team with another wonderful release!
SemanticOrderView
In this release we'd love to (re)introduce to you the SemanticOrderView
. The SemanticOrderView
provides the ability to control the order of VisualElement
s for screen readers and improve the accessibility of an application. Phew, now that sounds important, so go check it out in our docs and start implementing it!
FileSaver & FolderPicker
Actually this is more about the FileSaverResult
and FolderPickerResult
. Before, you would get an exception thrown your way when the user cancelled the file save/folder pick action. Now, we've introduced these two objects that will give you a bit more information and control! As a bonus, we fixed the selection of the initial folder on Android.
The docs have also been updated so you can see how to work with this amazing new stuff!
StateContainer
First, we fixed a nasty bug in StateContainer
so it will crash less, that's always good news.
Second, we introduced StateContainer.ChangeStateWithAnimation()
which allows you to customize the behavior or animations whenever the state changes. And who doesn't love some great animations? I know you do!
Did we mention the docs got updates? Well, we made no exception for StateContainer
check it out here.
Highlights
But there is much more to unpack here, we just won't spell everything out because who reads docs anyway? 🤷♂️
Here is the management summary for this release, watch out for those breaking changes:
- 💥 Breaking Change: The minimum dependency of .NET MAUI has increased to .NET MAUI v7.0.59; ie .NET MAUI Community Toolkit now requires .NET MAUI v7.0.59 or higher
- 💥 Breaking Change:
StateContainer.ShouldAnimateOnStateChange
Property replaced withStateContainer.ChangeStateWithAnimation()
method - 💥 Breaking Change:
IFileSaver.SaveAsync()
now returns FileSaverResult (previously returned string) - 💥 Breaking Change:
IFolderPicker.PickAsync()
now returns FolderPickerResult (previously returned string) SemanticOrderView
has been ported from XCT to MCTExpander
now supportsCollectionView
DrawingView.GetImageStream()
now properly sizes the imageSnackbar.ActionButtonFont
now allows supports custom Fonts like Font AwesomeEmailValidationBehavior
now supports email addresses using Domain Names, IPv4 and IPv6EmailValidationBehavior
performance optimized by usingGeneratedRegex
All the details
- Bump Microsoft.Windows.SDK.BuildTools from 10.0.22621.1 to 10.0.22621.755 in /samples by @dependabot in #919
- Postpone popup show until platform is ready by @bijington in #934
- Fix Expander in CollectionView on Apple by @VladislavAntonyuk in #751
- Fix FolderPicker Error when trying to open a second time on MacCatalyst by @VladislavAntonyuk in #956
- Bump CommunityToolkit.Maui.Markup from 2.1.0 to 3.0.0 in /samples by @dependabot in #963
- [Sample App] Implement Typed Bindings by @brminnick in #96
- Bump FluentAssertions from 6.9.0 to 6.10.0 in /samples by @dependabot in #987
- Bump Microsoft.Extensions.Http.Polly from 7.0.2 to 7.0.3 in /samples by @dependabot in #996
- Bump AutoFixture.Xunit2 from 4.17.0 to 4.18.0 in /samples by @dependabot in #1023
- Bump Microsoft.NET.Test.Sdk from 17.4.1 to 17.5.0 in /samples by @dependabot in #1022
- Bump NuGet.Protocol from 6.4.0 to 6.5.0 in /samples by @dependabot in #1025
- Bump Microsoft.CodeAnalysis.CSharp.Workspaces from 4.4.0 to 4.5.0 in /samples by @dependabot in #1028
- Bump Microsoft.CodeAnalysis from 4.4.0 to 4.5.0 in /samples by @dependabot in #1030
- Bump Microsoft.CodeAnalysis.Analyzers from 3.3.3 to 3.3.4 in /samples by @dependabot in #1031
- Fix DrawingView ImageSize by @VladislavAntonyuk in #1037
- StateContainer, Add
ChangeStateWithAnimation()
by @VladislavAntonyuk in #1021 - Add
FileSaverResult
andFolderPickerResult
, Fix Initial folder on Android by @VladislavAntonyuk in #1009 - Use font in Snackbar by @VladislavAntonyuk in #1036
- Update
EmailValidationBehavior
by @brminnick in #770 - Semantic OrderView by @PureWeen in #1011
New Contributors
Full Changelog: 4.0.0...5.0.0
If you made it until here, please tweet at me to get a virtual donut 🍩