Thursday, December 18, 2014

3.5.0-beta2 MvvmCross Unified beta release

We released a small update to the 3.5 "Unified" pre-releases last night.

This update was built with the alpha channel - Xamarin iOS 8.6

The changes since 3.2 are:

  • The inclusion of the new "Woah Fragments" architecture from Cheesebaron :)
  • The switch to the Xamarin Unified iOS API - with lots of updates as Xamarin's changes have evolved
  • The return of Generic base ViewController's and Activity's (No more Heisenbugs - hurrah!)
  • A new binding for UISegmentedControl's
  • Improvements to the way RaisePropertyChanged can be called
  • Improvement in Windows support for generic MvxCommand class
  • Small updates to LinkerPleaseInclude for both Android and iOS
  • WindowsPhone has Heading added to the geolocation plugin
We have also updated two packages - 3.5.0-beta3 for PortableSupport and 3.5.0-beta4 for StarterPack - these are to address small "Starter pack" issues.
 
Thanks hugely to everyone who's contributed - especially:


If you want to get involved, then please read https://github.com/MvvmCross/MvvmCross/issues/841 and please do join in :)

Saturday, November 22, 2014

3.2.2 release today


We've heard only good feedback about last months 3.2.2-beta1 - so we've pushed 3.2.2 to nuget and to the binaries repo as a full release **today**.

The changes in 3.2.2 are:
  • Additions to LinkerPleaseInclude for Activity.Title, CheckedTextView.Switch, UILabel.AttributedText, MvxViewController.Title
  • A fix for base class Dictionary deserialization
  • An optimisation for WinRT `File.Exists`
  • A fix for iOS 8 CoreLocation permissions
  • Email plugin fixes (thanks Mikkel Jensen)
  • Intent Title localization fixes (thanks Mikkel Jensen)
  • Yes!!! The return of Generic Views (thanks Stephanvs!)
  • A very important WinRT Media Capture fix (thanks Luke Barnett)
  • Heading included in WinPhone location plugin (thanks Marco Marche!)
  • Fragment namespace defuddling (thanks Jeremy Kolb)

THANKS for all of these awesome contributions... THANK YOU :)


----------------

Coming up after this will be 3.5 - which involves bigger changes - especially:

- for Android Fragments (from the most Excellent @cheesebaron)
- for iOS Unified support (from the most Excellent @kwlothrop)
- possibly for Windows navigation and tombstoning - see the discussions in https://github.com/MvvmCross/MvvmCross/pull/835 especially driven by the most Excellent @promontis and @dbeattie71

We're hoping to push an alpha out of some of this really very soon indeed... :)

Friday, October 24, 2014

MvvmCross 3.2.2-beta1 - and "coming soon"....

Yesterday we pushed the latest beta binaries to nuget and to the binaries repo.

The changes in 3.2.2-beta1 are:
  • Additions to LinkerPleaseInclude for Activity.Title and CheckedTextView.Switch
  • A fix for base class Dictionary deserialization
  • An optimisation for WinRT `File.Exists`
  • A fix for iOS 8 CoreLocation permissions

See the commits (and linked issues) in https://github.com/MvvmCross/MvvmCross/commits/3.2

Thanks to everyone who's sent us issues and pull requests - you are all awesome (sorry I'm very far behind with badges!)

-----


Coming up next - after 3.2.2 - are some important breaking changes - so we are consider 3.3 or higher for the next version.

These include:

- @Cheesebaron's excellent "Whoa Fragments" changes - https://github.com/MvvmCross/MvvmCross/pull/771
- @kwlothrop's superb Unified API changes -  https://github.com/MvvmCross/MvvmCross/pull/813

If you've got ideas/suggestions/requests about how we merge and release these breaking changes in, then please do join in on those github links.

Thanks all

Thursday, September 18, 2014

3.2.1 Released - One Windows support :)

I've pushed a final attempt at 3.2.1 to nuget :)

I've also made 3.2 the default branch on https://github.com/MvvmCross/MvvmCross


This build is finally out of beta as several people have now reported success with using the new Universal Project support :)

If you do find issues, then please do report them as you find them... we'll get the updates out there...

The main feature of this 3.2.1 build includes some marvellous WindowsCommon support - for Jupiter WindowsPhone Xaml with Windows 8.1 Xaml.

This is especially thanks to:

- the lovely https://github.com/jonstoneman and https://github.com/steveydee82 working at https://twitter.com/sequenceagency who have been pioneering lots of amazing shared code Jupiter apps
- the fab https://twitter.com/pedrolamas who makes the brilliant http://cimbalino.org/ and the rest of the team who work on my music player of choice - https://twitter.com/NokiaMixRadio

