Releases: CommunityToolkit/Maui
11.0.0: Offline speech recognition
And just like that, the first release in 2025 is v11 of the .NET MAUI Community Toolkit!
Offline speech recognition
In this release we add offline speech recognition. No need for an active internet connection, you can now to speech to text while offline. Note that this is available from Android 33 and up and iOS13 and up. Check out all the details on the docs.
Statusbar gap
Did you notice there was a gap when using the StatusBarBehavior
on iOS? Thanks to @kubaflo not anymore! We made sure that the calculations for the status bar height is now correct and are even giving you fine-grained control over the calculations by being able to specify if the safe area should be included or not.
And much more!
Be sure to check out the full list below with all the changes ,and last but not least, we also did releases for CameraView, MediaElement and Maps, so be sure to check those out too!
Make sure to check the requirements below for using this/building this project yourself.
Requirements
The following tools are now required for CommunityToolkit.Maui:
- Download/install .NET SDK v9.0.102
- Install Xcode 16.2.0 (or higher)
- Read the latest .NET MAUI Release wiki to always find the latest-supported version) of Xcode for .NET MAUI
- We HIGHLY recommend using the open-source tool Xcodes to easily manage your installed Xcode versions
- Update to the latest stable version of Visual Studio (or Jet Brains Rider)
- After installing the latest stable .NET SDK, update to the latest stable version of the .NET MAUI workload:
- On macOS, open the Terminal and enter the following command:
sudo dotnet workload install maui; sudo dotnet workload update
- On Windows, open the command prompt (or Powershell) and enter the following command:
dotnet workload install maui;dotnet workload update
- On macOS, open the Terminal and enter the following command:
- Add a
global.json
file to your application with the following parameters to ensure you're not using a unsupported preview version of .NET (example below)- The .NET MAUI Community Toolkit does not support preview releases of .NET
global.json
{
"sdk": {
"version": "9.0.102",
"rollForward": "latestFeature",
"allowPrerelease": false
}
}
What's Changed
- Fix bug: Support for arrays in IsListNotNullOrEmptyConverter/IsListNotNullOrEmptyConverter by @jenscski in #2396
- change to ResetValidationTokenSource to guard against a disposed validationTokenSource by @matt-bartholomew in #2344
- Offline Speech Recognition #2089 by @VladislavAntonyuk in #2242
- Support Microsoft.Maui.Controls v9.0.30 and .NET SDK v9.0.102 by @brminnick in #2444
- Migrate to PEG parser. Introduce boolean operators and constants. by @stephenquan in #2182
- [iOS] StatusBarBehavior does not occupy entire notch - fix by @kubaflo in #2309
Bumpers 🚗 & Housekeeping
- Fix ObservableProperties error: mvvmtk0045 by @ne0rrmatrix in #2399
- Fix mvvmtk0045 warnings for
SpeechToTextViewModel
by @ne0rrmatrix in #2402 - Fix mvvmtk0045 warnings for
VariableMultiValueConverterViewModel
by @ne0rrmatrix in #2401 - Fix mvvmtk0045 warning for
StateContainerViewModel
by @ne0rrmatrix in #2400 - Fix mvvmtk0045 and XC0045 warnings by @ne0rrmatrix in #2403
- Bump coverlet.collector from 6.0.2 to 6.0.3 in /samples by @dependabot in #2421
- Bump xunit from 2.9.2 to 2.9.3 in /samples by @dependabot in #2432
- Bump xunit.runner.visualstudio from 3.0.0 to 3.0.1 in /samples by @dependabot in #2435
- Bump xunit.v3 from 1.0.0 to 1.0.1 in /samples by @dependabot in #2436
- [Housekeeping] Remove Null Forgiving Operator by @brminnick in #2446
- Bump System.Formats.Asn1 from 9.0.0 to 9.0.1 in /samples by @dependabot in #2442
- Bump FluentAssertions from 7.0.0 to 8.0.0 in /samples by @dependabot in #2441
New Contributors
- @jenscski made their first contribution in #2396
- @matt-bartholomew made their first contribution in #2344
- @Forestbrook made their first contribution in #2312
- @stephenquan made their first contribution in #2182
- @kubaflo made their first contribution in #2309
Full Changelog: 10.0.0...11.0.0
v6.0.0 MediaElement: Now using Media3 on Android!
What's Changed
- Update Media Element to use Media3 by @ne0rrmatrix in #2076
Requirements
The following tools are now required for CommunityToolkit.Maui:
- Download/install .NET SDK v9.0.102
- Install Xcode 16.1.0 (or higher)
- Read the latest .NET MAUI Release wiki to always find the latest-supported version) of Xcode for .NET MAUI
- We HIGHLY recommend using the open-source tool Xcodes to easily manage your installed Xcode versions
- Update to the latest stable version of Visual Studio (or Jet Brains Rider)
- After installing the latest stable .NET SDK, update to the latest stable version of the .NET MAUI workload:
- On macOS, open the Terminal and enter the following command:
sudo dotnet workload install maui; sudo dotnet workload update
- On Windows, open the command prompt (or Powershell) and enter the following command:
dotnet workload install maui;dotnet workload update
- On macOS, open the Terminal and enter the following command:
- Add a
global.json
file to your application with the following parameters to ensure you're not using a unsupported preview version of .NET (example below)- The .NET MAUI Community Toolkit does not support preview releases of .NET
global.json
{
"sdk": {
"version": "9.0.102",
"rollForward": "latestFeature",
"allowPrerelease": false
}
}
Full Changelog: 10.0.0...6.0.0-mediaelement
v3.0.1 Maps: Minor bugfix
What's Changed
Requirements
The following tools are now required for CommunityToolkit.Maui:
- Download/install .NET SDK v9.0.102
- Install Xcode 16.1.0 (or higher)
- Read the latest .NET MAUI Release wiki to always find the latest-supported version) of Xcode for .NET MAUI
- We HIGHLY recommend using the open-source tool Xcodes to easily manage your installed Xcode versions
- Update to the latest stable version of Visual Studio (or Jet Brains Rider)
- After installing the latest stable .NET SDK, update to the latest stable version of the .NET MAUI workload:
- On macOS, open the Terminal and enter the following command:
sudo dotnet workload install maui; sudo dotnet workload update
- On Windows, open the command prompt (or Powershell) and enter the following command:
dotnet workload install maui;dotnet workload update
- On macOS, open the Terminal and enter the following command:
- Add a
global.json
file to your application with the following parameters to ensure you're not using a unsupported preview version of .NET (example below)- The .NET MAUI Community Toolkit does not support preview releases of .NET
global.json
{
"sdk": {
"version": "9.0.102",
"rollForward": "latestFeature",
"allowPrerelease": false
}
}
Full Changelog: 10.0.0...3.0.1-maps
v2.0.1 CameraView: Rotated a bug on iOS
What's Changed
- Fix bug CameraView on iOS: camera preview is not always rotated correct and photos are rotated by @Forestbrook in #2312
Requirements
The following tools are now required for CommunityToolkit.Maui:
- Download/install .NET SDK v9.0.102
- Install Xcode 16.1.0 (or higher)
- Read the latest .NET MAUI Release wiki to always find the latest-supported version) of Xcode for .NET MAUI
- We HIGHLY recommend using the open-source tool Xcodes to easily manage your installed Xcode versions
- Update to the latest stable version of Visual Studio (or Jet Brains Rider)
- After installing the latest stable .NET SDK, update to the latest stable version of the .NET MAUI workload:
- On macOS, open the Terminal and enter the following command:
sudo dotnet workload install maui; sudo dotnet workload update
- On Windows, open the command prompt (or Powershell) and enter the following command:
dotnet workload install maui;dotnet workload update
- On macOS, open the Terminal and enter the following command:
- Add a
global.json
file to your application with the following parameters to ensure you're not using a unsupported preview version of .NET (example below)- The .NET MAUI Community Toolkit does not support preview releases of .NET
global.json
{
"sdk": {
"version": "9.0.102",
"rollForward": "latestFeature",
"allowPrerelease": false
}
}
New Contributors
- @Forestbrook made their first contribution in #2312
Full Changelog: 10.0.0...2.0.1-camera
10.0.0: .NET 9 support is here!
It took some great effort from multiple people, but it's finally here! .NET 9 support for the .NET MAUI Community Toolkit!
Requirements
The following tools are now required for CommunityToolkit.Maui.:
- Download/install .NET SDK v9.0.101
- Install Xcode 16.1.0
- Read the latest .NET MAUI Release wiki to always find the latest-supported version) of Xcode for .NET MAUI
- We HIGHLY recommend using the open-source tool Xcodes to easily manage your installed Xcode versions
- Update to the latest stable version of Visual Studio (or Jet Brains Rider)
- After installing the latest stable .NET SDK, update to the latest stable version of the .NET MAUI workload:
- On macOS, open the Terminal and enter the following command:
sudo dotnet workload install maui
- On Windows, open the command prompt (or Powershell) and enter the following command:
dotnet workload install maui
- On macOS, open the Terminal and enter the following command:
- Add a
global.json
file to your application with the following parameters to ensure you're not using a unsupported preview version of .NET (example below)- The .NET MAUI Community Toolkit does not support preview releases of .NET
global.json
{
"sdk": {
"version": "9.0.101",
"rollForward": "latestFeature",
"allowPrerelease": false
}
}
Breaking Changes
Major Breaking Changes
-
All
CommunityToolkit.Maui.Behavior
s no longer automatically assignBehavior.BindingContext
for you- .NET MAUI Behaviors do not automatically inherit their parent's BindingContext (a breaking change from Xamarin.Forms)
- Going forward, the .NET MAUI Community Toolkit will follow this implementation of Behaviors
- We have updated all of our documentation to demonstrate this new functionality: https://learn.microsoft.com/dotnet/communitytoolkit/maui/behaviors/
- If your Behavior has a Binding, it must manually assign the BindingContext, like so:
-
.NET 8 no longer supported
-
Xcode 16.1 Required
-
Increase minimum supported OS versions of
CommunityToolkit.Maui.MediaElement
- Android 26.0
- iOS 15.0
- MacCatalyst 15.0
-
Increase minimum supported versions of
CommunityToolkit.Maui.Camera
to 15.0:- iOS 15.0
- MacCatalyst 15.0
Minor Breaking Changes
Expander
is not trim safe- ValidationBehaviors are not trim safe
CommunityToolkit.Maui.Maps
is not trim safe- Remove
PopupService.ShowPopop(TViewModel)
- Removes
[Obsolete]
method - Use
PopupService.ShowPopup<T>()
instead
- Removes
- Remove
PopupService.ShowPopopAsync(TViewModel, CancellationToken)
- Removes
[Obsolete]
method - Use
PopupService.ShowPopupAsync<T>()
instead
- Removes
- Remove ability to subclass
BaseConverter<TFrom, TTo>
- Subclassing from
BaseConverter<TFrom, TTo>
is not supported - Support requires documentation and complete unit tests
- Subclassing from
- Remove ability to subclass
BaseConverter<TFrom, TTo, TParam>
- Subclassing from
BaseConverter<TFrom, TTo, TParam>
is not supported - Support requires documentation and complete unit tests
- Subclassing from
ValidationFlags.ValidateOnFocusing
renamed toValidationFlags.ValidateOnFocused
ValidationFlags.ValidateOnUnfocusing
renamed toValidationFlags.ValidateOnUnfocused
- In
CommunityToolkit.Maui.Camera
, addlinker.xml
fornet9.0-android
to avoid the Linker removingXamarin.AndroidX.Camera.Core
,Xamarin.AndroidX.Camera.Lifecycle
,Xamarin.AndroidX.Camera.Video
,Xamarin.AndroidX.Camera.View
, andXamarin.AndroidX.Camera.Camera2
public static Task<bool> ShowKeyboardAsync(this ITextInput, CancellationToken)
->public static ValueTask<bool> ShowKeyboardAsync(this ITextInput, CancellationToken)
- NuGet package will not support
Microsoft.Maui.Controls
.NET 10 until .NET 10 GA
And who doesn't love some numbers?! 📈
Analyzer Benchmarks
.NET 9.0 | Mean | Error | StdDev | Median | Gen0 | Gen1 | Allocated |
---|---|---|---|---|---|---|---|
VerifyNoErrorsWhenUseMauiCommunityToolkit | 8.863 ms | 0.1748 ms | 0.3240 ms | 8.724 ms | 62.5000 | 31.2500 | 1.59 MB |
VerifyNoErrorsWhenUseMauiCommunityToolkitHasAdditionalWhitespace | 8.695 ms | 0.1654 ms | 0.4358 ms | 8.528 ms | 62.5000 | 31.2500 | 1.59 MB |
VerifyErrorsWhenMissingUseMauiCommunityToolkit | 12.071 ms | 0.3756 ms | 1.0470 ms | 11.546 ms | 66.6667 | - | 2.29 MB |
.NET 8.0 | Mean | Error | StdDev | Median | Gen0 | Allocated |
---|---|---|---|---|---|---|
VerifyNoErrorsWhenUseMauiCommunityToolkitMediaElement | 9.763 ms | 0.1928 ms | 0.4765 ms | 9.633 ms | 31.2500 | 1.46 MB |
VerifyNoErrorsWhenUseMauiCommunityToolkitMediaElementHasAdditonalWhitespace | 9.565 ms | 0.1862 ms | 0.4637 ms | 9.460 ms | 31.2500 | 1.46 MB |
VerifyErrorsWhenMissingUseMauiCommunityToolkitMediaElement | 15.495 ms | 0.3879 ms | 1.0814 ms | 15.058 ms | 66.6667 | 2.24 MB |
ILLinker Failing on iPhone Device (non-simulator) and MacCatalyst Release Builds:
If you run into a build error while building your macOS/Mac Catalyst app, try opting out of the new type registrar. We did that for our sample app for the time being while this bug gets resolved. More information here: https://github.com/xamarin/xamarin-macios/wiki/.NET-9-release-notes#opting-out
<!-- Fixes Static Registrar causing Linker error: https://github.com/xamarin/xamarin-macios/blob/main/docs/managed-static-registrar.md -->
<Target Name="SelectStaticRegistrar" AfterTargets="SelectRegistrar">
<PropertyGroup Condition="'$(Registrar)' == 'managed-static'">
<Registrar>static</Registrar>
</PropertyGroup>
</Target>
What's Changed
- Fix for #2050 [DOC] Update Sample Application to demonstrate correct way to initialize Maps in MauiProgram.cs to support Maps on all platforms. by @mikelor in #2325
- Fixes PopupService scopes problem by @bdovaz in #2333
- Create locker.yml by @VladislavAntonyuk in #2348
- Version Toolkit assemblies alike the NuGet package version by @jfversluis in #2328
- Support .NET 9.0 by @bijington in #2215 as part of this PR, these issues were fixed:
- [BUG] Wrong item is registered when pressing an item in a CollectionView using TouchBehavior
- [BUG][Regression][8.0.1] TouchBevavior binding not working in a CollectionView
- [BUG] Camera View - Zoom does not work when application is built in release mode
- [BUG] Toast Faults on Windows
- ImageResourceConverter fails to display image - .NET 9
- [BUG] Warning when including a ValueConverter starting in .NET MAUI 9
- [BUG] Net 9 Android - StatusBar Color overriden on modal pages
- [BUG] .Net 9 Android MediaElement stops playing video
- [BUG] TouchBehavior crash
- [BUG] Camera view with .NET 9 is causing crash on Android
- [BUG] System.MissingMethodException No constructor found for CommunityToolkit.Maui.Behaviors.TouchBehavior+AccessibilityListener
- [BUG] Buttons not firing inside Layout that has a TouchBehavior
- [BUG] Media Element cannot be disconnected
New Contributors
Full Changelog: 9.1.1...10.0.0
v5.0.0 MediaElement: .NET 9 support
Breaking Changes
Major Breaking Changes
- .NET 8 no longer supported
- Xcode 16.1 Required
- Increase minimum supported OS versions of
CommunityToolkit.Maui.MediaElement
- Android 26.0
- iOS 15.0
- MacCatalyst 15.0
What's Changed
- Support .NET 9.0 by @bijington in #2215
- [BUG] .Net 9 Android MediaElement stops playing video
Full Changelog: 2.0.4-maps...5.0.0-mediaelement
v3.0.0 Maps: .NET 9 support is here!
Breaking Changes
Major Breaking Changes
- .NET 8 no longer supported
- Xcode 16.1 Required
Minor Breaking Changes
CommunityToolkit.Maui.Maps
is not trim safe
What's Changed
- Support .NET 9.0 by @bijington in #2215
Full Changelog: 2.0.4-maps...3.0.0-maps
v2.0.0 Camera: .NET 9 support is here!
Breaking Changes
Major Breaking Changes
-
.NET 8 no longer supported
-
Xcode 16.1 Required
-
Increase minimum supported versions of
CommunityToolkit.Maui.Camera
to 15.0:- iOS 15.0
- MacCatalyst 15.0
Minor Breaking Changes
- In
CommunityToolkit.Maui.Camera
, addlinker.xml
fornet9.0-android
to avoid the Linker removingXamarin.AndroidX.Camera.Core
,Xamarin.AndroidX.Camera.Lifecycle
,Xamarin.AndroidX.Camera.Video
,Xamarin.AndroidX.Camera.View
, andXamarin.AndroidX.Camera.Camera2
What's Changed
- Support .NET 9.0 by @bijington in #2215
- [BUG] Camera View - Zoom does not work when application is built in release mode
- [BUG] Camera view with .NET 9 is causing crash on Android
Full Changelog: 2.0.4-maps...2.0.0-camera
9.1.1: A handful of bugfixes before the new major release
.NET 9 is almost upon us, just before the new major release that we will be introduction as part of there, here are a couple of bugfixes that you can use today!
A big thank you to @Bensley96 for the very first contribution to this project 👏
Requirements
The following tools are now required for CommunityToolkit.Maui.:
- Xcode 16.0.0
- Read the latest .NET MAUI Release wiki to always find the latest-supported version) of Xcode for .NET MAUI
- We HIGHLY recommend using the open-source tool Xcodes to easily manage your installed Xcode versions
- Update to the latest stable version of Visual Studio (or Jet Brains Rider)
- Download/install .NET SDK v8.0.403
- After installing the latest stable .NET SDK, update to the latest stable version of the .NET MAUI workload:
- On macOS, open the Terminal and enter the following command:
sudo dotnet workload install maui
- On Windows, open the command prompt (or Powershell) and enter the following command:
dotnet workload install maui
- On macOS, open the Terminal and enter the following command:
- Add a
global.json
file to your application with the following parameters to ensure you're not using a unsupported preview version of .NET (example below)- The .NET MAUI Community Toolkit does not support preview releases of .NET
global.json
{
"sdk": {
"version": "8.0.403",
"rollForward": "latestMajor",
"allowPrerelease": false
}
}
What's Changed
- Ensure
TouchBehavior.LongPressCompleted
event fires whenLongPressCommand is null
by @brminnick in #2239 - Fix FileSaver Progress by @VladislavAntonyuk in #2277
- Implement the ability to Close a popup by @bijington in #1688
- Fix animation behavior hot reload by @BretJohnson in #2288
- [MacCatalyst] [iOS] Fix IconTintColorBehavior ImageButton Disappearing and Crash On Source Change by @Bensley96 in #2317
🧼 Housekeeping 🧽
- Bump xunit from 2.9.1 to 2.9.2 in /samples by @dependabot in #2234
- [Housekeeping] Update NuGet Packages by @brminnick in #2254
- [housekeeping] Automated PR to fix formatting errors by @github-actions in #2285
- [housekeeping] Automated PR to fix formatting errors by @github-actions in #2292
- [housekeeping] Automated PR to fix formatting errors by @github-actions in #2295
- [housekeeping] Automated PR to fix formatting errors by @github-actions in #2318
New Contributors
- @Bensley96 made their first contribution in #2317
Full Changelog: 9.1.0...9.1.1
2.0.4 Windows Maps: zooming in on the bugs!
Just a small update to make the zoom work when you use MoveToRegion
on the Map
! Thanks @mikelor!
Requirements
The following tools are now required for CommunityToolkit.Maui.Maps:
- Xcode 16.0.0
- Read the latest .NET MAUI Release wiki to always find the latest-supported version) of Xcode for .NET MAUI
- We HIGHLY recommend using the open-source tool Xcodes to easily manage your installed Xcode versions
- Update to the latest stable version of Visual Studio (or Jet Brains Rider)
- Download/install .NET SDK v8.0.403
- After installing the latest stable .NET SDK, update to the latest stable version of the .NET MAUI workload:
- On macOS, open the Terminal and enter the following command:
sudo dotnet workload install maui
- On Windows, open the command prompt (or Powershell) and enter the following command:
dotnet workload install maui
- On macOS, open the Terminal and enter the following command:
- Add a
global.json
file to your application with the following parameters to ensure you're not using a unsupported preview version of .NET (example below)- The .NET MAUI Community Toolkit does not support preview releases of .NET
global.json
{
"sdk": {
"version": "8.0.403",
"rollForward": "latestMajor",
"allowPrerelease": false
}
}
What's Changed
Full Changelog: 4.1.2-mediaelement...2.0.4-maps