Getting Windows 8 Applications into the Windows Store


The Windows App Certification Kit
Developers will need to get their applications certified before being able to get into the Windows Store. Windows 8 applications rely on Metro design guidelines. This post will provide some guidelines. These are some basic ones worth repeating.
 


Basic High-Level Prerequisites

  1. You will need the latest version of Windows 8. On 6/4/2012 that would be Windows 8 Release Preview.
  2. You will need to install the Windows App Certification Kit
  3. You will need a valid developer license for your computer
  4. The final step is deploy the Metro style app to the test computer

Using the Windows App Certification Kit

  1. There are two ways to use the Windows App Certification Kit
    • Validate your Metro style app by using the Windows App Certification Kit interactively
      • appcertui.exe (found C:\Program Files\Windows Kits\8.0\App Certification Kit)
    • Validate your Metro style app by using the Windows App Certification Kit from a command line
      • appcert.exe reset
      • appcert.exe test -apptype metrostyle -packagefullname [package full name] -reportoutputpath [report file name]

The app manifest file- Where app certification starts

Before jumping into the test, let's review some of considerations a developer should be aware of when trying to enter the Windows Store. There are a variety of tests around the application manifest file.

A little background on the application manifest file.

  1. When building Windows Metro style applications, Visual Studio will automatically create the application manifest for you.
  2. The file will be called Package.appxmanifest
  3. Visual Studio 2012 provides a Manifest Designer.
  4. It will be included in the root of the project.
  5. It is simply an XML file.
  6. There is a GUI editor for editing the application manifest file (Manifest Designer).
  7. The application manifest describes your application package.

The 4 or 5 tabs of Metro Designer

Tab Tab Title Tab Description Example
Tab 1 Application UI Use this page to set the properties that identify and describe your app when it is deployed. This is about the user interface. You can specify the friendly name for your application, logo, start page, toast notifications, splash screens.
Tab 2 Capabilities Use this page to specify system features or devices that your app can use. Developers can specify what capabilities of the underlying OS that an application can make use of. The developer can provide read/write access to the user's document or picture libraries, allow enterprise authentication, define inbound and outbound Internet connections. Also, think about hardware access, such as microphones, web cams, removable storage, GPS.
Tab 3 Declarations Use this page to add declarations and specify their properties. Some interesting declarations include support for background tasks, where external triggered events can result in a call to a Run() method so you can do things in the background. You can specific control the printer, URL protocols (like the mailTo), search. There are many other declarations. See this link for more information. https://msdn.microsoft.com/en-us/library/windows/apps/br230259(v=vs.110).aspx#ApplicationUI
Tab 4 (only for JavaScript projects) Content URIs Use this page to configure network boundaries for your app. You can create rules or modify existing ones. This page appears only if the app is a Metro style app that was built by using JavaScript. The example is that there may be restricted sites you want users to not be able to get to from your application. Remember, this is only for Javascript-based projects.
Tab 5 Packaging Use this page to set the properties that identify and describe your package when it is deployed. The entries here are mostly for the developer, such as specifying the version number, the package name. But there are also entries that affect the user, such as Logo and Package Display name.
       

Windows 8 app certification requirements
Although this is not the complete list of requirements, I wanted to iterate through a few of them. There are some obvious ones, like your add must provide a unique, creative value, or some utility of some kind. You should be able to skim through the list below to get some ideas about things you should be thinking about.

More details about certification https://msdn.microsoft.com/en-us/library/windows/apps/hh694083.aspx#acr_6_6

Trial app or paid app

  1. The trial app must reasonably resemble the full functionality.
    • You can limit the features in the trial app
    • You can also limit the time that the app functions

Tiles

  1. You are limited to "one tile"
    • The tile must relate to the app itself in a meaningful way

Advertising

  1. There are content policies should your app show advertising
  2. Ads cannot be shown in Tiles, Notifications, App Bar or the swipe-from-edge interactions
  3. Ads cannot execute code not provided by the ad provider.

Metro Styling

  1. You can only use the Metro style APIs to implement the features of your app
    • This means you cannot link to, depend on, or otherwise make use of APIs or Windows OS services other than those described in the Metro style apps API reference
  2. Your app must provide the same user experience on all processor types that it supports
  3. App updates must not decrease app functionality
  4. Your app must fully support touch input, and fully support keyboard and mouse input
    • There are touch guidelines
  5. Your app must support a snapped layout, which means it must support multiple views that well on devices of various sizes and orientations
  6. There are 3 view states (full screen, snap, fill)
  7. There are requirements around suspend/resume, app bars, navigation bars, swiping techniques
  8. Low power computers typically respond slower. Your app must perform well, regardless.
    • The app must launch in 5 seconds or less
    • The app must suspend in 2 seconds or less

Sharing personal information

  1. Your customers must be offered an opt-in consent for any information that will be used or shared. An opt-out policy must also be made available.
    • Examples of personal information include: contacts, photos, phone number, SMS or other text communication, images of the computer’s desktop or screen shots, browsing history, and other internet setting

Technical Support

  1. You must provide technical support for your application
    • You must provide the "Support contact" info field of the "Description."
  2. You must localize your app for all the languages that it supports

Download for Azure SDK