Skip to content

Releases: MvvmCross/MvvmCross

10.1

09 Dec 10:55

Choose a tag to compare

What's Changed

Breaking Changes 🛠

New Features 🎉

  • Android multiple back stacks by @entdark in #5028
  • Add missing DynamicallyAccessedMembers attributes on iOS delegates by @Cheesebaron in #5021
  • Apply RequiresUnreferendeCode attributes to bubble up from lower layers by @Cheesebaron in #5030

Fixed Bugs 🐛

  • Fix MvxViewExtensions using compile-time type instead of runtime type by @Cheesebaron in #5041
  • Fix MvxAndroidViewsContainer GetIntentWithKeyFor not using runtime-type to resolve default VM request by @Cheesebaron in #5042

Dependencies 👒

  • Update dependency Cake.GitVersioning to 3.9.50 by @self-hosted-renovate-mvvmcross[bot] in #5013
  • Update actions/dependency-review-action action to v4.8.2 by @self-hosted-renovate-mvvmcross[bot] in #5014
  • Update dotnet monorepo to v10 (major) by @self-hosted-renovate-mvvmcross[bot] in #5020
  • Update dependency Cake.Frosting to v6 by @self-hosted-renovate-mvvmcross[bot] in #5019
  • Update dependency dotnet-reportgenerator-globaltool to v5.5.0 by @self-hosted-renovate-mvvmcross[bot] in #5018
  • Update dependency Microsoft.WindowsAppSDK to 1.8.251106002 by @self-hosted-renovate-mvvmcross[bot] in #5017
  • Update actions/checkout action to v5.0.1 by @self-hosted-renovate-mvvmcross[bot] in #5022
  • Update dependency Microsoft.Windows.SDK.BuildTools to 10.0.26100.7175 by @self-hosted-renovate-mvvmcross[bot] in #5024
  • Update dependency Serilog.Extensions.Logging to v10 by @self-hosted-renovate-mvvmcross[bot] in #5027
  • Update actions/checkout action to v6 by @self-hosted-renovate-mvvmcross[bot] in #5026
  • Update actions/setup-dotnet action to v5.0.1 by @self-hosted-renovate-mvvmcross[bot] in #5029
  • Update dependency SonarAnalyzer.CSharp to 10.16.0.128591 by @self-hosted-renovate-mvvmcross[bot] in #5031
  • Update actions/checkout action to v6.0.1 by @self-hosted-renovate-mvvmcross[bot] in #5035
  • Update actions/setup-java action to v5.1.0 by @self-hosted-renovate-mvvmcross[bot] in #5039
  • Update step-security/harden-runner action to v2.13.3 by @self-hosted-renovate-mvvmcross[bot] in #5036
  • Update dependency dotnet-reportgenerator-globaltool to v5.5.1 by @self-hosted-renovate-mvvmcross[bot] in #5037
  • Update dependency SonarAnalyzer.CSharp to 10.16.1.129956 by @self-hosted-renovate-mvvmcross[bot] in #5038

Other Changes 🌱

Full Changelog: v10.0.0...v10.1.0

10.0

11 Nov 22:33

Choose a tag to compare

What's Changed

.NET 10 SDK was just released and it is an opportune moment to also release a new version of MvvmCross.

The highlights in this release are:

  • .NET 10 Support
  • Dropped .NET 8 Support for mobile workloads as per the MAUI Support Policy
  • Trimming annotations across a lot of the MvvmCross code surface. Some platform specific code is still missing and will come in a later version. MvvmCross libraries are still not marked trimmable, but this brings us closed to be able to enable this

Contributions from the communities are:

  • Allow to set window controller type as Type for the MvxWindowPresentationAttribute by @snechaev in #5004
  • Update Fragment ViewModel caching to prevent stale reuse and memory retention by @met94 in #4958

A huge thanks for these contributions 🥳

Breaking Changes 🛠

New Features 🎉

Fixed Bugs 🐛