The support means you now must use a "new profile" like Profile 259 or Profile 78 to get working... don't blame me for this... blame Microsoft ;)

If you want to try this Jupiter code, then you can now try building a Universal WindowsPhone/WindowsStore app - using the new Universal projects - using the new "WindowsCommon" assemblies inside native projects or inside a PCL of profile 32.

I'm afraid we haven't updated all the N+1 and Tutorial samples to the new profiles - just haven't had the time to go through and do them all.

At a more detailed level, this build 3.2.1 includes:

  • Universal WindowsCommon app support
  • Fixes to Universal WindowsCommon PictureChooser and PhoneCall plugins
  • a fix for Title bindings in UIButton in iOS
  • some PictureChooser scaling and memory fixes (for iOS)
  • an infinite exception loop fix in the debug output sample files
  • nuget fixes for windowscommon
  • a default parameter added to WithConversion in fluent bindings
  • a null reference fix in the reflection code - when the linker has stripped out property getters/setters
  • a fix to improve ReloadState finding across multiple inhertiance hierarchy layers
  • ImeAction.Previous has been changed to match Xamarin's change of Android version
  • Json now has `ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize` set by default
  • A fix for double queryString escaping in WindowsPhone navigation
  • A fix for empty cc lists in the email plugin in iOS
  • An optimisation of resource image loading (fromBundle instead of fromFile) 
  • A fix for UIDatePicker centering in MT.Dialog
  • An attempted fix for weak ref issues with CanExecuteChanged in ICommand in iOS
  • A fix for multiple file flushes  in WriteFile in the File plugin


This 3.2.1 update did also includes some attempts at getting Symbols uploaded for nuget too - but this isn't quite finished yet... seems like this nuget functionality doesn't work without a little effort for multiple assemblies in the same nupkg.


This 3.2.1 build doesn't include any direct Xam.Forms support - https://twitter.com/Cheesebaron has pushed a fab sample about that to https://github.com/Cheesebaron/Xam.Forms.Mvx/ - beyond that Xamarin have also said there are some Mvx/Forms combination samples coming, but I don't have any inside info on these.

https://twitter.com/Cheesebaron has also done some fabulous Fragment changes recently - https://github.com/MvvmCross/MvvmCross/pull/771 - these will be included in a 3.3 release as soon as we have them ready :)

OK... that's all from me for now... huge thanks to the devs from Sequence Agency and to Microsoft/Nokia MixMusic for contributing their considerable skill, talent, effort and code to getting these Universal project changes included - thanks :)

Stuart

Monday, August 25, 2014

3.2.1-beta3 - more universal updates

I've pushed a third attempt at 3.2.1-beta3 to nuget :)

This build is still beta at present... I expect it'll have a few issues - so please do report them as you find them... we'll get the updates out there...

The main feature of this 3.2.1-beta3 build includes some marvellous WindowsCommon support - for Jupiter WindowsPhone Xaml with Windows 8.1 Xaml.

This is especially thanks to:

- the lovely https://github.com/steveydee82 who's working at https://twitter.com/sequenceagency who have been pioneering lots of amazing shared code Jupiter apps
- the fab https://twitter.com/pedrolamas who makes the brilliant http://cimbalino.org/ and the rest of the team who work on my music player of choice - https://twitter.com/NokiaMixRadio

The support means you now must use a "new profile" like Profile 259 or Profile 78 to get working... don't blame me for this... blame Microsoft :/

If you want to try this Jupiter code, then you can now try building a Universal WindowsPhone/WindowsStore app - using the new Universal projects - using the new "WindowsCommon" assemblies inside a PCL of profile 32. I don't have any samples of this at present - but I'd love to hear more about your experiments with this - I'm interested in hearing more about your experience with this new unified Microsoft platform!


At a more detailed level, since 3.2.1-beta1, this build also includes:


  • a fix for Title bindings in UIButton in iOS
  • some PictureChooser scaling and memory fixes (for iOS)
  • an infinite exception loop fix in the debug output sample files
  • nuget fixes for windowscommon
  • a default parameter added to WithConversion in fluent bindings
  • a null reference fix in the reflection code - when the linker has stripped out property getters/setters
  • a fix to improve ReloadState finding across multiple inhertiance hierarchy layers
  • ImeAction.Previous has been changed to match Xamarin's change of Android version
  • Json now has `ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize` set by default
  • A fix for double queryString escaping in WindowsPhone navigation
  • A fix for empty cc lists in the email plugin in iOS
  • An optimisation of resource image loading (fromBundle instead of fromFile) 
  • A fix for UIDatePicker centering in MT.Dialog
  • An attempted fix for weak ref issues with CanExecuteChanged in ICommand in iOS
  • A fix for multiple file flushes  in WriteFile in the File plugin


