Skip to content

Releases: MvvmCross/MvvmCross

4.3.0

03 May 09:48
Compare
Choose a tag to 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)

  • Fixed more line endings
  • Added new Target Binding to bind an MvxImageView on Android to a Resouce Name using the ResourceName target property #1417 @fedemkr
  • Fixed Splash Screen initialization #1420 @andyci
  • Added decimal handing to Value Combiners #1421 @willsb
  • Fixed backstack flag not respected in MvxCachingFragmentActivity #1430 @thefex
  • Added event for ViewDidLayoutSubviews on iOS #1435 @Costo
  • Added more [Register] attributes to Android classes to improve stack traces #1433 @kjeremy
  • Added MvxIntentService and MvxBroadcastReceiver on Android, which ensures MvvmCross is initialized #1426 @thefex
  • Fixed more line endings
  • Added new Target Binding to bind an MvxImageView on Android to a Resouce Name using the ResourceName target property #1417 @fedemkr
  • Fixed Splash Screen initialization #1420 @andyci
  • Added decimal handing to Value Combiners #1421 @willsb
  • Fixed backstack flag not respected in MvxCachingFragmentActivity #1430 @thefex
  • Added event for ViewDidLayoutSubviews on iOS #1435 @Costo
  • Added more [Register] attributes to Android classes to improve stack traces #1433 @kjeremy
  • Added MvxIntentService and MvxBroadcastReceiver on Android, which ensures MvvmCross is initialized #1426 @thefex

MvvmCross-Plugins

  • Fixed DownloadCache and File plugin loading order issues #128 @SeeD-Seifer
  • Fixed JsonSerializer uses Settings from Setup #129 @Dexyon
  • Switched to sqlite-pcl-net from Frank Krueger as it supports Android N @cheesebaron
  • Fixed always return StatusCode in Mvx*RestClient @xBoogieManx
  • Added Email plugin for UWP and WPA #134 @eshy
  • Fixed remove files from delete queue after they have been deleted in DownloadCahche #138 @Costo
  • Fixed DownloadCache and File plugin loading order issues #128 @SeeD-Seifer
  • Fixed JsonSerializer uses Settings from Setup #129 @Dexyon
  • Switched to sqlite-pcl-net from Frank Krueger as it supports Android N @cheesebaron
  • Fixed always return StatusCode in Mvx*RestClient @xBoogieManx
  • Added Email plugin for UWP and WPA #134 @eshy
  • Fixed remove files from delete queue after they have been deleted in DownloadCahche #138 @Costo

MvvmCross-AndroidSupport

  • Fixed back stack flag not respected #290 @thefex
  • Added MvxWakefulBroadcastReceiver with initialization support #293 @thefex
  • Added [Register] attributes for better stack traces #298 @kjeremy
  • Fixed back stack flag not respected #290 @thefex
  • Added MvxWakefulBroadcastReceiver with initialization support #293 @thefex
  • Added [Register] attributes for better stack traces #298 @kjeremy

MvvmCross-iOSSupport

4.2.3

03 May 09:47
Compare
Choose a tag to compare

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

  • Normalized line endings
  • Added IMvxViewModelInitializer interface; describes async initialization of MvxViewModel
  • ResourceHelpers now looks up correct stylables for MvxExpandableListView

MvvmCross-AndroidSupport

  • Updated to latest Xamarin.Android Support packages
  • Removed unused json plugin dependency from AppCompat library
  • Added missing dependency on MvvmCross.Binding in AppCompat library
  • MvxRecyclerViewHolder methods made virtual, for easier inheritance
  • Normalized line endings

MvvmCross-Plugins

  • Better error handling for Location plugins. New MvxLocationErrorCodes added.
  • Added missing methods in IMvxRestClient and IMvxJsonRestClient in Network plugin
  • Normalized line endings
  • Updated README for ResxLocalization plugin
  • Added NC<string> to handle NotifyPropertyChanged for string types
  • Changed SQLite connection factory to Generic for WPF to support OS X

MvvmCross-iOSSupport

No changes

4.2.1

03 May 09:46
Compare
Choose a tag to compare

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.

Changes

Here is the list with changes for grouped by repository

MvvmCross

  • Null­propagation for event handlers
  • Move away from MvxAndroidTargetBinding and use MvxConvertingTargetBinding as Context is not needed everywhere
  • Dispose of the base after cleaning up the derived instance
  • Add binding for TextView.Hint
  • Use drawable instead of resource, which is not UI thread bound
  • Don't resubscribe in Dispose
  • Fix failing ViewModel unit tests
  • Unsubscribe events in bindings
  • Remove LINQ from ReflectionExtensions (micro optimization)
  • MultiRegionViewPresenter ­ Support frame search failure
  • Add UI refresh control bindings
  • Allows binding to EditTextPreference.Text and TwoStatePreference.Checked
  • Cache Java.Lang.Boolean.True since in Xamarin it results in a JNI call
  • Raise AttachCalled with the passed in activity, not this.Activity
  • Animate UICollectionView changes
  • Generic MvxAdapter implementation
  • Ignore transparent proxies on Mono
  • Added Code of Conduct
  • UWP ­ Fixed 'ViewModel.Close(this)'
  • Use Reflection instead of Expression.Compile() to speed up bindings

