This will be the first part of (hopefully) many and I’ll begin with explaining the Windows Store – what it is, how it works and why I think it should matter for you.
The Definition of Windows Store
Let’s begin with basics. Windows Store is an application in your Windows 8. It’s the service run by Microsoft which allows you to install / update / uninstall so called “Windows Store” (formerly known as Metro) applications to your computer.
As a software developer, you perhaps have a clue about the process of software distribution to the world. That is – when your application is created for anyone willing to install it – be it for free or not. So we’ll begin with the differentiating the new ways from the old.
How it works for non-Metro apps
What do we do, when we want to distribute normal applications using standard distribution channels, not the Windows Store?
When trying to distribute your normal, non Windows Store application, first thing you need to think about – is how you are going to monetize it. I mean – if you are going to monetize it at all. If you are not going by the hopeless path of “donation-ware”, most likely you would try to create a trial version of your application that could be unlocked by entering the serial number, and perhaps activation. Not a trivial task.
The process usually involves tools that embed protection into your binaries and potentially cripple the performance of your application, but provide an easy way to register, activate and control the trial of your app. An example of a decent tool for .NET applications and libraries is IntelliLock by German company Eziris.
Then, you have to create the setup package. Usually – Microsoft Installer (.msi) package. Then, you need to document your software and installation and create the PAD (portable application definition) file. Then, you would submit your PAD file to hundreds of software distribution websites, most of which are pathetic copies of each other.
The problem with classic software distribution websites, like download.com, is that they don’t add value, but rather just take 30% of the price of your software just for listing it along with tens of thousands of other applications. They don’t invest into advertisement, don’t feature your app unless you shell out a few hundreds dollars, and most of them will give your app “5 stars” without reviewing, just because that would increase the chance that your app is downloaded and installed and you would put a banner on your website leading to them. Hey, take a look, my app is “5 stars” now! Just like every other paid app on that website.
If you publish your software to such websites, your own website becomes harder to find. When users are using Google or Bing to find your application, first pages of links they will see – the links to software distribution sites, all having the same content and referral fee.
Once you update your software, these websites may or may not reflect the change. So, it’s a tricky game.
And don’t forget about monetizing. Someone should make it possible for you to accept payments, to sell serial numbers, perhaps even provide the software activation services. The leader in this business currently, speaking about Windows applications, of course, is the company named Digital River. They own a few services – RegNow, Share-It, Esellerate and SWREG, which own a big share of the market. They provide you with the page, where your customers would select the license type they want, provide payment details and get their license or unlocked version of your app. For a fee, obviously, and usually it takes about 20-30% of the license price. Add the referral fee of software distribution website, and it’s good if you have 50% of what your customers are paying “to you”.
How software distribution works for Metro apps
First of all, you don’t need the setup package. It’s created by Visual Studio and that’s enough.
Second, you only submit your software once and it is reviewed by real people. They don’t set the rating, they only allow or reject your application from the store. On the other hand, if they reject your software, you can’t just try your luck with another store – there is no other store.
There are no adverts in Windows Store. It’s an application in Windows 8 and so it’s very fast and fluid. Installation only takes one click, but so is the uninstallation. So, if user is not content with your application – the bye-bye is only one click away – all Windows Store applications can be uninstalled right from the Start menu – just right-click the app tile and click the “Uninstall” button in the app bar.
Hard Limits of Windows Store
The package is hosted at Microsoft, so it installs very fast. The limit of the package size is 2Gb, so in case of very big package you may want to download resources after installation, from your website.
You are not limited in the quantity of applications you distribute through the Windows Store, as long as they are paid applications. You are limited to 100 free applications. The reason behind this is very simple – some developers, as you may see in Android Market, create copies of their software and give it a different name, so people would find it by different tags. There is, for instance, a wonderful translator program which allows you to speak something in your own language, and it will speak the phrase in the target language. The problem is – they’ve created tens of “specific” translators with names of the languages specified in the title of the app, so people would find them easier. But it was the same app. So, Microsoft doesn’t want you to flood the Store, and if you’ll have a perfectly valid reason to publish more than a 100 free apps, they will allow you to do so, exclusively.
Other hard limits (i.e. enforced by measurable independent counters) are for trial and demo versions of your app, but we’ll discuss it later.
Soft Limits of Windows Store
Some certain types of applications disallowed in Windows Store include:
- Applications that contain adult content
- Apps with rating over PEGI 16, ESRB Mature or equivalents, or which contain content that would be rated as such.
- Advocating of discrimination, hatred, violence based on ethnic, racial, religious group et.c.
- Anything that encourages, facilitates or glamorizes illegal activity. So forget about even mentioning hemp.
- Applications that contain or display content that a reasonable person would consider to be obscene.
- Apps that contain excessive or gratuitous profanity.
- Apps that encourage, facilitate or glamorize the use of weapons against a person or animal in real world.
And something like that, you’ll see the full updated list in Windows Store app submission page.
It was mentioned by Microsoft, that they would refuse applications which do not conform to Metro design principles. We’ll discuss these principles soon in other articles, but I would take this warning seriously, as even though most of applications that you may currently find in Windows Store lack the substance and have no real purpose (or are just unusable and designed rather for mouse than for touch), they usually don’t violate the Metro app design principles.
Flexibility of Options for Software Developers
You can invest a lot of time into creating your app, but if you can’t publish it in time and return your investment (get paid!) – then does it really worth it?
Windows Store entered the market last. Companies like Digital River had it for years. Entering the market last makes it somewhat challenging, but at least it gives you the opportunity to make the killer offer. And that’s what Microsoft does.
Windows Store allows you to publish trial, demo and full versions of your app, provide activation and licensing options, sell subscriptions to your app, show advertisements from your preferred channel (not necessarily Microsoft), sell time limited licenses and what is especially intriguing – so called in-app purchases, where you can purchase add-ons and additional features right from your application.
Trials in Windows Store
The worst thing you can do to your app is to sell it without giving a trial. Don’t get me wrong, some people do sell software this way, but usually these are applications like “boost your WiFi 200% with this app!” – akin to enlargement pills.
Trial version is something that your users can try for a limited time or with limited functionality. The purpose of the trial version is to persuade user to buy a full featured, unlimited version of your application. Trial is not shareware, though – we’ll discuss shareware applications distribution in Windows Store a bit later here.
According to stats, trial versions are downloaded 70 times more than non-trial, full paid apps.
Trial versions in Windows Store can only be installed once. Once they’re expired, they can’t be uninstalled. So we could say that trial is your only chance to convince your user to buy your app. Once the trial is over, there is no other chance, even if your app was updated and is looking and working way better than before.
Consider this when setting the trial period for your application. According to observations in Windows Market, trial versions are converted to paid downloads in a matter of two days. However, it always depends from your audience – whether or not you want to allow your user to show your application to someone else who might sponsor the purchase. For example, if your application is about team work, you may want to allow the time for the target team to review the application before purchase. Applications for teenagers may require time for parent approvals as well.
Setting the trial period to “Trial never expires” will make your application work in “trial” mode forever. This is good when you are showing ads, for example, or you don’t mind if the application is used without being purchased.
Anyway, as a developer, you will always be able to tell if your application is in Trial mode, to adjust the functionality and user interface of your app accordingly.
As you can see in the sample code, you only need to retrieve the LicenseInformation object of the CurrentApp, and the boolean property IsTrial will show you whether or not your application is in trial mode.
Since it is preferable for you to not restart your application when it’s license state changes, and since licensing is managed by WinRT, not by custom code within your application, you should create an event handler for the LicenseChanged event of the mentioned LicenseInformation object.
Purchasing the license is very simple. All you need to do is to call the RequestAppPurchaseAsync() function. As it’s name implies, it will request the application license purchase and user will see the license purchase dialogue outside of your application context.
In-App Purchases in Windows Store
Do you know such game as The Sims? It’s a good example of the application that would greatly benefit from In-App purchases, as The Sims has enormous amount of additional objects sold separately after you get the base game. In-App Purchases allow you to buy additional objects, content, add-ons and whatever you may have downloadable in store.
Personally, I am considering selling extra features for my applications using the In-App Purchase. If that would be text editor, the extra feature could be saving result as PDF file or exporting it to Microsoft Word 2013 file format. If that would be a recipes app, you could buy recipes for Spanish cuisine while getting the app itself for free.
As you can see in the example, it works just like the normal licensing. All the additional materials you could sell are called products, and could be sold only once, as it takes the form of licensing.
However, you can set the expiration of such premium features, so you can sell, for example, annual subscriptions, if needed. Just like with the normal licensing, you can’t specify custom expiration, but have to choose between 1, 3, 5, 7, 14, 30, 60, 90, 180 or 365 days.
Interesting about In-App Purchases is that user has to enter his account password each time he purchases a product, so if your child is playing with the phone, she couldn’t buy what you don’t need.
This reminds me how my 17-months old daughter is playing with my mobile phone and switches on the YouTube application – usually it ends with me listening to fragments of nice music, but perhaps I’ve also voted or even reported more often than I think I did. So, it’s not the case with Windows Store.
Another interesting thing is Subscriptions – although you can sell the time-limited license that will work as subscription, the end user won’t be charged for renewal of the license. The explicit purchase is required for that. The unwanted subscription fee is a huge disadvantage of other license payment providers, such as Digital River, so even though some clients may “forget” to renew the license, you’ll have less head ache with Windows Store.
Shareware in Windows Store
Shareware is software that includes some form of monetizing, but doesn’t require user to purchase a license.
As you can see in Windows Store application in your Windows 8, each category of applications has 2 areas – Paid and Free apps. Free apps, for sure, is the area explored by your visitors first. Then, if they can’t find what they want in Free section, they go to Paid one.
An alternative could be to put the advertisement into your application, but beware of potential low-to-none income and increased annoyance the adverts may bring to your app. It always depends from your audience and target market whether the ads would work.
For example, if your application is about coffee shops of Manhattan, then you would have many thousands
hipsters potential customers in a small area, who could click on coffee-related advertisement for a shop in Manhattan. It could be lucrative enough.
However, if your application is going to be used in some small nation and is not specific enough, your income could be as big as 20 dollars per year. The point is – think twice before embedding ads into your app.
Speaking about ads, you are relatively free in choosing the ad provider. It could be Microsoft Advertising, Google or any other compliant provider. Beware that for some markets your ad provider may have no ads to serve.
The Price of Windows Store
First of all, you’ll need a developer’s account at Windows Store. The price may differ depending from whether you’re student (see DreamSpark then) and what’s your country of residence. For a single developer in Ireland the current annual price is 37 EUR.
If you will also want to register as Windows Phone developer, that would be another 75 EUR for a separate annual license in Windows Phone market.
If you are monetizing your apps, you’ll start getting money once you’ve accumulated USD 200 on your account. Speaking about the share, until certain limit, Microsoft will take 30% of the license price, which then is lowered to 20%. If I remember right, the mentioned limit is about 10000 USD, but since rules are changing, this number is very approximate, to give you a clue - don’t take it as granted.
Test, Test, Test!
Before deploying your application to the market, ensure that trial process works correctly! To facilitate testing, Microsoft has created a helper class called CurrentAppSimulator, which you can find in Windows.ApplicationModel.Store namespace.
This class replaces the CurrentApp functionality with only difference that the licensing state of the app will be taken from the WindowsStoreProxy.xml file located in %userprofile%\appdata\local\packages\<package-moniker>\localstate\microsoft\Windows Store\Apidata.
When using CurrentAppSimulator, beware that it doesn’t modify the mentioned xml file, but only the object in memory. So changes are not preserved after restart.
There are two ways you can create applications without publishing it to the world. Either you will use the corporate store – service installed on premises of your corporate network, or you publish application without publishing information about it in Store. Both topics are out of scope of this intro, but at least you should know you can do that.
As I mentioned earlier in Twitter, Windows Store became the synonym of business – you are either in or out of it. Metro gave us many wonderful tools which work not exactly as we would imagine them even a couple of years ago, so it forces us to reimagine the ways we develop software, design user interface and even sell our apps. However, just like it happened with advent of .NET in 2001, not all of your rivals are able to grasp the new concepts quick enough, so you still have a chance to enter the new market as a pioneer, building the new map for others to follow.