1. Windows Phone Application Publishing Lifecycle
When you develop a
Windows Phone application you distribute to Windows Phone Marketplace
through the Windows Phone developer portal. Figure 1 shows you the overview interaction of the developer to the developer portal to the Windows Phone Marketplace to the consumers.
First (1) you must register as
a developer with the Windows Phone portal and there will be $99 fee
that you would need to pay. Your identity will be verified and you will
be issued a certificate that the Windows Marketplace will use to sign
your application. In addition, your bank account will be verified so
that your earning can be deposited there. Next (2), if you haven't
already done so, you'll need to download the SDK tools you need to
develop in Visual Studio. After you've created your application (3) you
will submit it to the portal for validation and certification (4) so
Microsoft can assure the application abides by the Windows Phone
Marketplace rules. Once your application becomes eligible, it will be
signed using the certificate you received during registration (5), and
then published to the Windows Phone Marketplace (6).
Once the application is
published, users will be able to buy, download and install it from the
Widows Phone Marketplace portal. There, users can also rate it and
comment on its virtues and flaws, providing you with feedback that you
can use to improve it. The Marketplace will provide you with downloads
and sales information as well.
In the followings sections
you will be learning great deal about the certification requirements
and the process that will guide you through so that your application can
pass through and be submitted to the Windows Phone Marketplace.
2. Windows Phone Application Certification Requirements
In the battle of smartphones
between (iPhone, Android and Windows Phone), the applications available
on each smartphone will play critical role to winning the consumers to
use the phone. Windows Phone Marketplace puts in place the rules and
process to ensure that the published applications are high in quality.
You can download Windows Phone 7 application certification requirements
from http://go.microsoft.com/?linkid=9730558.
The following list describes the idea behind the rules and the process
imposed on publishing the application to Windows Phone Marketplace:
Applications are reliable
– You will be dealing with the consumers who will be picky and any hint
of the instability in the application will cause the consumers not only
talk bad about the application but the brand behind the phone. So
Microsoft will enforce the best practices for creating reliable
application.
Applications make efficient use of resources
– Your application must make efficient use of the pone resources and
make sure does not have any adverse effect on performance. For example
the battery life can be drained quickly if you continue to use the
location service or the accelerometer because you forgot to turn it off
after to use in the application and the user is continuing to use your
application not aware that location service and accelerometer is still
running.
Application does interfere with the phone functionality – The user must be notified before modifying any phone settings or preferences.
Applications are free of malicious software – The application must be safe to install and use.
In following sections, the
summary of main points will be presented so that you can be aware of the
content of the certification documents. Remember that the following
sections describing the certification requirements are based on version
1.3 and Microsoft could modify and release newer version. So check back
with the developer portal http://developer.windowsphone.com.
2.1. Application Policies
This section will cover
policies that will help protect the Windows Phone Marketplace and the
consumers using the Windows Phone application bought from the
marketplace.
2.1.1. Windows Phone application binary (XAP file)
You must compile your application in release mode from Visual Studio and it will produce a file with a .xap
file extension. A ZAP file is nothing more than a ZIP file with a
different extension name. In in fact, if you change the extension name
of your XAP file from .xap to .zip, you will be able to extract its file content. You should be aware of following facts.
For installation over the air, the XAP file must be no larger than 20 MB.
Must
disclose additional data package to be downloaded if greater than 50 MB
and notify the user that there might be additional charges depending on
how the data package is downloaded.
Maximum size of a XAP is 400 MB and a XAP greater than 20 MB can only be installed through Zune, or over Wi-Fi.
2.1.2. What your application must not do
This section will summarize what your application cannot do that is described in the Application Policies section.
Cannot sell, link or promote mobile voice plans.
Cannot distribute, link or direct the users to alternate marketplace.
Your application cannot taint the security or functionality of Windows Phone devices or Windows Phone Marketplace.
2.1.3. What your application must do
This section will summarize what your application must do.
Your application must be functional.
Your trial application (if submitted as trial) must reasonably include the feature subsets of the fully functional application.
If
your application enables chat, instant messaging, or person to person
communication and allows the user to create account the user must be
verified of at least 13 years old.
If
your application sells music, the application must include Windows
Phone music Marketplace (if available). If the content of the music is
purchased elsewhere the application must include its own playback media
play.
2.1.4. Location Service
Following requirements will deal with the location service (GPS).
Location must be obtained using Microsoft Location Service API.
Cannot
override, ignore and circumvent Microsoft toast or prompts related to
the Location Service API .
Cannot override a user's choice to disable location services on the phone.
Must have enable and disable option of the Location Service used in the application.
If
the location data is published other service or other person. Must
fully disclose how the Location Service information will be used,
permission to use the location information obtained, user has the option
to opt in and out, and there must be visual indicator whenever the
information is transmitted. Also must provide privacy policy statement
regarding the location service information usage.
Security must be in place to protect the location data obtained.
2.1.5. Push Notification Service (PNS)
Following section summarizes the policies relating to the push notification.
Must provide opt in and out option to use the service.
Cannot excessively use PNS that can cause a burden to Microsoft network or Windows Phone device.
PNS cannot be used to send mission critical that could affect life or death.
2.2. Content Policies
Your application must conform to
the content restriction of the Windows Phone Marketplace. If the
application you developed already has the ratings from ESRB, PEGI and
USK, you need to submit the certificate of the ratings. Keep mindful of
licensed materials, logo, name and trademarks. The content must not be
illegal or suggest harms. Any hate related contents are not allowed. Any
promotion of sales and illegal under local law of alcohol, tobacco,
weapons and drugs are not allowed. Any x-rated contents are not allowed.
Any realistic violence content will not be allowed. Any excessive use
of the profanity will not be allowed.
Keep in mind that this
section is highly subjective and Microsoft will have final saying at the
end. Best suggestion would be to take practical approach and ask
yourself if your application will be safe to be used and viewed by the
minor.
2.3. Application Submission Validation Requirements
In order to package and submit an application for certification, you must make sure that following requirements are met.
2.3.1. Packaging Requirements
When you are getting
ready to create a XAP, it is best to use Visual Studio and to compile
the binaries in Release Mode, which will produce the XAP file and take
care of the many requirements identified in the certification document.
Below requirements are things you should make sure to look into because
they are easy to overlook them.
XAP file cannot be greater 400 MB.
Application icon must be 62 × 62 of PNG file type.
Application tile image must be 173 × 173 of png file type.
Must have the application title.
2.3.2. Code Requirements
There will be coding requirements that your application will be subjected to. Following list described those requirements
Application must use documented APIs only found at http://msdn.microsoft.com/en-us/library/ff626516(VS.92).aspx.
PInvoker and COM interoperability is not allowed.
Application must be compiled in release mode.
Windows Phone assemblies cannot be redistributed.
When using a method from System.Windows.Controls APIs in Microsoft.Xna.Framework.Game or Microsoft.Xna.Framework.Graphics cannot be called.
2.3.3. Phone Feature Use Disclosure
When the user purchases
the application from the Windows Phone Marketplace the marketplace will
display what phone features the application will be using. This is done
through by submission of the application manifest file for Windows Phone
(http://msdn.microsoft.com/en-us/library/ff769509(VS.92).aspx).
The phone features added to application manifest is typically added and
removed automatically by Visual Studio so this is not something you
would normally be concerned with. But you must be aware to make sure
during your packaging process to check to make sure the features listed
in the application manifest are something that you are using in your
application and correctly represented.
2.3.4. Language Validation
Supported languages are
English, French, Italian, German and Spanish. Depends on where you are
submitting your application you must properly localize your application
for at least one of the supported languages.
2.3.5. Images for Windows Phone Marketplace
Your application must be
submitted with the images and screenshots that will be displayed to the
user in the Windows Phone Marketplace. Microsoft recommends that you
use 262 DPI.
Required small mobile application tile 99 × 99 (PNG) and large mobile application tile 173 × 173 (PNG).
Required large PC application tile 200 × 200 (PNG).
Optional background art 1000 × 800 (PNG).
Required screenshot 400 × 800 (PNG).
2.4. Application Certification Requirements
Once the application is
submitted for the certification process it will be tested against series
of certification requirements. Following sections will summarize those
requirements.
2.4.1. Application Reliability
This section will deal with certification requirements that deal with application reliability.
Application must run on all Windows Phone 7 devices.
Application must handle all raised exception and must not crash the application unexpectedly.
Application
must not hang and become unresponsive to the user input. If the
application is processing time consuming process the visual element must
provide progress bar with ability to cancel the progress.
2.4.2. Performance and Resource Management
This section will describe requirements that deal with performance and resource management issue of the application.
Application must launch
first screen within 5 seconds after the application is launched. 5
second rule also applies even after the application is closed or
deactivated and then restarted.
Application
must respond to the user input in 20 seconds after launch. 20 second
rule also applies even after the application is closed or deactivated
and then restarted.
When
Windows Phone Back button is pressed from first screen will exit the
application. If the Back button is pressed from other then the first
screen it must return to the previous page. In games if the Back button
is pressed it should pause the game with context menu displayed and if
the Back button is pressed again it will exit the pause.
Application cannot use more than 90MB of RAM. If the device has more than 256 MB the application can use more than 90 MB.
2.4.3. Phone Functionality
The application cannot
prevent the use of phone's functionalities or hang when making a call,
answering incoming call, ending a call, sending and receiving SMS or MMS
messages.
2.4.4. Security
The application must not
contain any virus and malware. Application must implement type-safe code
as described in unsafe code and pointers (http://msdn.microsoft.com/en-us/library/t2yzs44b(v=VS.80).aspx). And finally the application must not run security critical code as described in security changes in the .Net Framework 4 (http://msdn.microsoft.com/en-us/library/dd233103(v=VS.100).aspx).
2.4.5. Technical Support Information
The application must include the application name, version, and technical support information.