Dependencies 👒

  • Bump the unittest-dependencies group with 1 update by @dependabot[bot] in #4927
  • Bump the analyzers group with 2 updates by @dependabot[bot] in #4928
  • Bump nokogiri from 1.13.10 to 1.18.9 in /docs by @dependabot[bot] in #4929
  • Bump the unittest-dependencies group with 1 update by @dependabot[bot] in #4934
  • Bump the unittest-dependencies group with 1 update by @dependabot[bot] in #4942
  • Bump rexml from 3.4.1 to 3.4.2 in /docs by @dependabot[bot] in #4943
  • Bump the unittest-dependencies group with 1 update by @dependabot[bot] in #4951
  • Bump the unittest-dependencies group with 1 update by @dependabot[bot] in #4953
  • Bump the unittest-dependencies group with 1 update by @dependabot[bot] in #4955
  • Bump the build-tools group with 1 update by @dependabot[bot] in #4956
  • Bump the analyzers group with 1 update by @dependabot[bot] in #4959
  • Bump the build-tools group with 1 update by @dependabot[bot] in #4960
  • Bump the unittest-dependencies group with 1 update by @dependabot[bot] in #4961
  • Update AndroidX packages by @Cheesebaron in #4962
  • Update dependency cyclonedx to v5.5.0 by @self-hosted-renovate-mvvmcross[bot] in #4969
  • Update dependency dotnet-sonarscanner to v10.4.1 by @self-hosted-renovate-mvvmcross[bot] in #4970
  • Update dependency Serilog.Sinks.Debug to v3 by @self-hosted-renovate-mvvmcross[bot] in #4975
  • Update dotnet monorepo by @self-hosted-renovate-mvvmcross[bot] in #4967
  • Update dependency Microsoft.Windows.SDK.BuildTools to 10.0.26100.6584 by @self-hosted-renovate-mvvmcross[bot] in #4966
  • Update dependency Microsoft.NETCore.UniversalWindowsPlatform to 6.2.14 by @self-hosted-renovate-mvvmcross[bot] in #4965
  • Update dependency Microsoft.WindowsAppSDK to 1.8.250916003 by @self-hosted-renovate-mvvmcross[bot] in #4980
  • Update ctrf-io/github-test-reporter action to v1.0.25 by @self-hosted-renovate-mvvmcross[bot] in #4964
  • Update Testing (major) by @self-hosted-renovate-mvvmcross[bot] in #4977
  • Pin CodeQL actions by @Cheesebaron in #4982
  • Update Testing by @self-hosted-renovate-mvvmcross[bot] in #4968
  • Update dependency Xamarin.Google.Android.Material to 1.13.0 by @self-hosted-renovate-mvvmcross[bot] in #4986
  • Update dependency Xamarin.Android.Glide to 5.0.5 by @self-hosted-renovate-mvvmcross[bot] in #4985
  • Update dependency Microsoft.WindowsAppSDK to 1.8.251003001 by @self-hosted-renovate-mvvmcross[bot] in #4987
  • Update dependency dotnet-sonarscanner to v11 by @self-hosted-renovate-mvvmcross[bot] in #4990
  • Update dependency jquery to v3.7.1 by @self-hosted-renovate-mvvmcross[bot] in #4971
  • Update dependency anchor-js to v5 by @self-hosted-renovate-mvvmcross[bot] in #4973
  • Update dependency normalize to v8 by @self-hosted-renovate-mvvmcross[bot] in #4974
  • Update dotnet monorepo by @self-hosted-renovate-mvvmcross[bot] in #4988
  • Update mcr.microsoft.com/devcontainers/dotnet Docker tag to v10 by @self-hosted-renovate-mvvmcross[bot] in #4995
  • Update actions/upload-artifact action to v5 by @self-hosted-renovate-mvvmcross[bot] in #4998
  • Update dependency Microsoft.Windows.SDK.BuildTools to 10.0.26100.6901 by @self-hosted-renovate-mvvmcross[bot] in #4997
  • Update ctrf-io/github-test-reporter action to v1.0.26 by @self-hosted-renovate-mvvmcross[bot] in #5007
  • Update step-security/harden-runner action to v2.13.2 by @self-hosted-renovate-mvvmcross[bot] in #5010
  • Update dependency dotnet-reportgenerator-globaltool to v5.4.18 by @self-hosted-renovate-mvvmcross[bot] in #5001