This 3.2.1-beta3 update did also includes some attempts at getting Symbols uploaded for nuget too - but this isn't quite finished yet... seems like this nuget functionality doesn't work without a little effort for multiple assemblies in the same nupkg.




This 3.2.1-beta3 build doesn't include any Xam.Forms support - https://twitter.com/Cheesebaron has pushed a fab sample about that to https://github.com/Cheesebaron/Xam.Forms.Mvx/ - beyond that Xamarin have also said there are some Mvx/Forms combination samples coming, but I don't have any inside info on these.


https://twitter.com/Cheesebaron has also done some fabulous Fragment changes recently - https://github.com/MvvmCross/MvvmCross/pull/771 - expect these to be in 3.2.1 soon too :)

OK... that's all from me for now... good luck with the updates :)

Stuart

 

Sunday, June 29, 2014

3.2.1-beta1 - beta universal support

I've pushed a first attempt at 3.2.1-beta1 to nuget :)

This build is very much beta at present... I expect it'll have a few issues - so please do report them as you find them... we'll get the updates out there...

The main feature of this 3.2.1-beta1 build includes some marvellous WindowsCommon support - for Jupiter WindowsPhone Xaml with Windows 8.1 Xaml.

This is especially thanks to:

- the lovely https://github.com/steveydee82 who's working at https://twitter.com/sequenceagency who have been pioneering lots of amazing shared code Jupiter apps
- the fab https://twitter.com/pedrolamas who makes the brilliant http://cimbalino.org/ and the rest of the team who work on my music player of choice - https://twitter.com/NokiaMixRadio

The support means you now must use a "new profile" like Profile 259 or Profile 78 to get working... don't blame me for this... blame Microsoft :/

If you want to try this Jupiter code, then you can now try building a Universal WindowsPhone/WindowsStore app - using the new Universal projects - using the new "WindowsCommon" assemblies inside a PCL of profile 32. I don't have any samples of this at present - but I'd love to hear more about your experiments with this - I'm interested in hearing more about your experience with this new unified Microsoft platform!






This 3.2.1-beta1 update also includes some attempts at getting Symbols uploaded for nuget too - but this isn't quite finished yet...

OK... that's all from me for now... good luck with the updates :)

Stuart

PS: This 3.2.1-beta1 build doesn't include any Xam.Forms support - https://twitter.com/Cheesebaron has pushed a fab sample about that to https://github.com/Cheesebaron/Xam.Forms.Mvx/ - beyond that Xamarin have also said there are some Mvx/Forms combination samples coming, but I don't have any inside info on these.

Wednesday, March 26, 2014

3.1.2-beta1 - work in progress but since people are asking...

Just pushing 3.1.2-beta1 out of the normal channels.

There are still a few items left that I want to squeeze into 3.1.2 - see https://github.com/MvvmCross/MvvmCross/issues?milestone=1&page=1&state=open

The issues fixed since 3.1.1 are:
  • Wpf Location Watcher added
     
  • Fix for NullRefExc in WindowsPhone Location Watcher
     
  • AsyncRequestHandle added to Rest/Network calls - allows cancel (but users should still consider using HttpClient)
     
  • Droid fix to Click TargetBinding - wrong unsubscribe in Dispose
     
  • Additional IoC overloads added - task based constructors for dynamic types
     
  • Unify use of IMvxBundle instead of MvxBundle in Navigation calls
     
  • Option to allow TableViewSource (and other collections) to always reset when INPC is fired
     
  • Multiple changes to File plugins - allowing Stream use
     
  • Fix to allow ErrorImage displayed in MvxImageView
     
  • Updates to nuget TODO files
     
  • Newtonsoft Json moved to a Nuget dependency!
     
  • Improvements in MvxCommandCollection - commands can now share CanExecuteChanged properties
  • Changes to non-Weak reference subscription for WindowsPhone MvxCommand implementation

More details later - gotta go run now :)

Monday, March 03, 2014

The awesome XPlatformCloudKit

I recently discovered a toolkit which is responsible for **lots** of MvvmCross apps.




I stumbled on this GitHub project via the Windows Developer Show podcast - http://windowsdevelopershow.com/2013/11/episode-138-xplat/



The toolkit itself is really powerful - it's quick to get started but has a modular approach allowing lots of future changes and extensions - e.g. it lets you hook up local files or Azure Mobile Services for data and it provides complete Windows Phone, Windows Store and Android templates.


