It didn't entirely go to plan... I did hit some bugs along the way.
However, overall I got there in the end :)
Among the things this N+1 shows are:
- Adding some System.Threading.Timer functionality to the ViewModel - to provide dampening to the network query rate (during typing)
- Adding an IsLoading indicator to the ViewModel - so that I could show an IsLoading UI indicator (e.g. a spinner)
- Adding and using the Visibility plugin
- Adding a custom InverseBool ValueConverter
- A quick intro to adb - the Android Debug Bridge
- Adding the coding4fun NuGet package to help change WindowsPhone TextBox behaviour
- Fighting with Xamarin.iOS to get it to update the executable in the simulator
- Fixing bugs in lock(object) - sorry - should have spotted this bug quicker!
For this video to make sense, you may need to first watch the videos from:
- N=6 - Books over the Network - http://slodge.blogspot.co.uk/2013/05/n6-books-over-network-n1-days-of.html
- N=4 - ValueConverters - http://slodge.blogspot.co.uk/2013/04/n4-valueconverters-n1-days-of-mvvmcross.html
The code for today is at: https://github.com/slodge/NPlus1DaysOfMvvmCross/tree/master/N-07-BooksPlus
This code in GtiHub also includes the UI updates for the WindowsStore sample too - I didn't do these during the video as I'd already talked too long... Most of the WindowsStore changes use the same techniques as I used in WindowsPhone. The only exception was that in order to get real time updates from the textbox I had to pull in http://weblogs.asp.net/broux/archive/2012/07/03/windows-8-update-textbox-s-binding-on-textchanged.aspx - this also required lots of Reactive NuGet packages too.
The video is at:
That's all for now :)
If you've got special requests for future N+1's then let me know! Or if you want to contribute your own...
Previously in N+1:
- N=0 - a first application - http://slodge.blogspot.co.uk/2013/04/n0-first-mvvmcross-application-n1-days.html
- N=1 - tip calc - including the Android Designer and using IoC -http://slodge.blogspot.com/2013/04/n1-tipcalc-second-example-adding-ioc.html
- N=2 - Kittens - lists and tables - N=2: Lists and Kittens (N+1 days of MvvmCross)
- N=3 - Kitten Cells on iPhone - http://slodge.blogspot.co.uk/2013/04/n3-kitten-cells-on-iphone-n1-days-of.html
- N=4 - ValueConverters - http://slodge.blogspot.co.uk/2013/04/n4-valueconverters-n1-days-of-mvvmcross.html
- N=5 - ICommand and Multiple Pages - http://slodge.blogspot.co.uk/2013/04/n5-some-first-icommands-and-multiple.html
- N=6 - Books over the Network - http://slodge.blogspot.co.uk/2013/05/n6-books-over-network-n1-days-of.html
Hi Stuart,
ReplyDeleteThanks for the fantastic series. Regardging what can be added to the future N+1 sessions:
1. Examples of inter-view communication similar to what Greg did: http://www.gregshackles.com/2012/11/returning-results-from-view-models-in-mvvmcross/ I believe this is a very common challenge for many applications.
2. Example of reusing view models when views don't have one-to-one mapping between different platforms. E.g. Windows Store has larger screen size that can fit more details, and Windows Phone may need two split these details to two views.
Best regards
Vagif
Yes #1 would be great.
DeleteHi! MvvmCross is awesome and I have learnt a lot so far this week.
ReplyDeleteIn attempting my first real-world application, however, I have come across my first hurdle: Database persistence.
I see that you have a SQLite plugin on github. Will you be doing an N+1 on SQLite access and also providing the SQLite plugin on NuGet?
That would be truly awesome!
Thanks again for the work!
Steve
Thanks... I'll do more blog posts & videos soon - but you guys can too :) - post links to your posts and I'll promote them
DeleteAlso, one sample for data persistence is coming as soon as the evolve videos are out - due any day now :)
DeleteWhat are evolve videos?!?
DeleteVideos coming soon to http://xamarin.com/evolve/2013
Delete