Other Changes 🌱

Read more

Release 9.4.0

17 Jul 10:17

Choose a tag to compare

This version requires you to update your Apple workloads to 18.5.xxxx and Android to 35.x.x. You can check with dotnet workload list and you would see something like:

Workload version: 9.0.303

Installed Workload Id      Manifest Version       Installation Source
---------------------------------------------------------------------
android                    35.0.78/9.0.100        SDK 9.0.300
ios                        18.5.9207/9.0.100      SDK 9.0.300
maccatalyst                18.5.9207/9.0.100      SDK 9.0.300
macos                      15.5.9207/9.0.100      SDK 9.0.300
tvos                       18.5.9207/9.0.100      SDK 9.0.300

You can use dotnet workload install android ios maccatalyst macos tvos --version 9.0.303 to update your workloads, where 9.0.303 is the version of .NET SDK you have installed. We recommend 9.0.303 or higher.

What's Changed

The highlights for MvvmCross 9.4 are:

  • Support for SceneDelegate on iOS. For now the implementation out of the box only supports single window Apps just like before with AppDelegate. You can refer to MvvmCross SceneDelegate documentation for more information
  • Fixed console bits were missing from .NET 9.0 targets
  • Contributions from @snechaev to support empty selection in MvxTableViewSource for macOS targets and keeping strong references to NSWindowControllers
  • Added better support for saving and restoring Fragment state on Android contributed by @entdark
  • Added MvxCollectionViewListCell for tvOS and iOS platforms by @Digifais

Also a few minor changes such as:

  • Updates to signing infrastructure provided by .NET Foundation to use Azure Key Vault and new signing tool
  • Added Software Bill of Material (SBOM) for NuGet packages such that the packages can be verified by consumers and check all their dependencies
  • Switching builds to Cake Frosting
  • Switching Git Version tooling to use NerdBank.GitVersioning
  • Switching to NSubstitute in favor of Moq

Since the Git Versioning tooling has been updated, the versioning for packages from the develop branch will be slightly different. Instead of using Git Version hight like: 9.5.0-alpha.12, where 12 is the commit height on the branch. The new versioning scheme will use the commit SHA instead like: 9.5.0-alpha-g6071f47cef.

Many thanks to the new and recurring contributors on the project. All your contributions are much appreciated.

Breaking Changes 🛠

  • Added MvxSceneDelegate for iOS SceneDelegate support by @Cheesebaron in #4893
  • Added saving and restoring fragments info for ViewPager fragments: by @entdark in #4896

iOS

IMvxIosSetup PlatformInitialize methods no longer use IMvxApplicationDelegate but rather IMvxLifecycle

- void PlatformInitialize(IMvxApplicationDelegate applicationDelegate, UIWindow window);
- void PlatformInitialize(IMvxApplicationDelegate applicationDelegate, IMvxIosViewPresenter presenter);
+ void PlatformInitialize(IMvxLifetime lifetimeInstance, UIWindow window);
+ void PlatformInitialize(IMvxLifetime lifetimeInstance, IMvxIosViewPresenter presenter);

Android

MvxCachingFragmentStatePagerAdapter no longer requires Context as first argument in the ctor

- public MvxCachingFragmentStatePagerAdapter(Context context, FragmentManager fragmentManager, List<MvxViewPagerFragmentInfo> fragmentsInfo)
+ public MvxCachingFragmentStatePagerAdapter(FragmentManager fragmentManager, List<MvxViewPagerFragmentInfo> fragmentsInfo)

New Features 🎉

Fixed Bugs 🐛

Other Changes 🌱

New Contributors

Full Changelog: 9.3.1...9.4.0

Release 9.3.1

17 Jan 12:22

Choose a tag to compare

What's Changed

