1) Search contract
The search contract lets your users search through your app’s content from anywhere in the system.
Using the Search charm helps you:
- Take advantage of muscle memory that users have built by using the Search charm in the system and in other apps
- Ensure that users have a consistent and predictable experience when they search and when they change search settings
- Make your app more visible by placing it at the top of the list of searchable apps if the user searches your app frequently
To have a great search experience, follow the guidelines for search
If the applications implements search contract:
Repeat the steps below:
- When the target app is the current main app
- When the target app is not started
- When the target app is in snapped state.
How to make the test:
- Test empty query string.
- Start to enter a valid query string check for suggestions or recommendations and validate (e.g. No more than 5 suggestions, images, etc.)
- Commit the query string.
- Review the search results and check if they are meaningful.
- Verify that filtering, query string highlighting, etc. is working as expected.
- Navigate back and forth from the search and other pages of the app
- Verify that the navigation works as expected.
That is, you should be able to navigate back to the view from where you invoked the search contract.
- Verify that the search state is preserved.
- Verify that the state of other pages is preserved when the search contract is opened (e.g. in a mail app a started e-mail should be preserved).
- Verify that the navigation works as expected.
Specific to snapped view look for issues with layout changes (results page)
2) Share target contract
Users will always have information they want to share.
If your app implements the share target contract, it will always be one swipe away for the user.
If you want to increase the usage for your app, and have scenarios that can consume data from other apps, implement the share target contract.
Windows does most of the heavy lifting with sharing the data, you simply have to receive it and let the user access it within your app.
For more details, check the guidelines for sharing.
Check Manifest for declaration <ShareTarget>
Execute a share operation using the app as the target application and then ensure that:
- The look and feel is kept between that target and source application. Target should display shared data without changing formatting and content received from source.
- Navigation is implemented by the existing structure that supplies a default back-button
- No light fly-outs are used to avoid user confusion because the Share UI already uses light dismiss.
- Acknowledge user actions by letting the user know the system is responding for example through an inline message before closing the share pane.
- The share action buttons should be on the right side of the screen so that users can reach them with their thumbs. These buttons allow the target to specify which type of data to consume. With exception of navigation button these should be the only ones present.
- Data consumed should not be modified.
3) Share source contract
An easy way to extend your application and connect it to any other application or service is to implement the share contract. Participating in the Share contract means that you don't have to write extra code or provide other developers with an SDK for your app just to share content.
You will be adding value and exposing it in the consistent, safe way that all Windows 8 users will expect.
For details on sharing, check the guidelines for sharing.
Install SDK sample target and check the below items:
- Check that only selected items are shared.
- When possible create links to online content for sharing.
- Ask if they using datapackage.datapackagepropertyset this will allow more a sharing experience.
There are specific properties for example title, description, thumbnail, etc.
- Show errors inline
- Check that selections are preserved after a share operation.
- Ask what formats (dataset) they share and test target that it is visible.
Only share through the share charm.
4) Leverages file pickers
A Metro style app can call a file picker window to let the user browse their system and pick files or folders for the app to operate on or to let the user save a file using a new name, file type, or location ("save as"). Apps can also use file pickers as an interface that enables them to provide other apps with files, a save location, or even file updates.
Leverage file pickers within your app if you want to interact with user data that is stored in files.
To learn more about file pickers and follow the guidelines for file pickers.
Ask if they use file picker and have demo. Appropriates uses cases are:
- Access user-specified files and folders.
- Add "save as" to your app.
- Provide files.
- Provide a save location.
- Provide real-time file updates.
Check for inappropriate use:
- Don't use a file picker to explore, consume, or manage file content.
- For example, a photo gallery app should provide a customized, dedicated page and UI that lets users organize and view picture files within the app. The app can then customize this UI to best suit the user’s needs. When the user wants to add files to the gallery, it would call the file picker to provide a page and UI that is specialized for that purpose.
- Don't use a file picker to save a file if a unique, user-specified file name or location is not needed.