The big question is, "should background apps minimize or close their
window?"
AFAIK it's a purely technical issue that's ultimately up to Gala
devs, so I can't see the point of writing it down to the HIG or
discussing it here.
IMO the UX-related question is "when should background apps show
their icon in the dock, and if should they do that at all?".
It seemed to me that Noise should be easily accessible from the dock
while it plays music, so that the user can pause playback or switch
to the next track easily, regardless of the presence of media keys,
which are still uncommon around here. Also, turns out many people
don't discover media keys even when they are present - keyboards have
so many keys...
This is why I pushed for minimizing Noise during playback when
running in Pantheon. I also pushed for making it exhibit shell-native
behavior, e.g. hide the window instead of minimizing it when running
in Unity, but I'm not sure if that was implemented.
I'm inclined to think that close is the cleaner solution here when
we're talking about making closing workspaces on Gala work properly,
making "opening" (re-opening technically) these apps work as
expected, etc. Think about it this way: How many apps does a user
maybe want to be running in the background on start-up 24/7? Here's
a few background apps I know that I have running on my Phone:
Twitter
Facebook
Email
Messages
ESPN (gotta know when Barça is playing)
Music
Calls
Mint (I get alerts if I go over-budget)
Fitocracy
Does it make sense to have all these windows minimized to my 1st
workspace every time I log in since they all (in at least some way)
need to be running in order to work properly? I just don't think
that makes sense from a window management perspective.
I'll reply with a quote from the very same HIG page:
If the app performs repeat background tasks (such as checking for
new mail), the background tasks should be handled by a separate
daemon.
All the apps from your list except Music perform some background
tasks repeatedly, so they fall into this "background daemon"
category. More specifically, they wait for some event and notify you
when it happens. Of course it's counter-productive to make them all
clutter the dock at all times.
However, showing a dock badge with the number of action items in the
app is an important means of notifying the user about the event
because this way the dock provides a persistent overview of remaining
action items. Dock badges are complementary to showing a notification
but they're also important because the user is not always willing to
react to a notification immediately and notification backlogs are far
too cluttered to be useful.
The way I see it, these "background daemons" should only display an
icon in the dock when the daemon has some new action items. Although
the definition of "new" is a bit vague here - looking at how some
people never get the unread mail count in their inbox to zero, I
doubt it's a good idea to show an email client inon in the dock with
the badge "243" all the time. Maybe it's better to only show the icon
when the number of unread threads increases or display the number of
unread emails since you last checked the inbox instead of the actual
count of unread threads. But this is a topic for another discussion.
And regarding that quote, I have a bone to pick:
If the app performs repeat background tasks (such as checking for
new mail), the background tasks should be handled by a separate
daemon.
Not only the Human Interface Guidelines advice on the matters of
software architecture, they also provide no rationale for doing so.
It's as ridiculous as an interior designer writing "and by the way,
only build houses on this type of foundation" in a book on interior
design. I mean, what can interior designers possibly know about
foundations? And why do they even care?
--
Sergey "Shnatsel" Davidoff
OS architect @ elementary