In MvvmCross 8 we removed the broken navigation waiting for a result from a ViewModel. New in 9.3.1 is a contribution from @entdark which adds similar functionality back.

There are some updated docs on how to use it which can be found https://www.mvvmcross.com/documentation/fundamentals/navigation

There are some new methods in MvxNavigationService, a new IMvxResultViewModelManager and MvxResultAwaitingViewModel and MvxResultSettingViewModel types that are specific to this new navigation.

There is also a new sample in the Playground project in this repo for inspiration of use:

New Features 🎉

Fixed Bugs 🐛

  • Allow null values bound to Text in UILabel Text Target Binding by @Cheesebaron in #4883

Full Changelog: 9.3.0...9.3.1

Release 9.3.0

19 Dec 12:41

Choose a tag to compare

What's Changed

It has been a while since last stable release, time for a new one. Some notable changes include:

  • Removal of .NET 7 TFM
  • Addition of .NET 9 TFM
  • Lots of warnings cleaned up and enabled nullable attributes in more places
  • Build fully moved to GitHub Actions
  • Multi Window support for WinUI 3 with the help of @Joost-Jens-Luminis

A big thank you to all the contributors, all help is appreciated.

Changes on iOS

One change on iOS that might affect you is #4873 where now you do not need to have a Window export in your AppDelegate on iOS. If you have code as follows, make sure to remove it:

[Export("window")]
public UIWindow GetWindow() => Window;

Additionally if your app uses code like UIApplication.SharedApplication.Delegate.GetWindow() this will now return null. It has long been known that getting Window from the delegate or shared Application is deprecated and you should use the connected Scenes on your Application.

Breaking Changes 🛠

New Features 🎉

Fixed Bugs 🐛

Dependencies 👒

Other Changes 🌱

New Contributors

Full Changelog: 9.2.0...9.3.0

Release 9.2.0

22 Feb 18:15

Choose a tag to compare

This release adds .NET 7 and 8 support for MvvmCross and removes support for .NET 6.

Also, this contains changes to the startup process and Dependency Injection in MvvmCross to prepare and help switching to a different Dependency Injection provider in the future. This means that the methods CallbackWhenRegistered have been removed from IMvxIoCProvider and has been removed from Plugins which were using this functionality. This also meant that those plugins which relied on it broke, which has been fixed by initializing them at a different time during startup.

Plugin registration InitializePluginFramework has been move to just before InitializeApp and InitializeLastChance in MvxSetup and you can check the new order of initialization here: https://github.com/MvvmCross/MvvmCross/blob/develop/MvvmCross/Core/MvxSetup.cs#L150

What's Changed

New Contributors

Full Changelog: 9.1.1...9.2.0

Release 9.2.0-beta.7

05 Feb 08:14
393e1e6

Choose a tag to compare

Release 9.2.0-beta.7 Pre-release
Pre-release

What's Changed

Full Changelog: 9.2.0-beta.6...9.2.0-beta.7

Release 9.2.0-beta.6

17 Jan 09:07
af92938

Choose a tag to compare

Release 9.2.0-beta.6 Pre-release
Pre-release

What's Changed

Full Changelog: 9.2.0-beta.5...9.2.0-beta.6

Release 9.2.0-beta.5

07 Dec 14:41
cf02a4f

Choose a tag to compare

Release 9.2.0-beta.5 Pre-release
Pre-release

What's Changed

  • Move plugin registration to before Last chance by @Cheesebaron in #4771
  • Call App.Initialize() later by @Cheesebaron in #4787
  • Bugfix. ModalControllerDelegate.WillDismiss() closes a ViewController when the ViewController is not actually dismissed by a user by @evgenyvalavin in #4785

Full Changelog: 9.2.0-beta.4...9.2.0-beta.5

Release 9.2.0-beta.4

16 Nov 13:48

Choose a tag to compare

Release 9.2.0-beta.4 Pre-release
Pre-release

This release is built against the stable .NET SDK 8.0.100

What's Changed

New Contributors

Full Changelog: 9.2.0-beta.3...9.2.0-beta.4