Mac

August 17, 2017 · View on GitHub

Where should it live?

from Mini Calendar

Within the menubar, you could basically house a mobile app, like Chrono Plus – Time Tracker & Timesheet on the Mac App Store:

Menubar Capabilities:

  • drag from opened menubar app. Dropping will keep it open.
  • drag from outside menubar app. Drop onto menubar for your app to receive conent.
  • Stay Visibile to keep it open even when clicking away
  • Can dynamically resize the window once it is opened. Even full-screen it.
  • See NoteAway — Your Thoughts in the Cloud for an example of all of these.

Considerations:

  • dark vs light theme
  • global hotkeys?
  • full screen mode?

Window

Considerations:

Floating window

Considerations:

  • adjustable opacity?
  • adjustable style (to match user's background)?
  • able to toggle "always on top"?
  • resizable?
  • global hotkeys?
  • full screen mode?

Pinned to desktop (Desktop Widget)

  • Pinned
  • No titlebar
  • Power users would have "easy" access to these via the f11 hotkey to Show Desktop (found in Mission Control settings)

from Countdown Timer Plus on the Mac App Store

Considerations:

  • adjustable opacity?
  • adjustable style (to match user's background)?
  • able to toggle "always on top"?
  • resizable?
  • global hotkeys?

Dock

  • Not just for launching. Can also show information.
  • Just update the icon with information. See the built-in Activity Monitor, for example:
  • Can also launch popups, like those shown in menubar.

Misc

Note that you can use webviews to display web content in these locations, too. Notes for Google Keep and Miya Notes for Google Keep are good examples of this.

Extension Points

Open to all types

Notifications

  • "Apps can use notifications to provide timely and important information anytime, even when the screen is locked. For example, notifications may occur when a message arrives, an event occurs, new data is available, or the status of something has changed. Notifications can be local or remote. Local notifications originate and are delivered on the same device. A to-do list app, for example, might use local notifications to alert someone about an upcoming meeting or due date. Remote notifications, also called push notifications, come from a server. A multiplayer game might use remote notifications to let players know when it’s their move." - Notifications - System Capabilities - Human Interface Guidelines for macOS Apps
  • User enable/disable-able on a per-app basis via System Preferences
  • Two types:
    • Banner - "Appears at the top of the screen for a few seconds while the Mac is in use, then disappears. May include up to two buttons for taking action. If a banner includes buttons, they appear only when the pointer is positioned over the notification."
    • Alert - "Appears at the top of the screen while the Mac is in use and stays there until manually dismissed. Includes one or two buttons for dismissing the alert and taking action."

Notification Widget

Context Menu (in Finder)

  • Not necessarily where it lives, more of how it is invoked. This is an extension.
  • Context Menu Lite

Actions

  • "An Action extension lets people initiate content-specific tasks, such as editing an inline image, adding a bookmark, or displaying selected text in another language, without leaving the current context." - Action Extensions - Extensions - Human Interface Guidelines for macOS Apps
  • Two types of Action
    • Viewer - display content in a custom way
    • Editor - edit content, then replace original with new
  • Triggered via hovering over certain content (like images), or pressing buttons.

Automator Actions

  • "Automator lets people automate time consuming and repetitive tasks by constructing workflows. A workflow consists of one or more actions, each of which performs a single, specialized task in the system or an app—such as opening a file, resizing an image, or opening a webpage. When a workflow runs, its actions execute sequentially, working together toward a common goal." - Automator Actions - Extensions - Human Interface Guidelines for macOS Apps

Share

Services

"Services let people access functionality in one app from within another app." - Services - Extensions - Human Interface Guidelines for macOS Apps

Question: Service vs Share

The two are really similar and should probably just be consolidated in the future, but as far as I can tell, Service is for primitive selected content (text, image, etc). Share is for non-primitive content, sometimes selected (Finder file select, Things 3 task select) or not selected (current webpage in Safari).

If your app is document-based

Spotlight

Search and Spotlight - System Capabilities - Human Interface Guidelines for macOS Apps

Quicklook

Provide a Quick Look generator if your app creates custom or uncommon types of documents.

Quick Look - System Capabilities - Human Interface Guidelines for macOS Apps

Printing

Printing - System Capabilities - Human Interface Guidelines for macOS Apps