KarmicClient

Revision 12 as of 2009-08-18 23:03:19

Clear message

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.

Rationale

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:

  1. A status icon in the notification area of the top panel.
  2. Notifications, displayed using notify-osd.
  3. Nautilus emblems, offering users a view of sync status at file granularity.
  4. 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.

Status Icon

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. Here is an example of the status icon when Ubuntu One is performing a large update:

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 status icon visibility

  • 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: In an ideal world, 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: Extra Information

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.

Notifications

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

  1. Each notification mentions "Ubuntu One" exactly once, in the message body. This rule can be bent if more descriptive icons are used.
  2. 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.
  3. 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.
  4. Small uploads finish instantly. Users are not notified when a single change to a small file causes an upload.

Downloading Files

downloading_files.png

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.

Large-update notifications are followed by a terminal notice to inform the user that the large update has finished.

downloaded_files.png

Uploading Files

uploading_files.png

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.

Updating Files Changed Elsewhere

updating_files.png

updated_files.png

When multiple files are updated elsewhere, the user is notified when the changed files begin downloading, and when the changes are completely downloaded.

updated_file.png

If a single file is changed elsewhere, the changes are downloaded and the user is notified only when the local copy is finished downloading.

Sharing Invitations

sharing_invitation.png

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.

Miscellaneous

update_error.png

When an unexpected error forces Ubuntu One offline, the user is notified.

Nautilus Integration

Ubuntu One Client Application

u1-client.png

Changes that need to be made:

  • It should say "share a folder" instead of "share a file", you can only share folders

Icons Needed

User Stories

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 Layla 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.

File Browser

  • "Shared with me" folder
  • Emblem for file completely synced
  • Emblem for file not yet synced

  • Emblem for file actively being updated

status icon

  • Updating
  • Error (service is not running)