The .NET MVVM framework for cross-platform solutions, including Android, iOS, MacCatalyst, macOS, tvOS, WPF, WinUI
MS-PL License
Bot releases are visible (Hide)
Time for a new release of MvvmCross. Many thanks to all the contributors for this release.
There are a few breaking changes to this release, hence the bump of version to 4.4.0. There was also a minor issue with some nuspecs, which forced us to release 4.4.1 of a few AndroidSupport packages.
Breaking changes are noted at the end of each change log below.
In general all Windows Phone 8.0 projects have been removed as we do not support Silverlight anymore, in preparation for switching to .NETStandard.
Here is a change log for all the repositories.
MvvmCross (main repo)
266 files changed, 8787 insertions(+), 2963 deletions(-) compare
Breaking changes:
Namespaces in BindingEx have changed. Before they were all MvvmCross.BindingEx.WindowsPhone. This has now changed to MvvmCross.BindingEx.WindowsCommon in Windows Phone 8.1 and Windows 8.1 projects. It has changed to MvvmCross.BindingEx.Wpf in WPF projects.
266 files changed, 8787 insertions(+), 2963 deletions(-) compare
Breaking changes:
Namespaces in BindingEx have changed. Before they were all MvvmCross.BindingEx.WindowsPhone. This has now changed to MvvmCross.BindingEx.WindowsCommon in Windows Phone 8.1 and Windows 8.1 projects. It has changed to MvvmCross.BindingEx.Wpf in WPF projects.
MvvmCross-Plugins
446 files changed, 1280 insertions(+), 2890 deletions(-) compare
Added PreserveAttribute on plugins and PluginLoaders #140 @willsb
Updated to new Android Support library for DownloadCache #141 @martijn00
Simplify nuspec dependencies #142 @martijn00
Removed Windows Phone 8.0 projects @cheesebaron
Fixed duplicate PreserveAttribute in Json plugin @cheesebaron
Removed Bookmarks and SoundEffects plugins as they were only available for Windows Phone 8.0 @cheesebaron
446 files changed, 1280 insertions(+), 2890 deletions(-) compare
Added PreserveAttribute on plugins and PluginLoaders #140 @willsb
Updated to new Android Support library for DownloadCache #141 @martijn00
Simplify nuspec dependencies #142 @martijn00
Removed Windows Phone 8.0 projects @cheesebaron
Fixed duplicate PreserveAttribute in Json plugin @cheesebaron
Removed Bookmarks and SoundEffects plugins as they were only available for Windows Phone 8.0 @cheesebaron
MvvmCross-AndroidSupport
95 files changed, 1573 insertions(+), 759 deletions(-) compare
Possible breaking changes:
No namespace changes. However, classes have been moved around to match the structure of the Android Support packages.
Three new packages have been added, MvvmCross.Droid.Support.Core.UI, MvvmCross.Droid.Support.Core.Utils and MvvmCross.Droid.Support.Fragment.
Fragment related classes from MvvmCross.Droid.Support.v4, have been moved into MvvmCross.Droid.Support.Fragment.
MvxSwipeToRefreshLayout has been moved from MvvmCross.Droid.Support.v4 to MvvmCross.Droid.Support.Core.UI.
MvxWakefulBroadcastReceiver has been moved from MvvmCross.Droid.Support.v4 to MvvmCross.Droid.Support.Core.Utils.
95 files changed, 1573 insertions(+), 759 deletions(-) compare
Possible breaking changes:
No namespace changes. However, classes have been moved around to match the structure of the Android Support packages.
Three new packages have been added, MvvmCross.Droid.Support.Core.UI, MvvmCross.Droid.Support.Core.Utils and MvvmCross.Droid.Support.Fragment.
Fragment related classes from MvvmCross.Droid.Support.v4, have been moved into MvvmCross.Droid.Support.Fragment.
MvxSwipeToRefreshLayout has been moved from MvvmCross.Droid.Support.v4 to MvvmCross.Droid.Support.Core.UI.
MvxWakefulBroadcastReceiver has been moved from MvvmCross.Droid.Support.v4 to MvvmCross.Droid.Support.Core.Utils.
MvvmCross-iOSSupport
179 files changed, 4281 insertions(+), 479 deletions(-) compare
Added Tab name and icon to MvxTabPresentationAttribute #44 @nmilcoff
Fix width for screen rotation #45 @MarcBruins
Load sidebar only once #46 @mvanbeusekom
179 files changed, 4281 insertions(+), 479 deletions(-) compare
Added Tab name and icon to MvxTabPresentationAttribute #44 @nmilcoff
Fix width for screen rotation #45 @MarcBruins
Load sidebar only once #46 @mvanbeusekom
MvvmCross-Forms
136 files changed, 49054 insertions(+), 27063 deletions(-) compare
Time for a new release of MvvmCross. Many thanks to all the contributors for this release.
Here is a change log for all the repositories.
MvvmCross (main repo)
MvvmCross-Plugins
MvvmCross-AndroidSupport
MvvmCross-iOSSupport
We've just released MvvmCross 4.2.3 after a short holliday break.
Here is the list of changes between 4.2.2 and 4.2.3, the list is a bit short this time around; many of them are simple quality of life changes to the code in the repositories, such as fixing line endings on files.
To make sure you have your git client correctly set up please do the following to avoid crazy diffs.
On Windows
git config --global core.autocrlf true
On Mac
git config --global core.autocrlf input
If you are pulling changes on an already cloned repo, it might be necessary to do the following for your git client to recognize the changes to the files.
git rm --cached -r .
git reset --hard
The list of changes is as follows
MvvmCross main repo
IMvxViewModelInitializer
interface; describes async initialization of MvxViewModel
MvxExpandableListView
MvvmCross-AndroidSupport
MvxRecyclerViewHolder
methods made virtual, for easier inheritanceMvvmCross-Plugins
MvxLocationErrorCode
s added.IMvxRestClient
and IMvxJsonRestClient
in Network pluginNC<string>
to handle NotifyPropertyChanged for string typesMvvmCross-iOSSupport
No changes
It’s that time again - a brand new MvvmCross release!
With over more than 40 contributions this turns out to be a very nice release.
Changes across the board; both functionality, several bug fixes and performance improvements has made it in.
One of the more prominent changes is MvxTaskBasedBindingContext
datacontext bindings now occur on a worker thread, this should resulting in a smoother scrolling experience, especially when having several bindings on a row.
If you want the old behavior you can do so by overriding the Setup.cs as follows.
protected override void InitializeLastChance()
{
base.InitializeLastChance();
Mvx.RegisterType<IMvxBindingContext, MvxBindingContext>();
}
To take full advantage of the MvxTaskBasedBindingContext
,
you should also call ShouldAlwaysRaiseInpcOnUserInterfaceThread(false);
in the ViewModel
constructor.
Here is the list with changes for grouped by repository
Context
is not needed everywhereAndroid.Support.V7.Preferences.Preference
Activity
, not this.Activity
Subtitle
MvxTemplateSelector
instead of MvxItemTemplateSelector
MvxAppCompatSetupHelper.FillDefaultBindingNames
One breaking change is MvxAndroidTask
which had duplicate implementations before and lived in both MvvmCross.Droid.Platform
and MvvmCross.Platform.Droid.Platform
. There is now only one implementation of it living in MvvmCross.Platform.Droid.Platform
.
As mentioned in the beginning we have introduced MvxTaskBasedBindings
, this is a potentially breaking change. Especially when using ShouldAlwaysRaiseInpcOnUserInterfaceThread(false);
in your ViewModel, where you might get exceptions saying that UI must be updated on the UI thread. In such cases please open a GitHub Issue.
It's very nice to see that again the number of contributions outside the team of "usual suspects" is growing.
A huge thanks to everyone that participated and made this release happening. Now go out and make some cool apps!
We are proud to present the new MvvmCross logo:
MvvmCross have switched over to Readme.io for their website, blog, and documentation. All of this is part of a bigger change in the general style and branding of MvvmCross.
Since the project is growing and more people are joining in, to help us make MvvmCross more awesome than ever before, we are keen to keep you updated on changes, new features, samples, and other useful things. Readme.io helps us keeping track of changes to the documentation, and even you could propose an edit to any documentation page!
In addition to this we have restructured the GitHub repos. They are currently split up into:
We've cleaned up file names, class names, method names, namespaces, and package names. Your existing code will break if you update to MvvmCross 4.0 (sorry). We've compiled instructions to help your transition to MvvmCross 4.0 run as smoothly as possible.
We've developed a new system to show fragments with an Android MvvmCross App. Using Attributes on your MvxFragment classes you can show any fragment on any Activity!
It’s that time again - a brand new MvvmCross release!
With over more than 40 contributions this turns out to be a very nice release.
Changes across the board; both functionality, several bug fixes and performance improvements has made it in.
One of the more prominent changes is MvxTaskBasedBindingContext
datacontext bindings now occur on a worker thread, this should resulting in a smoother scrolling experience, especially when having several bindings on a row.
If you want the old behavior you can do so by overriding the Setup.cs as follows.
protected override void InitializeLastChance()
{
base.InitializeLastChance();
Mvx.RegisterType<IMvxBindingContext, MvxBindingContext>();
}
To take full advantage of the MvxTaskBasedBindingContext
,
you should also call ShouldAlwaysRaiseInpcOnUserInterfaceThread(false);
in the ViewModel
constructor.
Here is the list with changes for grouped by repository
Context
is not needed everywhereAndroid.Support.V7.Preferences.Preference
Activity
, not this.Activity
Subtitle
MvxTemplateSelector
instead of MvxItemTemplateSelector
MvxAppCompatSetupHelper.FillDefaultBindingNames
One breaking change is MvxAndroidTask
which had duplicate implementations before and lived in both MvvmCross.Droid.Platform
and MvvmCross.Platform.Droid.Platform
. There is now only one implementation of it living in MvvmCross.Platform.Droid.Platform
.
As mentioned in the beginning we have introduced MvxTaskBasedBindings
, this is a potentially breaking change. Especially when using ShouldAlwaysRaiseInpcOnUserInterfaceThread(false);
in your ViewModel, where you might get exceptions saying that UI must be updated on the UI thread. In such cases please open a GitHub Issue.
It's very nice to see that again the number of contributions outside the team of "usual suspects" is growing.
A huge thanks to everyone that participated and made this release happening. Now go out and make some cool apps!
The new iOS Support repo aims to make your life easier by providing all kind of standard classes and helpers for iOS.
In the initial version we added:
Let us know if you have idea's for this by adding an issue to the repo or submit a pull request.
[Register]
attributes for better ProGuard supportWe added a new issue template for all MvvmCross repositories, which better explains what we expect people to provide when filing issues.
A huge thanks to all the contributors for this release. It is really nice seeing so many people helping out where they can. Either by opening issues or chipping in with ideas or even better making pull requests. All your help is really appreciated!