This is a specification, whose contents should reflect the most recent technical and design decisions surrounding the Ubuntu One client implementation for Ubuntu 9.10. To comment on the spec, please use the comments page.
For Ubuntu 9.10, Ubuntu One will primarily serve as a tool that enables users to perform file synchronization over the Internet. On one hand, we would like to provide a stable visual cue when Ubuntu One is actively syncing files, or when Ubuntu One is interrupted for a prolonged period of time, so that users will understand when their computer is busy synchronizing files, or when Ubuntu One service has been interrupted. On the other hand, we do not want to place a persistent interface element, such as a status icon, on the screen because most of the time Ubuntu One is in a copasetic, idle state, or performing small, precise updates that do not warrant a constant user stimulus.
With these considerations in mind, the Ubuntu One client's user interface for Karmic will consist of a conditionally displayed status icon that shows only when Ubuntu One is interrupted due to an error, or when Ubuntu One is performing prolonged, resource-intensive tasks that could have a deleterious effect on user experience and thus prompt the user to seek an explanation. Notifications and Nautilus emblems also form a part of the client's user interface.
Karmic+1 and Beyond
The conditionally displayed Ubuntu One status icon may eventually be superseded by a more general Downloads indicator. The proximate introduction of the Downloads indicator is another reason not to place a persistent Ubuntu One status icon in the panel, as the removal of that icon in Karmic+1 would likely be met with strong disapproval from users who had become accustomed to it during the Karmic cycle.
Karmic Interface Overview
The Ubuntu One client interface is consists of four interface components working in concert:
- A status icon in the notification area of the top panel.
- Notifications, displayed using notify-osd.
- Nautilus emblems, offering users a view of sync status at file granularity.
- A normal application window, allowing users to enable, disable, and otherwise configure Ubuntu One.
A fifth interface component--the Ubuntu One web client--is an important part of the user experience for Karmic, but it is treated separately from the non-web components.
The status icon must only be visible when the software is performing long-running file synchronizations or when Ubuntu One has been forced offline due to an error. Once shown, the status icon must remain on screen long enough for the person to see it and hover over it, even if the task has finished; it should not appear and disappear so quickly that it "blinks".
The status icon must always be easy to ignore, and must not distract the user.
Rules for Showing the Status Icon
- The status icon should only be visible when:
- Uploading changes over 1mb
- Downloading changes over 2mb
- It should be visible for a minimum of 15 seconds, even if the task has been finished, with the tooltip being what was done
Note: Ideally, we would probe the connection speed and decide whether to show the status icon or not adjusted to the connection's speed, but this seems to be much harder to do for Karmic.
Status Icon Presentation
Clicking on the status icon should reveal a menu with status information, and the options to defer the current activity for a half hour, or to disconnect Ubuntu One entirely.
Idle (Files are up to date)
When Ubuntu One is idle or performing a small update, no status icon is shown.
Updating (Uploading and Downloading)
When performing a long-running update, an "updating" status icon is shown until 5 seconds after the update is complete.
Updating: Menu Status Information
The status icon reveals a menu on left-click. This menu is not meant to match the features of the previous Ubuntu One applet; it merely shows a brief status message and allows the user to quickly disconnect Ubuntu One or access Ubuntu One preferences if an errant update prompts the user to terminate the operation or otherwise change Ubuntu One's behavior.
The status message is "Updating N of M files..." where N is the number of files uploaded or downloaded during this update so far, and M is the total number of files being uploaded or downloaded during this update.
When file updates are complete, the menu status is changed to "Your files are up to date" and the status icon remains visible for 5 seconds before hiding.
Disconnected Due to An Error
When Ubuntu One is disconnected due to an error, an error status icon is shown and the menu status is set to "Ubuntu One Disconnected." At this point, the user can attempt to reconnect by clicking "Connect," or investigate further in "Preferences...".
In the following sections, Ubuntu One client's use of notifications is detailed. It may seem like the user is being inundated with notifications, but the notification strategy has been carefully designed so that the number of notifications seen in a normal day's use is minimal. The user may see two notifications at session start if Ubuntu One client has to download changes, a notification whenever the user is invited to share a folder, and a notification whenever a sufficiently large upload is completed. Most users will not have to download changes at session start, will not receive sharing invitations with tremendous frequency, and will not perform large uploads daily; furthermore, invitations to share are interpersonal so they are not perceived as perfunctory software nagging.
Guidelines for Use
- Each notification mentions "Ubuntu One" exactly once, in the message body. This rule can be bent if more descriptive icons are used.
- Notifications in general serve to make the user aware of two states: State 1 (imbalance), your files are being updated; and State 2 (equilibrium), your files are completely up-to-date. Sometimes notifications are not shown and only the status icon is used to make the user aware of State 1 (imbalance); however, notifications reassuring the user that she is in State 2 (equilibrium) are nearly always shown.
- Do not display synchronous notifications in direct response to user actions. For example, if the user drags a folder of photos into her Ubuntu One folder, the user should not be notified that she is uploading a folder of photos. This would be telling the user information she likely already knows, which would be unnecessarily annoying and distracting; however, a notification would show when the photo upload completes because the user would not likely know that the upload had completed otherwise.
- Small uploads finish instantly. Users are not notified when a single change to a small file causes an upload.
When Ubuntu One is doing a large update, more information is shown, including the estimated time remaining. For example, this should be shown during the first sync, when Ubuntu One is potentially downloading gigabytes of data.
Title: "Updating Files..."
Message: "Ubuntu One is downloading N files. This will take about M minutes."
Large-update notifications are followed by a terminal notice to inform the user that the large update has finished.
Title: "Your Files Are Up to Date"
Message: "Ubuntu One finished downloading N files."
Users are not notified when they initiate uploads (only the status icon is shown); however, they are notified when sufficiently large uploads finish. The notification message displays a representative file name to help the user recall the event that precipitated the upload.
Title: "Your Files Are Up to Date"
Message: "Ubuntu One finished uploading FILENAME and N other files."
Updating Files Changed Elsewhere
When multiple files are updated elsewhere, the user is notified when the changes begin downloading.
Title: "Updating Files..."
Message: "Ubuntu One is downloading N files that were changed elsewhere."
When multiple files are updated elsewhere, the user is notified when the changes finish downloading.
Title: "Your Files Are Up to Date"
Message: "Ubuntu One finished downloading N files that were changed elsewhere."
If a single file is changed elsewhere, the changes are downloaded and the user is notified only when the local copy is finished downloading.
Title: ""FILENAME" Updated"
Message: "Your file was changed elsewhere. Ubuntu One updated the copy on this computer."
Users are notified when they receive an invitation to share a folder. If the user has elected to auto-accept sharing invitations, the information about the messaging menu is omitted, as the invitation has already been accepted and will not be displayed in the messaging menu.
Title: "Invitation to Share"
Message: "SENDER would like to share the folder "SHARE_NAME" with you on Ubuntu One. You can find your invitation in the messaging menu."
Icon: Shared Folder
When an unexpected error forces Ubuntu One offline, the user is notified.
Title: "Unable to Update Files"
Message: "Ubuntu One encountered an error and file updates have been disabled. Please use the Ubuntu One status icon to resolve the issue."
Sharing Folders with Others
Current Sharing Dialog with Small Changes
Sharing Dialog with Contact Picker
Ubuntu One Client Application
Celine just arrived home from a day of lecturing. The systems administrators at her university have just installed Ubuntu One on the faculty computers, and earlier that day she was given a lesson on how to use Ubuntu One to store and share her lecture slides. She is excited to see if Ubuntu One will help her access her lecture slides from home. She's noticed something called "Ubuntu One" on her computer at home, but she didn't know what it was for so she'd never opened it, but tonight she launches it for the first time and it asks her to log in with her Ubuntu account. Celine logs in with ease because she went through the same steps earlier that day when setting Ubuntu One up on her university PC. As soon as Celine logs in to Ubuntu One, she sees a notification that her files are being updated. Celine opens her Ubuntu One folder -- the same folder she saved her lecture slides in on her university PC -- and is delighted to see her files rapidly appearing there. By the time Celine opens her Ubuntu One folder to see if signing into Ubuntu One worked, at least half of her lecture slides are there and ready to be opened, which she verifies by choosing a recent presentation and double-clicking it. Celine is happy to see the presentation she created on her work PC opening on her home PC. "Ubuntu One is great!!" she whispers, thrilled that she will no longer have to carry a USB keychain to and from work.
Lola just spent the past four days in the library putting the finishing touches on the preliminary bibliography for her thesis, "Pre-execution via speculative data-driven multithreading." She is exhausted and impatient, and is in a hurry to meet her friends for a beer (or six). Before she goes out, she must satisfy her compulsive need to back up her work; right now, the fruits of her labor lie precariously on a USB keychain in her backpack. As soon as Lola gets back to her apartment, she plugs the USB keychain into her PC and drags its contents into her Thesis folder, inside her Ubuntu One folder. The files immediately begin syncing to the web, and Lola watches on the edge of her seat as one by one, each file gains a small emblem indicating that it has been synced to the web successfully -- she refuses to divert her attention until each and every last file is synced. After thirty seconds, it appears that her careful work has been saved to her PC and to the web with Ubuntu One, but just to make sure, Lola clicks the "View on Web" button in Nautilus to verify that her research is accessible on the web. Sure enough, the files are available online, and Lola can finally rest assured and join her friends for some well-deserved fun.
Joseph just put Julia to bed after a long day -- today was Julia's first Birthday, which the two of them spent at the beach playing in the sand. Joseph has some adorable snapshots of Julia playing around (and eventually destroying) the sandcastle they built and he cannot wait to send them to his sister and parents. He takes the SD card from his camera and puts it in his card reader. A file browser opens on his screen revealing the pictures on the card. Joseph selects the photos from the day and places them in a new folder named "Julia's First Birthday" inside his Ubuntu One folder. To share the photos, Joseph right-clicks on the new folder and chooses "Share on Ubuntu One," and types the names of his sister and parents in the Sharing dialog. When he is finished, he clicks "Share" and sees a notification that sharing invitations have been sent to the intended recipients. Fifteen minutes later, Joseph is notified of a Tweet sent from his sister's netbook: "@joebear those pics are 2 die 4!!! I am coming to visit that munchkin!".
- "Shared with me" folder
- Emblem for file completely synced
- Emblem for file not completely synced
- Emblem for file actively being synced
- Emblem for file with a conflict
- Error (service is not running)