Unnamed Blog with Serifs.

My dumb old blog from when I was 16.

Sunday, September 5

On the usability of BitTorrent

It's been noted recently by several people that while BitTorrent is an amazing piece of technology, the user interface so far pretty much stinks. Being an amateur UI enthusiast (that's not a phrase you hear too often, eh?), I took it upon myself to do something about it.

(Link to mock-up image at the bottom of the post)

I did most of the work in Interface Builder, with some screen-caps thrown in to emulate a working app (like partially-filled progress bars). The idea was to give it an interface that's extremely easy to use, and is similar to the other way most people are familiar with for downloading files — their web browser's Downloads window.

The biggest problem is making it easy for novices to utilise BitTorrent without having to understand the underlying technology, but without undermining the core concept of BitTorrent that makes it work so well — uploading. All current clients rely on you to keep the download window open after the file is finished to keep uploading. This is confusing to anyone who's not familiar with BitTorrent technology (Why keep the window open if it seems to be done?). To solve this problem, I did two things — separated Uploads from Downloads, and added Automatic Uploading.

It's not realistic to rely on user's to keep the window open to keep uploading. Therefore uploading is handled by the application itself. In the preferences, you simply set the percentage of the original file-size you want to upload, and it's handled in the background. For this example I've set the default at 200%, but not being real familiar with how it works, maybe someone more intimate with BitTorrent could suggest a better default that would keep the download speed up.

The user can of course set their own percentage, but nothing below 100% (again, maybe a BitTorrent aficionado could tell me if this is too high/low). To encourage people to upload more, certain incentives are offered for higher Upload percentages. In this example, 800% gets you early version announcements (other people get announcements delayed by several hours, or maybe don't even get automatic version checking at all) and 1200% gets you access to source code. The latter will probably have to be changed, since source code access is not much of an incentive at all for normal users, and ideally this would be open-source in the first place — perhaps access to a newsfeed of BitTorrent news, or a BitTorrent download site? (This one would work especially well if an Official BitTorrent site were set up containing legal Torrents, as suggested by someone who's name I can't remember — the incentive could be access to premium Torrents, or the ability to post your own torrents, or even a newsfeed of new torrent files added).

If you desire even more control over your Uploads, you can check the "Keep uploading files until I stop them" option, which will do exactly as it says — giving you manual control over your uploads, as other clients do. To stop uploading you just click the "Clear" button in the Uploads toolbar (more on the toolbar below).

As for the interface elements not apparent in the image:

The Uploads view looks just like the Downloads view, except that the total file size would represent whatever percentage you have set in the preferences, unless you have checked the "Keep uploading files until I stop them" option, in which case there will simply be no total size, and the progress bar will simply be an indeterminate state progress bar (the one with the diagonal stripes).

Removing an upload or a download will not effect it's equivalent entry in the other view. So a novice user never even needs to venture into the Uploads tab — the downloads will be removed for the list when they are done (or when the user removes them, if they have the appropriate option selected in the Preferences) and the Upload will continue in the background until it reaches the set percentage. One more step is taken to ensure that users do not quit the app when uploads are going on: a dialogue box with something to this effect in it "You currently have files that are still uploading. Uploading files is what makes BitTorrent so fast for everyone, so it is strongly suggested that you keep the application open until all items in the Uploads list are complete." with buttons "Quit" and "Keep Open" ("Keep Open" being the default).

The columns in either Uploads or Downloads view can be used to sort results. the Name column will ort by name, and the Progress column sorts by percentage that is completed (maybe it would sort by the pure amount of data completed, but I think percentage would be more useful). If you have checked the "Keep uploading files until I stop them" option, then the Progress column in Uploads will be sorted by the amount of data uploaded.

The help buttons in the Preferences bring up a help page on the feature in question. However, rather than going into any more technical detail than is absolutely necessary, they focus instead on the results of changing these preferences and why you should or shouldn't do so.

The "Advanced Options…" button brings up a second Preferences window with all the standard BitTorrent options. Those which do not apply to this interface being left out, of course. I'm thinking that it may be better to not even include this at all, since most of these options are really Never, Ever, required.

When an error is encountered while downloading a file, in most cases it is not presented to the user. If a piece fails hash-check, just re-download it. If there is a problem connecting to the tracker or some other connection problem, it is re-attempted a few times, and then if it still cannot connect, the download stops and the progress bar is replaced with short descriptive text ("There was an error connecting to the server") and a retry button appears in the Progress column.

The toolbar is not shown by default, but has these buttons which can be added to it:

  • Clear: removes all completed downloads (only if appropriate option is selected in Preferences to not do this automatically).

  • Info: shows an inspector window with information on the particular torrent, including Comment, Author, Creation Date, Info Hash, Encoding, Etc.

  • Reveal In Finder: show the file in the Finder (for completed files only, to avoid confusion when people open a half-downloaded file. Double-clicking the icon in the list opens the file in the default app, or if it is a folder, has the same effect as this.

  • Stop: Cancels a download. The file is still listed (with a restart icon in place of it's progress number) until the user clicks Clear.

  • Open With…: A pop-up menu of all applications that can open the file


That's everything I can think of now, so Here's the image.

This is just an interface. I don't have any actual coding experience, so I can't make this on my own. However, I would be thrilled if one of the major BitTorrent clients (maybe even the official one) would adopt this interface, or release a client with this interface. I would absolutely love any feedback at all on the design. It's quite possible that I missed something, and if that's the case please let me know and I'll amend it. Hopefully you agree with me that such a client would do wonders for the usability (and therefore the user-base) of BitTorrent, but I need your help. I'll respond to any comments or questions you leave.

Powered by Blogger