In the last few posts, hopefully I’ve been able to plant a seed in your head about training – learning new technologies and skills – as a hobby rather than trying to do it through work (unless you can, of course, which would make it that much more efficient!). I talked about training through real experiences and how building and publishing apps is a means by which you can gain those real experiences but also how published apps act as your ongoing resume to show people what you can do. I promised you that I would do my best to make all of that as easy and as efficient (fast) as possible to do. Here’s one towards that promise. Enjoy.

Guest post by Bruce Johnson, Microsoft MVP


How do you take apps (your hobby) to the next level?

homepage_RGBOne of the very cool aspects of the tooling that Microsoft provides to developers is the level of functionality that is available to any kind of developer. If you find yourself at a job where they are not working with the latest and greatest version of Visual Studio, you are not out of luck. You can download the free Visual Studio 2012 Express and make yourself familiar with the things that have changed. And, if you are so inclined (and as suggested in Jonathan Rozenblit’s blog post “Turn Your Future into a Hobby”), you have the ability to create a Windows Phone or Windows Store app and get it published.

But do you really want to stop there?

More importantly, WHY would you want to stop there? Microsoft provides stores for Windows 8, Windows Phone and Office. Stores that offers you the opportunity to actually turn your hobby into a money making venture. And they’re easy to take advantage of.

Let’s consider some of the possibilities.

Advertising

One of the simplest ways to monetize your application is through advertising. It only takes a couple of minutes to sign up through the Microsoft Advertising PubCenter. Moreover, integrating ads into your application is almost as fast.

The basic model for monetization with advertising is impressions. You get paid a small amount for each ad that is displayed in your app. To place an ad into your application, you can use the Microsoft Advertising Ad Control, which is built into the SDK for Windows Phone or Windows Store applications. Naturally, the positioning of the control within your application will be up to you (and dependent on the design of your application). But the ease with which you can get started is very compelling.

But (and isn’t there always a but?), in order to make this model work out to your advantage, you need to have the type of application where the users are going to be in your app for long period of time. If the usage model for your application is in and out (such as an app that toggles your wifi setting or provides a small piece of information), then advertising is not going to be a big payday. Instead, you need to look at some other monetization models.

Charging for your App

The next possible way to monetize is actually to charge a fee. This can be a big mental hurdle for a developer to get past, particular for those who might be creating apps on the side. It is quite common to believe that your app is not worth someone else paying money for. But one of the benefits of using the Windows Store is that you don’t need to make that choice on you own. You can let the market decide what your application is worth.

When you submit your app to the store, you indicate the price that you would like someone to pay. But that, in and of itself, doesn’t necessarily answer the question of ‘worthiness’. To really get a sense of that, you need to implement a free trial.

The idea of a free trial should be familiar to you. You have probably seen it on applications that you have purchase. Technically, the idea is to determine whether the user has paid for the application or not. If not (and if they are within their free trial period), you allow them full (or slightly degraded) access to your application’s features. Of course, the challenge is to determine whether the user has paid for the application, and whether their trial period is still going on.

If you were trying to do this on your own, this task would be daunting. How do you track whether the app has been purchased? What happens if the app is purchased while it is currently running? These legitimate questions are much easier to answer if you are utilizing the Windows Store. Consider the following code.

LicenseInformation currentLicense = CurrentApp.LicenseInformation
currentLicense.LicenseChanged += LicenseChangedEventHandler(reloadLicense);

...

private void ReloadLicense()
{
if (currentLicense.IsActive)
{
if (currentLicense.IsTrial)
{
// Enable the features for the trial version
}
else
{
// Enable the features for the full version
}
}
else
{
// An error has occurred. Licenses are only inactive on an error condition
}
}

The CurrentApp object is available through the Windows.ApplicationModel.Store namespace and is available if you have a Developer’s license. Alternatively, you can use the CurrentAppSimulator to test out the various combinations of settings. But regardless of whether you are testing or in production, the goal is still the same. You enable and disable the features of your application based on the current state of the user’s license. Fortunately, the Windows Store and it’s API takes care of the complicated portion, leaving you to focus on your app.

In App Purchases

The third monetization model is to allow users to purchase things from inside of your application. If you have an application that lends itself well to this model, then the Windows Store is there to support you. You can specify, as part of the information surrounding your app, the items that are available to be purchased. Information about the items that have been purchased is available through the licensing API. It is up to your application to detect the items that have been purchased and behave accordingly. However by the time you get to this point, you have probably created a fairly sophisticated application and this type of conditional coding should be old hat.

A Big Step? Yes, but you can do it

imageThe task of getting your application ready to be monetized may seem like a big step to take. And it is. Your users will be expecting more from your app, now that you are labeling it as ‘commercial-grade’. More features, more stability, better animations.

Don’t let that stop you. There is a lot of support in the Windows Store and related APIs to allow you to take your app to the next level. You just have to jump in and do it!


Definitely gives you something to think about, right? So take a little bit to think it over and as always, if you have any specific questions or want to find more about, feel free to start a new discussion in the Canadian Developer Connection LinkedIn group. Bruce, community experts, and your fellow Canadian developers are there to answer and share.