The github readme is a great resource to get started - it has links to heaps of intro docs and videos, it talks you through the extensible and modular code, and it's already been used to hook up lots of apps including lots of game guides, restaurant menus and more - take a look at some of them on http://pjdecarlo.com/2013/12/awesome-apps-for-windows-phone-and-windows-8-built-with-xpck.html.






The author of this package is Microsoft Evangelist - Paul DeCarlo - pjdecarlo - and he's also recently been touring and talking about how to use it. Take a look at his blog for lots of fab info - pjdecarlo.com


Paul, this is awesome stuff - love seeing people shipping, making tools and making money from apps that they've built for all users on all platforms - simply fabulous! Definitely badge of awesomeness winning too! Super work - thanks :)


An awesome open source demo app from Asier Marqués

One awesome little self-contained demo I've recently stumbled upon is this small Euro-Dollar conversion app from @asiermarques



Looks really neat - a fab starting place for anyone interested in seeing how to build an app. Thanks @asiermarques - awesome :)

Saturday, March 01, 2014

Awesome enterprise sample from Jeremy Ellis (Misterdos)

I'm not going to say much about this talk.

I'm jut going to order you to go to https://github.com/ellisnet/MNEnterpriseMobile

Go there now

https://github.com/ellisnet/MNEnterpriseMobile

Check out the slides too in the same repo


BTW have you been to the repo yet?

https://github.com/ellisnet/MNEnterpriseMobile

Awesome
Awesome
Awesome

@misterdos - top work - badge winningly wonderful.









Some recent awesome MvvmCross apps :)

There are hundreds of you out there building MvvmCross apps. I hope you're all having an awesome time.


Some of the awesome MvvmCross apps that I know about and have recently seen published are:


Bosch



MyStudyLife



Honeywell Now





Bruel & Kjaer - Noise Sentinel

Including work from massively badge-winning awesome @cheesebaron

Full info at:  http://noisesentinel.bksv.com


IBM Pre Sales




Nokia MixRadio


More?

Do you know of others which should be included? Let me know and I'll post them :)

Friday, February 28, 2014

Windy Talking Awesomeness


2014 started with a burst of awesomeness in Chicago



@andyattebery and @johnsprunger - one of my spies reported back and told me this talk was awesome :) Top work - badge of awesomeness winning talking. Thank you!



Some say...


Some say that he uses Linq2Spaghetti to eat his dinner and that he does the dishes afterwards in a-sync. All we know is that he's called @dsplaisted




What can we say?

Follow his PCL blogging and tweeting now...  http://blogs.msdn.com/b/dsplaisted/ and @dsplaisted


Awesome - badge #5





MvvmCross needed a hero...

Running the MvvmCross open source project is amazing.

And, there are a lot of amazing people who contribute really clever ideas and things - thank you all :)

But beyond that, there's also a lot of hard work that goes on - lots of "maintenance".

This is especially the case when things break in dependent technologies - e.g. when Apple, Microsoft, Google or Xamarin change an underlying tool or API.

One of the biggest changes that happened last year was the change in PCLs - with Microsoft opening the licensing on the technology and with Xamarin partnering to provide official support. This was a fabulous moment - especially after 18 months of struggling against the file-linking flow. But the way it turned out also meant that all the existing MvvmCross samples and N+1s were immediately out-of-date. For N+1, this meant there were 40 solutions - each with 3 or more projects - all of which needed loading, updating and testing.

This needed a hero...

And it found one:


Kerry - THANK YOU - beyond awesome and totally deserving of badge of awesomeness #2!




And here's a plug for your podcast too:

Thursday, February 27, 2014

What the F# is that?

Over Christmas, while I was skiing, stuffing my face, and relaxing, this series of tweets came in...





Now, I'm still not sure what this code all does - I'm still working my way up to Type Providers in my "C# to F#" book - but this sort of code looks amazeballs!


Will Smith - thank you - it is really inspiring to see devs creating the future of apps - thank you - a badge of awesomeness is **very thoroughly** deserved!


Awesome Mvvm - at home on Windows

We've seen quite an upturn in the number of "Windows" developers using MvvmCross recently - lots of people build across WindowsPhone, WindowsStore and WPF. This is fab - long live .Net on Windows :)


To help them along the way, there's also been quite a few awesome bloggers posting "tips and tricks" stories.


Among the highlights are:





These are all excellent - really good reads and really help people get booted into writing portable, testable, awesome code.


Thanks to you all for such awesome work - a badge of awesomeness for each of you!



Wednesday, February 26, 2014

Greg Shackles, awesome talks and awesome Text Auto-Formatting

Since we last caught up with Greg getting badge #2 back in October, @gshackles has been giving yet more talks - both face to face in http://shackl.es/1bf2HBB and virtually at the Dallas group (http://www.dfwmobile.net/building-multi-platform-native-apps-with-mvvm-and-c/#more-581)


