Join the DZone community and get the full member experience.
Join For Free
Deploy code to production now. Release to users when ready. Learn how to separate code deployment from user-facing feature releases with LaunchDarkly.
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
- You will need the latest version of Windows 8. On 6/4/2012 that would be Windows 8 Release Preview.
- You will need to install the Windows App Certification Kit
- It is included in the Windows Software Development Kit (SDK)
- The Windows 8 Software Development Kit
- You will need a valid developer license for your computer
- Visual Studio 2012 RC can give you a developer license
- Powershell cmdlets can also provide developer licensing
- The final step is deploy the Metro style app to the test computer
Using the Windows App Certification Kit
- 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.
- When building Windows Metro style applications, Visual Studio will automatically create the application manifest for you.
- The file will be called Package.appxmanifest
- Visual Studio 2012 provides a Manifest Designer.
- It will be included in the root of the project.
- It is simply an XML file.
- There is a GUI editor for editing the application manifest file (Manifest Designer).
- The application manifest describes your application package.
The 4 or 5 tabs of Metro Designer
|| Tab Title
|| Tab Description
| 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
|| 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
|| 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. http://msdn.microsoft.com/en-us/library/windows/apps/br230259(v=vs.110).aspx#ApplicationUI
|| Content URIs
|| The example is that there may be restricted sites you want users to not be able to get to from your application.
|| 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.
Trial app or paid app
- 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
- You are limited to "one tile"
- The tile must relate to the app itself in a meaningful way
- There are content policies should your app show advertising
- Ads cannot be shown in Tiles, Notifications, App Bar or the swipe-from-edge interactions
- Ads cannot execute code not provided by the ad provider.
- 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
- Your app must provide the same user experience on all processor types that it supports
- App updates must not decrease app functionality
- Your app must fully support touch input, and fully support keyboard and mouse input
- There are touch guidelines
- Your app must support a snapped layout, which means it must support multiple views that well on devices of various sizes and orientations
- There are 3 view states (full screen, snap, fill)
- There are requirements around suspend/resume, app bars, navigation bars, swiping techniques
- 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
- 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
- You must provide technical support for your application
- You must provide the "Support contact" info field of the "Description."
- You must localize your app for all the languages that it supports
Published at DZone with permission
, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.