Skip to content

Releases: CommunityToolkit/Maui

10.0.0: .NET 9 support is here!

18 Dec 08:10
725260b
Compare
Choose a tag to compare

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
  • 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

image
  • All CommunityToolkit.Maui.Behaviors no longer automatically assign Behavior.BindingContext for you

  • .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
  • Remove PopupService.ShowPopopAsync(TViewModel, CancellationToken)
    • Removes [Obsolete] method
    • Use PopupService.ShowPopupAsync<T>() instead
  • Remove ability to subclass BaseConverter<TFrom, TTo>
    • Subclassing from BaseConverter<TFrom, TTo> is not supported
    • Support requires documentation and complete unit tests
  • Remove ability to subclass BaseConverter<TFrom, TTo, TParam>
    • Subclassing from BaseConverter<TFrom, TTo, TParam> is not supported
    • Support requires documentation and complete unit tests
  • ValidationFlags.ValidateOnFocusing renamed to ValidationFlags.ValidateOnFocused
  • ValidationFlags.ValidateOnUnfocusing renamed to ValidationFlags.ValidateOnUnfocused
  • In CommunityToolkit.Maui.Camera, add linker.xml for net9.0-android to avoid the Linker removing Xamarin.AndroidX.Camera.Core, Xamarin.AndroidX.Camera.Lifecycle, Xamarin.AndroidX.Camera.Video, Xamarin.AndroidX.Camera.View, and Xamarin.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

New Contributors

Full Changelog: 9.1.1...10.0.0

v5.0.0 MediaElement: .NET 9 support

18 Dec 08:25
725260b
Compare
Choose a tag to compare

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

Full Changelog: 2.0.4-maps...5.0.0-mediaelement

v3.0.0 Maps: .NET 9 support is here!

18 Dec 08:29
725260b
Compare
Choose a tag to compare

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

Full Changelog: 2.0.4-maps...3.0.0-maps

v2.0.0 Camera: .NET 9 support is here!

18 Dec 08:30
725260b
Compare
Choose a tag to compare

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, add linker.xml for net9.0-android to avoid the Linker removing Xamarin.AndroidX.Camera.Core, Xamarin.AndroidX.Camera.Lifecycle, Xamarin.AndroidX.Camera.Video, Xamarin.AndroidX.Camera.View, and Xamarin.AndroidX.Camera.Camera2

What's Changed

Full Changelog: 2.0.4-maps...2.0.0-camera

9.1.1: A handful of bugfixes before the new major release

08 Nov 08:52
63c0618
Compare
Choose a tag to compare

.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
  • 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

🧼 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

Full Changelog: 9.1.0...9.1.1

2.0.4 Windows Maps: zooming in on the bugs!

08 Nov 08:32
63c0618
Compare
Choose a tag to compare

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
  • 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

  • Fixes [BUG] Map not responding to span (zoom) requests in Windows #1686 by @mikelor in #2323

Full Changelog: 4.1.2-mediaelement...2.0.4-maps

v4.1.2 MediaElement: MediaElement works in popups & CarouselView!

15 Oct 09:29
49644cb
Compare
Choose a tag to compare

Breaking Changes

The following tools are now required for CommunityToolkit.Maui.MediaElement:

  • 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
  • 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: 9.1.0...4.1.2-mediaelement

9.1.0: AOT support is here!

27 Sep 07:51
88bca49
Compare
Choose a tag to compare

Required Updates

The following tools are now required for .NET MAUI Community Toolkit v9.1.0

  • 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
  • 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

  • Fix memory leak on touchBehavior android by @pictos in #2113
  • Make iOS StatusBarBehavior more robust and not throw exceptions by @jfversluis in #2128
  • Removed spare Element checking in OnDetachedFrom by @rafalka in #2132
  • Improve the usage experience with IsInRangeConverter in XAML by @GeorgeLeithead in #1983
  • Add closing process when tapping the outer area of ​​Popup by @cat0363 in #2081
  • Remove DisableAutoCancel to fix Android auto focus by @Jake-Derrick in #2169
  • Fix System.Math.ThrowMinMaxException by @BaY1251 in #2072
  • Add missing setter for AnimateCommand by @BretJohnson in #2174
  • resolve [bug] CollectionView SelectionMode.Multiple doesn't work with TouchBehavior by @alex3696 in #2172
  • Add AOT Compatibility by @simonrozsival in #1820
  • Change the calling conditions of Popup's Dismiss method on Android by @cat0363 in #2159
  • Remove Popup and ContentPage from LogicalChildren when Popup is closed on iOS by @cat0363 in #2166
  • Adding constraints to Popup View on iOS by @cat0363 in #1979
  • Update ColorToStringConverter.shared.cs by @cl2raul66 in #2093
  • Only set the popup contents parent if it hasn't already been set before by @bijington in #2199
  • Changed to call Popup's MapOnClosed method by @cat0363 in #2202

Housekeeping 🧹

  • [housekeeping] Automated PR to fix formatting errors by @github-actions in #2129
  • [housekeeping] Automated PR to fix formatting errors by @github-actions in #2134
  • Fix failing test on Pipelines. Test only fails on Pipelines. by @ne0rrmatrix in #2141
  • [housekeeping] Automated PR to fix formatting errors by @github-actions in #2146
  • [housekeeping] Automated PR to fix formatting errors by @github-actions in #2175
  • Bump Microsoft.NET.Test.Sdk from 17.11.0 to 17.11.1 in /samples by @dependabot in #2180
  • [housekeeping] Automated PR to fix formatting errors by @github-actions in #2183
  • [housekeeping] Automated PR to fix formatting errors by @github-actions in #2192
  • Bump FluentAssertions from 6.12.0 to 6.12.1 in /samples by @dependabot in #2194
  • [housekeeping] Automated PR to fix formatting errors by @github-actions in #2198
    • Make test sdk match the test runner on the Mac build agent by @bijington in #2200
  • [housekeeping] Automated PR to fix formatting errors by @github-actions in #2207

New Contributors

Big thank you to our community contributors 👏

Full Changelog: 9.0.3...9.0.4

v4.1.1 MediaElement: AOT Compatible & bugfixes

13 Sep 08:35
404e3e4
Compare
Choose a tag to compare

Breaking Changes

The following tools are now required for CommunityToolkit.Maui.MediaElement:

  • 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
  • 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

New Contributors

Full Changelog: 4.1.0-mediaelement...4.1.1-mediaelement

v1.0.5 Camera: Small bugfixes we don't want to keep from you!

13 Sep 08:52
404e3e4
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 1.0.4-camera...1.0.5-camera