So after submitting applications a few times for both myself and a few friends, i have learnt a few a few do’s and don’ts that can make the difference between it taking 2 weeks to get your application in the Windows Phone 7 marketplace, and only a day or two including registration. With the help of the tips below, hopefully i can help some of you avoid any of the frustrations that can come from starting development on a new platform.
So you want to write a Windows Phone 7 application. You’ve downloaded the tools/SDK from here:
And you have paid Microsoft $99 to become a marketplace developer here:
So there is some confusion around what the next step after registration is. You could happily start writing code and go on your merry way, but you will be setting yourself up for frustrations later. You are not authorised yet, and will not be able to test your application on a device until you get authorised. The only way to get authorised is to submit an application to the marketplace – sound backwards? That’s because it is.
Microsoft’s online AppHub tools will not start the application process to authorise your account until you have submitted an app to the marketplace.
Because of this, while you are writing your application, the best thing i can recommend to streamline this process (i have seen this recommended in a few other places) is to actually submit a dummy application. If you don’t do this, by the time you are finished testing in the emulator, and are ready to test on a device and submit to the marketplace, you’ll have a potential 2 week wait until you can actually do any of these things – not cool.
To get a dummy app to submit, open Visual Studio, open one of the Windows Phone 7 project templates, build it and submit it’s xap file along with some screen shots you took in the emulator using the Apphub website.
Untick the box in the AppHub submission form that says “Automatically publish to marketplace” to make sure it never gets that far.
I cannot recommend this enough.
Because this will be your first application submission, this will fire of an automated submission to have your account authorised. Microsoft has outsourced this process to Geotrust and it is them that with confirm your identity – I don’t know whether it is because they are busy and overloaded with submissions, but Geotrust is not that quick to respond, so the sooner you can do this the better.
They will send you an email template that needs to be sent back to them like the one below:
Order Number: XXXXXXXXXXXX
Dear Douglas Rathbone ,
GeoTrust, is a verification and authentication agency employed by Microsoft to confirm the accuracy of the information you provided to Microsoft during your enrollment for a Microsoft Windows Marketplace for Mobile Publisher ID. Microsoft requires this independent verification in order to issue you a publisher ID.
In order for Geotrust to confirm your information in terms of Microsoft's requirements, GeoTrust must receive:
* A copy of a valid government issued photo identification, for example a passport or driver's license *
Please fax or e-mail the following documents to the contact information listed below.
It is important that you send GeoTrust the above documents via fax or e-mail within three (3) business days. This will accelerate the identity verification process which will enable you to submit and publish applications to the Marketplace and start earning revenue.
On behalf of your Microsoft Windows Marketplace for Mobile application, your prompt attention to this matter is greatly appreciated!
Respond to this by fax not by email – this is another point i cannot stress enough. I know two people that submitted by email (myself included) and two people who did by fax. The faxes were responded to the same day. The emails took a week to even hear back from them. If you are missing something on your submission, this means you may wait up to a week, just to hear back that you have to do it all over again.
Attach a photocopy of your drivers license and sign the form and fax it to Geotrusts fax number – simple.
A day after they process your authorisation, you will have your account unlocked/authorised and will be able to test on your device of choice, as well this will allow you to then submit your real application without having to wait.
App design & submission
The next thing you have to make sure you do before you finally submit your application is make sure it strongly adheres to the marketplace submission guide, as found here:
There are many straight forward guidelines in this document, but a few stand out that I have either personally missed, or had colleagues miss. Given the time it takes for them to test and fail your application, it is worth getting it right first time.
Pay special attention to the following:
The screenshots you submit for your application have to be exact – they have to be real screenshots taken inside your application, and must only include the phone’s screen – none of the emulators edging. There is a good post from Mike Ormond that will help a lot in achieving this.
- Device Themes
Remember to test your application using both the light and dark themes on your device. I know of one colleagues who submitted an app which had an image that was black in his App – this became invisible on the dark theme and the application was rejected because of this. Stupid mistake, and i can only assume he’d just not been thinking, but it happens, be aware of it.
An app cannot stop a background sound unless the user is warned. Because of this i recommend that you either don’t use un-necessary sound objects if possible – or if you have to, use the XNA SoundEffect object instead of the Silverlight MediaElement.
- Application load time
Your application must load within 5 seconds, so make sure that any large files that require loading happen asynchronously so that it doesn’t hold up your applications load time.
- Network connectivity
Make sure you test for network connectivity before making any network requests using the NetworkInterface class. I also suggest for long running connections that you hook into the NetworkChange event model so that if the user loses network connectivity half way through the download they aren’t left waiting until the connection times out.
- Proper use of the back button
When you application first loads, it is really important that hitting the back button exits the application to keep consistent with the rest of the Windows Phone 7 ecosystem. I myself along with a few people i know have inappropriately cancelled the action of the back button on first load as we had redirected the user to a settings screen or login screen and didn’t want them to go back to the main page without filling out the settings. In this case you must tap into the Applications OnNavigating event and do your redirection there instead, as per the following article from Peter Torr on redirecting the initial navigation. You must also make sure that if you have a delete option on a page, that you properly take care of any exceptions thrown when a user hits the back button to a page that doesn’t exist anymore.
Submitting to the the Windows Phone 7 Marketplace is a pretty good experience. From past experiences with Apple’s AppStore, it is definitely more developer friendly, as long as you play your cards right first time. Hopefully the above tips will help you avoid any un-needed waiting or app submission failures. Happy coding!