|
|
|
|
Sherlock 3 is a great way to deliver compact, specialized internet services. Consider the following tips to help your Channel provide the Mac OS X user experience your customers expect.
For more information about creating Mac OS X applications with a great user interface, check out the User Experience website.
|
User Interface
-
Use a custom, high-quality icon for your Channel.
-
Aqua offers small versions of most standard controls, such as push buttons and pop-up menus. Use these small versions of controls to maximize user data display space.
-
During development, try resizing the Sherlock 3 window while your channel is loaded. Be sure users cannot shrink the window and clip or hide parts of your Channel's user interface. You can set a minimum Sherlock window size for your Channel in the
<initialize> tag:
DataStore.Set("MyChannel.miniViewSize", "{width=700; height=450}");
-
Provide a link to your website, or an email link, so that users can give you feedback about your Channel.
-
Aim for consistency in your Channel's user interfacebe consistent with Sherlock channels included with Mac OS X, and create an Aqua-compliant user interface. Use your best judgement, and consult the Aqua Human Interface Guidelines to ensure that your Channel's user interface is easy to use and provides a great Mac OS X user experience.
-
Follow Channel design conventionsfor example, put any attribution in the lower left portion of your Channel's UI, and a "spinning arrows" progress indicator (to show network activity) at the top right.
|
User Interaction
-
When possible, have your Channel retrieve or display useful information when the user first switches to itlike the Movies and Stocks Channels included with Mac OS X. If it doesn't make sense to begin gathering data as soon as the user switches to your Channel, be sure that all query-related controls in your Channel are set to intelligent defaults that will aid users in their tasks.
-
Be sure to associate the Return and Enter keys with the "submit" or "query" action that your Channel performs; this is easily done with Interface Builder. The query action should have a visual component in your Channel's interfacea push button titled "Search", for example.
-
If your Channel downloads a chunk of information and the user then manipulates controls to "filter" that information, as in the Movies Channel included with Mac OS X 10.2, you should avoid using a query button. Likewise, in any Channel, once a specific query has been made, the user should be able to narrow down the resultsif appropriate without having to re-query. For instance, in the Dictionary Channel included with Mac OS X 10.2, once the user has searched for a specific word, she need only click once on a related word in the Thesaurus list for more information.
-
Auto-select the first item in a table when results are returned to that table:
<trigger path="MyChannel.MyTable.dataValue" language="XQuery" inputs="newsRowData= MyChannel.MyTable.dataValue" output="MyChannel.MyTable.selectedRows">
let $selectedRow :=
if (exists($newsRowData) and count($newsRowData) > 0) then 0
else
-1
return $selectedRow
</trigger>
-
Store query data in the Channel's persistent storage. Avoid forcing users to enter the same information repeatedly; instead, make the same pop-up choices and other relevant query inputs that were made when the Channel was last used:
DataStore.Set("PERSISTENT.userQuery", $query);
|
|