CocoaDialog Standards

Spawning external dialogs from an Alfred workflow is known to be a sensitive issue. The majority of users using your workflow don't want to fiddle with multiple dialogs comming from seemingly nowhere. As such, we have defined some general guidelines for using dialogs in your workflows. Of course, we can't force you to follow these standards. But we do implore you to take into consideration the importance of presenting a quality workflow to the Alfred community.

Avoid dialogs

As a principle, if you can implement setting a configuration in Alfred itself, work without dialogs.
Although, if toggling through Alfred starts to dampen the user's experience, it is better to use a dialog.

Optional dialogs

Being able to toggle the use of dialogs is always good thing to include in your workflows. Allowing the user to choose whether certain dialogs are spawned is a very professional approach to using dialogs in your workfow. However, be aware that if you allow dialogs to be disabled, you should have a backup method to accomplishing the same task through Alfred.

Notifications over dialogs

If you only need to convey information to the user, choose to use a notification over a dialog.

Short descriptions

Please don't fill your dialog with a wall of text. Try and work your dialog's text down to one or two short and informative sentences.

Your dialog's title

Always include your workflow's name in the title of your dialog. This attempts to eliminate the ambiguity of from where a dialog is spawning.

Random dialogs

Avoid automatically launching dialogs (if possible). Instead, make dialogs appear only after the user has selected an option in Alfred.

Progress bars

Progress bars should only be used for completing an action that will take long enough to warrant one. After all, a progress bar is only there to assure the user that a process is still running and hasn't gotten stuck.

Using custom dialog icons

It's generally a good practice to use icons of double quality to ensure a crisp display on all screens (default and retina).

Complex dialogs

The beautiful thing about CocoaDialog is the simplicity of the available dialogs. So please stick with a simple dialog rather than creating a complex and confusing one.

Multiple dialogs

If your planning to launch multiple dialogs for a single action, but deffinitly need them, maybe think about using some other tool (like Pashua).

User input

Never make the user write anything syntax specific. Make sure your workflow can parse, sanitize, and normalize any input you need to gather.