Forget These Not

I have always been a WP7 platform fanboy (there, I said it!) since the CTP days & now I am really starting to enjoy the ecosystem that comes with it. People are doing so much phenomenal work that it is getting difficult to keep up all the new toolkits, frameworks and Nugets. All good stuff for health & future of the platform. Now, MSFT has to keep their side of the promise and keep the updates coming seamlessly without fragmentation.

Anyways, apps & a thriving Marketplace continue to be focus areas, with the WP7 Marketplace hitting 10K apps quicker than anyone else! I believe the entire lifecycle from an app’s inception to its final glory of being published to the Marketplace is incredibly well laid out. Developer delight seems apparent with the tools; however, we keep seeing questions when it comes to submitting applications for certification & publication. Having gone through the process a few times, let me take a stab at laying down a few things that one just should not forget. There are lots of other blog posts on this topic .. Bing around; these are my sanity checks:

  • The App Certification Requirements are written clearly and leave little room for ambiguity (ahem, no pun intended). READ READ READ!
  • Iconography: This one goes without saying. If you are lousy with your graphics, users may feel the same way about your app, even if it is a million-dollar idea. Seek help from a graphics designer friend if you have one; or make friends with GIMP or PAINT.NET. MSFT is also particular about Pixels & DPI. It has helped me having all my imagery in one folder so that I am not looking around during app submission.
  • Back Button: This happens to be one of the biggest reasons apps fail certification for the first time. So, Check, Check & Check. The good news is if you are not doing anything special in canceling the back event handler stack or eating up the event, you should be fine. By default, all your XAML pages will navigate backwards and most message boxes/toolkit popups will hide on Back. Just be aware that you cannot break the kind of navigation WP7 users are used to when they hit the Back button. From your first page, hitting Back should always exit the app.
  • Pay particular attention to requirements if your app is using Location Services & Push Notifications. User’s privacy is important to all of us who make mobile applications; give them ways to opt out within the app and also don’t break any OS level permissions.
  • If your app involves fetching data that may take a little bit, make sure you free up the main UI thread so that user interaction is not hampered; this goes for any Silverlight application I guess. Both WebClient & HttpWebRequest classes make it easy to assign a delegate for processing response asynchronously.
  • There were some recent changes to certification policies; check the latest from App Hub. Even though it is optional now, I believe it is always a good idea to provide a contact us/feedback mechanism for the users of your app. This helps in people not randomly posting awkward reviews; but rather reaching back to the developer to provide feedback .. remember, users are not evil; we just need to make software worth their dollar. Also, as an ISV, it may help having a dedicated site if possible; listing the apps you have live in the WP7 Marketplace and acting like a vendor in providing support/updates.
  • App Hub portal for submitting apps is a Silverlight Web application. Although Silverlight works just fine in most browsers, there are important steps as you submit your app; I believe IE9/IE8 provide the smoothest experience.

So, there you have it. It does not take much more than common sense and careful reading to clear WP7 Marketplace Certifications and have your app published. What’s holding you back?

Adios!

Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s