Google+ Followers

27 Jan 2014

Windows Phone 8 App Development Part-3: Testing/Publishing

This post is part-3 of the article on windows phone 8 app developments -  Quick Start-up guide with best practicesThis whole series is in 3 parts:
Part-1: Planning and Environment Setup
Part-2: App Development, best design practices, and some challenges 
Part-3: Testing/QA of the App and the process of publishing it to store

In case if you haven’t checked the part-1 and part-2, I strongly recommend you to go through them first. 

Now I will discuss about the testing/QA challenges and the process of your app certification and publication to windows phone store.


Testing/QA

Through Emulator: Emulator is a virtualized environment in which you can debug and test Windows Phone apps without a physical device. The default emulator image in Visual Studio is 'Emulator WVGA 512MB'. This default selection targets the largest possible market.  Emulator is used continuously for testing during development or QA. 
Various emulator options: 

With real phone device: Although emulator provides a comparable performance to a real device, I strongly recommend you to test your app on multiple devices (like 1 high end-Lumia 920 and 1 low end - Lumia 520). 
Even I found some differences between emulator and device such as problem in detecting network or limitations with memory utilization issues. The testing against device will help you to find few critical issues which may not come up in Emulator.
Deployment to a device is real easy as we just need to connect device using USB while Win 8 VM is maximized, select Device in-place of Emulator, and run/debug the App in Visual Studio. App will get installed in the device. We can also debug against the device, and there is no need to worry as nothing would happen to your phone.


Creating a developer account

You will need a paid developer account to publish your app to windows store. You can register as individual or a company. You would also need to associate a Microsoft account with this developer account. Following are the differences between individual and company account:
Individual
  • Restricted from using certain app capabilities
  • Cannot list desktop apps in the Windows Store
  • Costs approximately $19 USD
Company 
  • Requires additional verification through Symantec
  • Costs approximately $99 USD
Both of these accounts will give the ability to publish to windows phone and store, and would need Credit card for verification.
Useful links:
Setting up payout account: In case you app is a paid one or you expect some revenue from in-app advertisements. Follow this link to setup this.

Publishing to store

I would say, publishing an app to windows phone store is not very difficult task, but at the same time for the first timers, it would look little daunting because of the following steps involved:

Technical certification requirements for Windows Phone

Ideally it is like a third party acting as QA and verifying your application against some predefined certification requirements. From my experience, I think they don’t focus a lot on testing your app features but the bottlenecks such as app reliability (should not crash), performance, app functionality, non-blocking ease of use, content validations like app text and icons are visible in light or dark background or in various themes like red, green etc, or whether app tile images or app listing details are fine.

So, it is strongly advised to test your app against the Windows App Certification Kit: The Windows SDK includes this kit. 
How to access in Visual Studio (Right click project and select "Open Store Test Kit":



Other preparations before publishing your app for certification:

Choose and reserve your app name: App name should be unique, so it is advisable to select few good names which doesn't exist in store.

Decide what age rating will apply to your app: It depends on the type of App.

Choose pricing: Free or paid. If paid then what would be the price.

Choose the countries and regions in which you want to sell your apps: All markets or some specific countries.

Write your app's description: The app description is kind of a summary of your published app’s capabilities. So a well-written description with to-the-point features details, can encourage your prospective users to download or buy your app.

Select Auto or Manual publish: In case of automatic publishing option, app will get published automatically once it passes certification. Once app passes certification, you will receive email confirmation. Even if “Auto” publish option is selected, it may take some time (few hours) before your app would be visible in the targeted store.

Submit App and then Track certification status: Once all details are filled correctly along with XAP file (build) and listing images, app can be submitted. In case after submission, you want to change something, you can cancel the submission and resubmit it again. Your every submission will go through certification process from start.

Microsoft's App submission/ tracking dashboard:


Tracking app submission

The certification process usually takes 5-7 days of time. If your app fails the certification, you will receive an email from Microsoft with detailed test report in PDF format. It will explain the expected and the actual result. These are generally standard tests outlined in their certification requirements. Correct these defects, and re-submit the new XAP file.

Some common blocks (tech or non-tech)

Network availability: Use following code to know network availability. You can add it as static property on App class to make it easy to access throughout the app.

public static bool IsNetworkAvailable
        {
            get
            {
                return NetworkInterface.GetIsNetworkAvailable();
            }
        }

Image for dark and light theme: In case if you have an image for dark background, don’t worry, we can use same image for light background too. Use following code to achieve this:



Out of memory issues: These issues are mostly caught while testing app through a phone device. Use memory intensive controls like browser or others very consciously.

Few Advance Scenarios:

Creating Live Tiles: It is quite easy to add a live tile for you app. Check out this article -  Live Tile Templates in Windows Phone 8

Push notifications: There can be local or remote notifications. Remote would definitely need some services like Microsoft Push Notification Service (MPNS) which send data from cloud.
     Local notifications: These can be tiles, toasts, alarm, reminder notifications on the phone. Check out this link - Local notifications for Windows Phone  
     Remote notifications: Push notifications for Windows Phone 

Integrating Facebook with app: This is a nice article to get started on this - Integrate Facebook to Your Windows Phone Application 

Integrating Azure with phone: MobileService can be used to communicate to Azure data or other services. Check out this link: Get started with Mobile Services. Very soon, I am going to publish one article around this. Stay tuned.

Summary

In this article series - part-1: planning and environment setup, part-2: Development, and this part-3: Testing and Publishing, I have tried to cover most of the pain points for starting windows phone 8 developments. I believe it would be quite useful for beginners. I would recommend you to check out the source code from part-2 which contains a jump-start project design with many of the best practices discussed. Please get in touch with me if you have any questions or feedback @ manoj.kumar[at]neudesic.com.