Beyond that he's also been porting and releasing some very sexy looking custom controls - Auto-Formatting Text Inputs with MvvmCross and Value Converters http://shackl.es/17HIKRQ  #mvvmcross #Xamarin - and he's been cutting and shipping some really good code in his day job too.


It's a fab and easy call - Awesomeness Badge #3 to @gshackles - MvvmCross owes you heaps!



HttpClient Awesomeness


To many people `async` is old hat now...


But to many of us it's still quite new :)


But, **wow** is it awesome :)


Just like with Linq, to start with it doesn't feel that big a deal, but later - after you've been using it a bit - then you know that you are never going back :)


One of the first `async` components that people come across is `HttpClient`. Using this makes async network code really wonderfully writeable and readable :)


from https://github.com/Cheesebaron/RottenTomatoSample


Further, when you use `HttpClient` on iOS, it isn't just better looking code - it can also be better performing code - as it can make use of the native iOS HttpHandling instead of the Mono .Net one.


Last year, PaulBetts produced a github repo to assist with this http://log.paulbetts.org/fast-http-with-modernhttpclient/


To integrate that back into the PCL world of MvvmCross, a couple of regular MvvmCross contributors have posted lots of useful links:





This is awesome - and well deserving of badges #6 and #2 for Tomascz and Michael




AWESOMENESS!!!!

... although actually right now I seem to be missing a post... where is the first badge for @rid00z - will go hunt!

Portable Awesomeness - thanks Microsoft!

As some of you know, MvvmCross has been "quite keen on PCLs" for a couple of years now.


The path to PCL hasn't always been easy though - there have been lots of technical, tooling and legal hiccups along the way....


Last November something awesome happened...


Microsoft opened up their PCL licensing to allow PCLs to freely build and run on other platforms.


This really is awesome... so here's a badge of awesomeness to Microsoft - not sure who's going to accept it on Microsoft's behalf - but just wanted to say THANKS to the engineers, to the leaders and even to the lawyers for making such an awesome decision and for pushing it through to delivery :)

Awesome talking (and talking and talking and...)

A couple of long-term supporters of MvvmCross gave talks last November - Gitte @GitteTitter and Kevin @deapsquatter






As ever... Gitte (*4) and Kevin (*5)... 100% awesome




Thank you!

Awesome ActionBarSherlock!

Long term supporter @nitescua published this helpful setup guide for basic ActionBarSherlock use in MvvmCross last year


It's fab - and it's something that many .Net developers need to know!


Thanks - Badge of Awesomeness #1 is yours. Thank you!


Look East for Awesomeness!

In the last few months, we've seen a real surge in interest in MvvmCross from the East.


I'm afraid I haven't been able to follow all the discussions and developments that have happened - my language skills are limited to BabelFish tools - sorry! -  but I have seen a few awesome looking blog posts appearing, and I wanted to take this opportunity to say "Thanks" to some of the fab Chinese and Japanese (and beyond?) developers who've been helping to share the project beyond the English audience.


Than you guys - badges of awesomeness for each of you:



------\

------


------



Badges of awesomeness well earned - thanks to all!






I especially wanted to say THANKS to @amay077 - your posts and tweets have kept me especially entertained and babelfish especially busy - and I think it's you that's behind the lovely "Black&White" app - congratulations on an app success and thank you for "Advent" blogging about MvvmCross - and about RxUI and QuickCross too :)


User Group AwesomeSauce!

Several user groups have recently been experimenting with MvvmCross.

Two really exception groups have been:


  • the Nashville Xamarin meetup which help #mvxember 
  • the Dallas user group which is currently pushing through an awesome mobile bootcamp.


Both of these initiatives are really fabulous!


Thank you all - and by way of thanks here are two badges of awesomeness for some of your organisers:






Really awesome stuff - thanks - enjoy your badges - well earned!




James Montemagno James Montemagno James Montemagno

James Montemagno
James Montemagno
James Montemagno...


We knew Xamarin were smart ... and they proved and improved this when they hired James :)


And boy do they seem to be keeping you busy....


But they couldn't keep you busy over Christmas - and look what happened as a result:





MeetupManager is awesome!

Everyone should check it outhttps://github.com/jamesmontemagno/MeetupManager

Badge winning awesome. Badge Number 3



James, you're a genius - thanks!

Sunday, February 09, 2014

3.1.1 - pushed to binaries and to nuget

I've pushed 3.1.1 to nuget and to MvvmCross Binaries

The complete list of changes from 3.0.14 is below.

The main thing to be aware of is:

MvvmCross is now on profile 158 and so now does have official Xamarin support... but no longer supports WP7


