Music is something we at VerySoftware love. Whether it’s music to work to, music to relax to, music to dance to or music to rock out to, we believe that there is a tune for every moment. Most importantly, we feel that music is something to be shared. This is the inspiration behind our latest creation – Tunee.
The final part of my series of blog posts covering the code tips and tricks I shared at UK Tech.Days 2011, is about providing users with an improved experience when they are forced to re-install your application, whether that be due to them migrating to a new phone, or a bug forcing them to uninstall it.
So what’s the problem? Well when a user reinstalls your app they have to start from scratch, any settings/customisations they make to your app are lost and this barrier to re-entry can sometimes force users to simply go elsewhere. In an ideal world a user should be presented with the option to restore their settings/customisations to you app when they load it for the first time after the uninstall/on the new device. Obviously any settings stored in Isolated Storage are lost so if you want to provide this experience you will need to save these settings in the cloud.
In this blog post I will describe how to create an inline context menu for Windows Phone 7. To overcome several issues we are going to use Nested MVVM, which is a slightly altered MVVM pattern.
So what about having a context menu on Windows Phone 7? Currently the most common approach is to show an overlay containing a set of buttons. This is a good approach when you don’t access context menu too often. But when used frequently you might find the following issues:
- Holding an item is way slower compared to a tap
- Overlay covers a great portion of the screen
- When clicked on the border between two items there is no way to know which item context menu corresponds to
That is why I came up with a slightly different approach.
Part 3 in my series of blog posts covering the quick code Tips & Tricks I shared at UK Tech.Days, is about enabling your users to provide you with some useful information if things go badly with your Windows Phone 7 app.
Often on the marketplace I have seen apps that have multiple reviews by different users just saying things like “Crashes on startup!” or “Doesn’t work on my device!”, and as a developer I know its frustrating to see things like this when the app is working perfectly fine on your phone. While it would be nice for users to provide detailed repro’ steps and associated data, that’s not really likely to happen, but in my opinion the main thing you want as a developer is the Exception and a Call Stack of whatever is causing the app to crash.
The second post in my series of blog posts covering the code Tips & Tricks I shared at UK Tech.Days, is about getting more positive ratings/reviews for your Windows Phone 7 app.
Anyone who has had a bad experience with your application is motivated to go and leave it a scathing review, whereas the hundreds of people who loved your app may never even consider leaving it a good review. One way to counter this is to simply ask those users who like your app to leave you a review, however you don’t want to bug people too often or before they’ve had a real chance to use your application. So what can you do?
We’ve been asked a few times about how we captured and embedded videos of our WP7 apps for our Polyglot website and Tech.Days presentation. Here is how we do it.
Trial Mode
Adding a trial mode to an existing paid application is very easy to do and highly recommended, even if you also have a ‘free’ version of you app available on the marketplace, because it lowers the hurdle between a user seeing your application and a user making the purchase. Also improvements to the on phone Marketplace rumoured to be coming with the relelase of Mango this Fall will mean that paid applications with trials are highlighted more than those without.
A few weeks ago our team was “Blending Delicious User Experiences for Windows Phone 7” at Microsoft Tech.Days in London. Thank you everyone for coming, we really hope you have enjoyed our talk!
After investigating a couple of 3rd party Binary Serialization libraries for WP7 and having seen a couple of suggestions online of just writing your own, I decided to do just that.
There were 2 main places where I found information on how to potentially write you own Binary Serializer for WP7, the first I felt took a rather old school approach by adding a “Write” function to each class which accepted a BinaryWriter and simply wrote out each of its own properties. The clear problem with this approach is the maintenance involved with adding new properties or if you wanted to serialize a different class.
Serializing data out to a file on WP7 is a very easy task thanks to the DataContractSerializer which allows you to tag properties in your class with ‘[DataMember]‘ and then use a few simple line of code to save/load that class to file:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | // Save MyClass theData = new MyClass(); using (IsolatedStorageFileStream fs = isoStore.OpenFile("MyClass.xml", FileMode.Create)) { DataContractSerializer ser = new DataContractSerializer(typeof(MyClass)); ser.WriteObject(fs, theData); } // Load using (IsolatedStorageFileStream fs = isoStore.OpenFile("MyClass.xml", FileMode.Open)) { DataContractSerializer ser = new DataContractSerializer(typeof(MyClass)); MyClass result = (MyClass)ser.ReadObject(fs); } |


