Mobile Zone is brought to you in partnership with:

Per Ola is currently working as CTO in mBricks ( and is a Microsoft Device Application Development MVP. Per Ola got his bachelor degree in Software Development back in 2005. Since 2005 he has been passionately working with mobility projects on a wide range of technologies and areas of use. Driven by his passion for this craft he spends a lot of his time off work to further explore technology possibilities or new programming languages or techniques. He finds himself privileged to be able to make a living from one of his hobbies. Per Ola has experience from a wide range of projects covering developing applications for the consumer market and for the enterprise market. He has had several different roles: developer, architect, team leader, project manager, technical resource in pre-sale and strategic planning. Per Ola is a DZone MVB and is not an employee of DZone and has posted 26 posts at DZone. You can read more from them at their website. View Full User Profile

PinCodeKeeper WP7 app – Testing and improving app before submission

  • submit to reddit

Before I take the final step and submit the PinCodeKeeper WP7 app to marketplace I want to make sure that the app is free of bugs and as good as it can be. To do so I have been testing the app a while on my own device and I have also sent the app to a few others for testing and feedback.

Philipp Fetzer, a German WP7 enthusiast, has been testing the app and gave me a lot of great feedback that I acted on to improve the app. Philipp has also translated the PinCodeKeeper app so it will support both English and German. Philipp has developed and published an app for Windows Phone 7 called (available in Germany, Austria and Switzerland).

In this article I will go through the improvements I have done.

Changed ApplicationBar icons

I was using dark icons for application bar buttons, this didn’t look to good on my dark background. I changed the icons to light icons from the Windows Phone SDK. You find the Windows Phone icons at C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.0\Icons

New white app bar icons from Windows Phone SDK

Splash screen

I added a very simple splash screen by replacing the SplashScreenImage.jpg. First I added the image as PNG but then the splash screen does not show. When I changed it to JPG it worked great.

Splash screen

Support for landscape mode

I wondered for a while if I should support landscape mode but I decided to only support portrait mode. This because I could not see that landscape mode would add any value to the application and the pin code cards are made for portrait mode. I think it would confuse the user if suddenly the PIN code cards would turn into landscape mode.

Cleaning up capabilities listing

Capabilities needed by your app is listed in WMAppManifest.xml in the Capabilities element. By default a lot of capabilities are added and you need to manually remove/add the capabilities your app needs. Actually in the submission process the correct capabilities will be removed/added but it’s a good idea to test your app with the correct capabilites.

You can do so by using the Capability Detection tool which is a part of the Windows Phone SDK. You can read about how to use the Capability Detection tool at MSDN library. When I ran the test the tool detected that my app is not using any capabilities so I removed all capabilities in WMAppManifiest.xml.

Adding page transitions

To make the app look a bit more smooth and sexy I added page transitions (slide in/slide out). This is easily done by using the Silverlight Toolkit for Windows Phone. To learn how to do this you can have a look at an article describing how to add page transitions by using Silverlight Toolkit for Windows Phone.

Improving the PIN code list

I did some graphical improvements for the PIN code list by adding an icon, increasing the size and display text in upper case letters. Under you can see the xaml code for my PIN code list.

01	<ListBox Margin="0,0,0,0" Name="pinCodeList" ItemsSource="{Binding PinCodes}">
02	    <ListBox.ItemTemplate>
03	        <DataTemplate>
04	            <Button Width="460" Height="120" Click="PinCodeListClicked">
05	                <Button.Content>
06	                    <StackPanel Orientation="Horizontal" Height="80" Width="400">
07	                        <Image Width="80" Height="80" Source="/PinCodeKeeper;component/Images/pincodekeeper_list_icon.PNG" Stretch="None" HorizontalAlignment="Center" VerticalAlignment="Center" />
08	                        <StackPanel Orientation="Vertical" Height="80">
09	                            <StackPanel Orientation="Horizontal" Height="80">
10	                                <TextBlock Width="320" Height="80" Text="{Binding NameUpperCase}" FontSize="30" Padding="15,15,0,0" />
11	                            </StackPanel>
12	                        </StackPanel>
13	                    </StackPanel>
14	                </Button.Content>
15	            </Button>
16	        </DataTemplate>
17	    </ListBox.ItemTemplate>
18	</ListBox>

New PIN code list

Added buttons for Rate/Review and Mail

In the About screen I wanted to make it easy for the users to send me feedback and to rate/review my application. I have therefore added one button for “Rate this app” and one button for “Send Feedback”. The “Rate this app” button will take the user directly to the rate/review site at marketplace so the user can rate your app. This doesn’t fully work before the app is submitted to the marketplace. The “Send Feedback” button are using the mail client on the device to send an e-mail where I have specified the to address and the subject.

If you want to learn how you can do this have a look at this article at I downloaded their example project and used the code I found there (with a few modifications).

Buttons added to the bottom of the About page

I now think that the PinCodeKeeper app is good enough to be submitted to the marketplace.

Published at DZone with permission of Per Ola Sæther, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)