The list for 3.1.2 is already forming on https://github.com/MvvmCross/MvvmCross/issues?milestone=1&page=1&state=open


Thanks to everyone who has contributed - you're all awesome and wonderful


Stuart




Changes in 3.1.1-beta1:

  • Switch to profile 158 for all portable assemblies
  • Switch to WP8 for all WindowsPhone projects - plus System.Windows.Interactivity dependency updated to 3.9.5
  • Fragging now uses the Google Xamarin.Android v4 support library rather than the Mono.Android one.
  • Html email fix for Android
  • Changes to nuget referencing (especially WP8 and SL5)
  • To avoid angst, the existing SQLite plugin is no longer marked "obsolete" - I still encourage everyone to switch to the new community plugin as it is the better plugin (and I encourage people to step forwards to take over the admin of this too!)
  • Improved helper method for subscribing to Interaction events
  • A draft IMvxComposeEmailTaskEx interface has been added to the mail plugin allowing attachments and multiple addresses on some platforms. More work is still needed here


Changes in 3.1.1-beta2:

  • softlion's Accessory fix for Content in Xamarin.iOS table cells
  • removal of the unused Content set property accessor in in Xamarin.Android list view items
  • inclusion of more efficient Exists methods in Windows Store
  • allowing non-void command methods in CommandCollectionBuilder
  • an attempt at fixing the KitKat spinner inflation problem thanks especially to Cheesebaron
  • an initial Community SQLite 158 port thanks to CreepyGnome and Tofutim

Changes in 3.1.1-beta3 and 3.1.1-beta4:

  • Android Email attachment thanks to @holgmans
  • MvxNativeValueConverter inner-wrapper access thanks to @damirarh
  • Tibet leak fixed for Xaml platforms
  • Tabs fragment provide hook to allow transitions thanks to @softlion
  • Droid Honeycomb list activation code included - thanks to several people
  • MvxCommand changed to use weak reference event manager
  • Droid Click and iOS TouchUpInside bindings changed to use CanExecuteChanged
  • Company name included in all assemblies (to stop Windows Store complaining!)
  • LayoutBorderWidth binding added in iOS - thanks to @stephanvs

Changes in 3.1.1-beta5:

  • ImagePicker graceful handling of corrupt Android image files
  • Fix for Tibet binding - functional form of ValueConverter calling now allows better handling for True, False and Null
  • Minor fixes for a couple of improved trace messages 
  • Refactor of MvxViewsContainer - Setup can now more easily override IMvxViewsContainer creation.
  • IoC - warn users if we detect circular resolution
  • IoC - provide PropertyInjector
  • Fix for CanExecuteChanged binding on Touch - weak references were too weak.

Changes in from beta5 to 3.1.1 release:

  • Default binding provided for UIProgressView
  • NativeValueConverter improved (virtual methods provided)
  • MvxColor debug output improved (argb not rgba)
  • MvxViewModelLoader now initialised more cleanly as a singleton
  • FolderExists improved in WindowsStore File plugin
  • Null target handling improved in Windows BindingEx
  • Null evaluation fixed for Tibet binding

Wednesday, February 05, 2014

The MvvM in Spain falls mainly on the awesome

Spain seems to have an abundance of really awesome developers - and we've been lucky to have seen several of them using MvvmCross during the last few years.

One recent contributor is Christian Ruiz -  ‏@_christian_ruiz

He's been active as both a talker and as a plugin publisher - and it's awesome:

- presenting webcasts


- publishing a fab navigation-by-control presenter plugin:



Christian - this is awesome - thanks! It's a privilege to award you to **2** badges of awesomeness for all this work. Thank you! Gracias!



Tuesday, February 04, 2014

Patrick's awesome WCF with Portable Class Library blog post

I'm not really a typical .Net dev.

There's quite a few bits of "every day" .Net that I've never touched.

One of these is WCF - it's just something that I've never really used... and as a result there's a gap in MvvmCross and my blogging and videoing - WCF's not something I've really hooked up with...

And into that gap has stepped http://gofarfetched.blogspot.com - Patrick McCurley




This is awesome - a really excellent well-written blog post! For example, look at some of the diagrams:




If you're into MvvmCross, I highly recommend it for a read - it shows some really nice architecture patterns - it's a well-written app as well as post!


Thank you gofarfetched - a total pleasure to award this badge of awesomeness!



Awesome MvvmCross Validation from Jerel R Hass

One of the things that's been on my personal todo list for a long time is to look at Validation...

I've got some vague ideas about "new bindings" that I might use to really take automated validation in a new direction.

Aren't vague ideas wonderful... ?

No!

Especially not when you've got code to ship and customer demanding things...

