Entries in Dev Tips (6)

Monday
Jul182011

WP7 App Settings Persistence

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.

Click to read more ...

Sunday
Jul102011

WP7 Error Reporting done simply

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.

Click to read more ...

Tuesday
Jun282011

Getting ratings for your WP7 app

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 WP7 app.

Anyone who has had a bad experience with your application is motivated to go and leave it a scathing review, where as 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?

Click to read more ...

Tuesday
Jun212011

WP7 Trial Mode done simply

In my part of the VerySoftware's presentation at UKTechDays I talked a bit about some very easy to code things that can be added to nearly any application existing application. Over the next few posts I'm going provide the code and detail of these tips for reference and for anyone who didn't see the presentation.

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 release of Mango this Fall will mean that paid applications with trials are highlighted more than those without.

Click to read more ...

Thursday
May262011

Serializing to Binary on WP7 - Part 2

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.

The second approach was explained by Eugene Chaikin on his site, where he attempted to replicate the DataContractSerializer's interface and even make use of the '[DataMember]' attributes in the same way.

Click to read more ...