Plugins

  • Don't reset the UIImagePickerController Delegate after successfully picking an image

AndroidSupport

  • Move displaying fragment out of request from OnCreate to OnNewIntent
  • Make bindings MvxConvertingTargetBinding
  • Register classes with java namespaces
  • Remove unneeded MvxAppCompatListView, which fixes casting exceptions
  • Cleanup recyclerview
  • Unsubscribe from all events in bindings
  • Bind to Android.Support.V7.Preferences.Preference
  • Raise AttachCalled with the passed in Activity, not this.Activity
  • Add binding for Toolbar's Subtitle
  • Look for MvxTemplateSelector instead of MvxItemTemplateSelector
  • Simplify event invocation
  • Call MvxAppCompatSetupHelper.FillDefaultBindingNames

iOSSupport

  • Handle default behaviour for SidePanel presenter

Breaking changes

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!

4.2.0

05 Jul 06:54
Compare
Choose a tag to compare

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.

Changes

Here is the list with changes for grouped by repository

MvvmCross

  • Null­propagation for event handlers
  • Move away from MvxAndroidTargetBinding and use MvxConvertingTargetBinding as Context is not needed everywhere
  • Dispose of the base after cleaning up the derived instance
  • Add binding for TextView.Hint
  • Use drawable instead of resource, which is not UI thread bound
  • Don't resubscribe in Dispose
  • Fix failing ViewModel unit tests
  • Unsubscribe events in bindings
  • Remove LINQ from ReflectionExtensions (micro optimization)
  • MultiRegionViewPresenter ­ Support frame search failure
  • Add UI refresh control bindings
  • Allows binding to EditTextPreference.Text and TwoStatePreference.Checked
  • Cache Java.Lang.Boolean.True since in Xamarin it results in a JNI call
  • Raise AttachCalled with the passed in activity, not this.Activity
  • Animate UICollectionView changes
  • Generic MvxAdapter implementation
  • Ignore transparent proxies on Mono
  • Added Code of Conduct
  • UWP ­ Fixed 'ViewModel.Close(this)'
  • Use Reflection instead of Expression.Compile() to speed up bindings

Plugins

  • Don't reset the UIImagePickerController Delegate after successfully picking an image

AndroidSupport

  • Move displaying fragment out of request from OnCreate to OnNewIntent
  • Make bindings MvxConvertingTargetBinding
  • Register classes with java namespaces
  • Remove unneeded MvxAppCompatListView, which fixes casting exceptions
  • Cleanup recyclerview
  • Unsubscribe from all events in bindings
  • Bind to Android.Support.V7.Preferences.Preference
  • Raise AttachCalled with the passed in Activity, not this.Activity
  • Add binding for Toolbar's Subtitle
  • Look for MvxTemplateSelector instead of MvxItemTemplateSelector
  • Simplify event invocation
  • Call MvxAppCompatSetupHelper.FillDefaultBindingNames

iOSSupport

  • Handle default behaviour for SidePanel presenter

Breaking changes

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!

4.1.0

04 Apr 07:48
Compare
Choose a tag to compare

iOS Support Repository

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:

  • ViewExtensions
  • MvxBaseViewController
  • MvxExpandableTableViewSource
  • JASidePanels

Let us know if you have idea's for this by adding an issue to the repo or submit a pull request.

Main Repository

  • Improved NotifyDataSetException messages
  • Added MvxCollectionReusableView for binding of UICollectionReusableView on iOS
  • Fix for Replace Animations for TableView on iOS
  • Added helpers for localization with fluent bindings
  • Fixed MvxWindowsMultiRegionViewPresenter not searching for nested frames
  • Added missing JNI interop constructors for several classes
  • Improvements to how Bitmaps are handled in MvxImageView and MvxImageViewHelper
  • Added Swipe Gestures for iOS
  • Added Value target binding for UIStepper
  • Added ValueChange command binding for UIControl (UIStepper, UISlider and many more)
  • Loads of additions to Analyzers

Plugins

  • Renamed deleteExisitingTo to overwrite in File plugin
  • Added TryCopy method for non-Windows platforms
  • Not eating useful exceptions on Windows in File plugin
  • Added RESX Localization plugin
  • Added OpenFlags to SQLiteConfig in SQLite-PCL plugin
  • Added Bindings as dependency for MethodBindings and FieldBindings nuspec
  • Improved concurrency in MvxImageCache
  • Updated Android.Support packages to 23.1.1.1

AndroidSupport

  • Lowercased namespaces in all [Register] attributes for better ProGuard support
  • Added more extension points by making methods virtual in classes
  • Fix issue with backstack in CachingFragmentCompatActivity (CFCA)
  • Fix issue with rotation in CFCA
  • Updated Android.Support packages to 23.1.1.1
  • Added FloatingActionButton Scroll behavior
  • Added Backstack property for FragmentAttribute to allow fragment being put onto back stack

All Repositories

We 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!

4.0.0

05 Jul 06:55
Compare
Choose a tag to compare

New website and logo

We are proud to present the new MvvmCross logo:
alt text

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:

New namespaces and package names

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.

Android-support

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!