So while I'm still off dreaming about things that I might one way do, @agies1 has been off and produced a **real** and really useful working validation plugin that we can all use today!



This is awesome - check it out - https://github.com/Agies/MVVMCross.Plugins.Validation/ - it's 100% deserving of a Badge Of Awesomeness - 110% in fact (there goes my validation!) - thanks @agies1 - awesome!


Saturday, February 01, 2014

3.1.1-beta5 ... consider this a release candidate please :)

I've just pushed 3.1.1-beta5 to the binaries repository and to nuget

All the changes since 3.0.14 stable are detailed below.

The main things to flag since the last beta are:

  • changes to IoC to help users detect when circular dependencies go wrong
  • changes to IoC to make it easier to enable property injection
  • fixes to MvxCommand CanExecuteChanged binding - the weak event references were too weak on iOS


Note: Community-Sqlite is still on 3.1.1-beta4 - there are no changes to this plugin at this time.

I am **really** hoping that this is the final beta.... we definitely need to release a full 3.1.1 release soon!

After 3.1.1 is release, there are a few things lined up for 3.1.2 already :)








Changes in 3.1.1-beta1:


  • Switch to profile 158 for all portable assemblies
  • Switch to WP8 for all WindowsPhone projects - plus System.Windows.Interactivity dependency updated to 3.9.5
  • Fragging now uses the Google Xamarin.Android v4 support library rather than the Mono.Android one.
  • Html email fix for Android
  • Changes to nuget referencing (especially WP8 and SL5)
  • To avoid angst, the existing SQLite plugin is no longer marked "obsolete" - I still encourage everyone to switch to the new community plugin as it is the better plugin (and I encourage people to step forwards to take over the admin of this too!)
  • Improved helper method for subscribing to Interaction events
  • A draft IMvxComposeEmailTaskEx interface has been added to the mail plugin allowing attachments and multiple addresses on some platforms. More work is still needed here


Changes in 3.1.1-beta2:

  • softlion's Accessory fix for Content in Xamarin.iOS table cells
  • removal of the unused Content set property accessor in in Xamarin.Android list view items
  • inclusion of more efficient Exists methods in Windows Store
  • allowing non-void command methods in CommandCollectionBuilder
  • an attempt at fixing the KitKat spinner inflation problem thanks especially to Cheesebaron
  • an initial Community SQLite 158 port thanks to CreepyGnome and Tofutim

Changes in 3.1.1-beta3 and 3.1.1-beta4:

  • Android Email attachment thanks to @holgmans
  • MvxNativeValueConverter inner-wrapper access thanks to @damirarh
  • Tibet leak fixed for Xaml platforms
  • Tabs fragment provide hook to allow transitions thanks to @softlion
  • Droid Honeycomb list activation code included - thanks to several people
  • MvxCommand changed to use weak reference event manager
  • Droid Click and iOS TouchUpInside bindings changed to use CanExecuteChanged
  • Company name included in all assemblies (to stop Windows Store complaining!)
  • LayoutBorderWidth binding added in iOS - thanks to @stephanvs

Changes in 3.1.1-beta5:

  • ImagePicker graceful handling of corrupt Android image files
  • Fix for Tibet binding - functional form of ValueConverter calling now allows better handling for True, False and Null
  • Minor fixes for a couple of improved trace messages 
  • Refactor of MvxViewsContainer - Setup can now more easily override IMvxViewsContainer creation.
  • IoC - warn users if we detect circular resolution
  • IoC - provide PropertyInjector
  • Fix for CanExecuteChanged binding on Touch - weak references were too weak.

IoC PropertyInjection in the next MvvmCross 3.1 release

Just posted this in https://github.com/MvvmCross/MvvmCross/wiki/Service-Location-and-Inversion-of-Control#wiki-what-if-i-want-to-use-property-injection-as-an-ioc-mechanism

-----

From v3.1 of MvvmCross, Property Injection is supported in the default IoC container.

To enable this injection, you need to change your app Setup so that it overrides CreateIocOptions()

There are currently two ways you inject into properties:
  • inject only into marked interface properties - MvxInjectInterfaceProperties
  • inject into all interface properties - AllInterfaceProperties

In both cases, MvvmCross will perform the property injection as soon as construction is completed.
One further option is that the MvvmCross IMvxPropertyInjector can be used independently - you can choose to use this on your options if you want to.

MvxInjectInterfaceProperties

If you override options as:
  protected override IMvxIoCOptions CreateIocOptions()
  {
      return new MvxIocOptions() 
      {
                PropertyInjectorOptions = new MvxPropertyInjectorOptions.MvxInject
      }; 
  }
then this will enable injection into public writeable properties which are declared as interfaces and which have an MvxInject attribute - e.g. Foo below:
   public class MyViewModel : MvxViewModel
   {
       [MvxInject]
       public IFooService Foo { get; set; }
   }

AllInterfaceProperties

If you override options as:
  protected override IMvxIoCOptions CreateIocOptions()
  {
      return new MvxIocOptions() 
      {
                PropertyInjectorOptions = MvxPropertyInjectorOptions.All
      }; 
  }
then this will enable injection into public writeable properties which are declared as interfaces - e.g. Bar below:
   public class MyViewModel : MvxViewModel
   {
       public IBarService Bar { get; set; }
   }

Using IMvxPropertyInjector directly

You can inject into your own objects independently of the MvvmCross IoC Container.
To do this, you can use:
 var injector = new MvxPropertyInjector()
or
 var injector = Mvx.Resolve();
and then:
 var foo = new Foo();
 injector.Inject(foo, MvxPropertyInjectorOptions.MvxInject);
or:
 var bar = new Bar();
 injector.Inject(bar, MvxPropertyInjectorOptions.All);

Sunday, January 26, 2014

3.1.1-beta4 released (we skipped 3.1.1-beta3!)

I've just pushed 3.1.1-beta4 to the binaries repository and to nuget

The changes since 3.0.14 stable are detailed below.

The main things to flag since the last beta are:
  • changes to Tibet binding on Windows - fixing leaks
  • changes to MvxCommand - it now uses weak event references
  • changes to Click binding on Droid and TouchUpInside binding on iOS - these now use the CanExecute method and CanExecuteChanged event
  • changes to MvxSpinner for Android 4.4 KitKat - these are especially likely to cause issues for people using MvxSpinner - please check your User Interfaces!

I am hoping that this is the final beta.... we definitely need to release a full 3.1.1 release soon!



Changes in 3.1.1-beta1:

  • Switch to profile 158 for all portable assemblies
  • Switch to WP8 for all WindowsPhone projects - plus System.Windows.Interactivity dependency updated to 3.9.5
  • Fragging now uses the Google Xamarin.Android v4 support library rather than the Mono.Android one.
  • Html email fix for Android
  • Changes to nuget referencing (especially WP8 and SL5)
  • To avoid angst, the existing SQLite plugin is no longer marked "obsolete" - I still encourage everyone to switch to the new community plugin as it is the better plugin (and I encourage people to step forwards to take over the admin of this too!)
  • Improved helper method for subscribing to Interaction events
  • A draft IMvxComposeEmailTaskEx interface has been added to the mail plugin allowing attachments and multiple addresses on some platforms. More work is still needed here


Changes in 3.1.1-beta2:

  • softlion's Accessory fix for Content in Xamarin.iOS table cells
  • removal of the unused Content set property accessor in in Xamarin.Android list view items
  • inclusion of more efficient Exists methods in Windows Store
  • allowing non-void command methods in CommandCollectionBuilder
  • an attempt at fixing the KitKat spinner inflation problem thanks especially to Cheesebaron
  • an initial Community SQLite 158 port thanks to CreepyGnome and Tofutim

Changes in 3.1.1-beta3 and 3.1.1-beta4:

  • Android Email attachment thanks to @holgmans
  • MvxNativeValueConverter inner-wrapper access thanks to @damirarh
  • Tibet leak fixed for Xaml platforms
  • Tabs fragment provide hook to allow transitions thanks to @softlion
  • Droid Honeycomb list activation code included - thanks to several people
  • MvxCommand changed to use weak reference event manager
  • Droid Click and iOS TouchUpInside bindings changed to use CanExecuteChanged
  • Company name included in all assemblies (to stop Windows Store complaining!)
  • LayoutBorderWidth binding added in iOS - thanks to @stephanvs

Friday, January 03, 2014

Happy New Year - 3.1.1-beta2

Happy 2014! Hope you all have an Appy one :)

I've just pushed 3.1.1-beta2 to nuget.

This includes all the previous changes - listed here - http://slodge.blogspot.co.uk/2013/12/v311-beta.html

Additionally, this includes:

  • softlion's Accessory fix for Content in Xamarin.iOS table cells
  • removal of the unused Content set property accessor in in Xamarin.Android list view items
  • inclusion of more efficient Exists methods in Windows Store
  • allowing non-void command methods in CommandCollectionBuilder
  • an attempt at fixing the KitKat spinner inflation problem thanks especially to Cheesebaron
  • an initial Community SQLite 158 port thanks to CreepyGnome and Tofutim 





Please do let me know if you spot any problems or opportunities with this new release - I do hope we'll get a non-beta release out really soon!


Happy 2014 again!


Stuart