The text above is pretty abstract and meta-level. In this section I present some examples that illustrate those abstractions. Here are examples of tasks we often want to accomplish. Notice that often the tasks are composed of a number of subtasks.
- Take a picture, add text labels, frame it, adjust colors, publish/share to various services.
- Look at historical data, analyze trends and predict future outcomes.
- Find a restaurant of particular style, get driving directions, send it to a friend so we can meet there.
Following are examples to illustrate principle of context, representation and actions of apps.
File manager Context opened folder and files it contains,
custom selection of files
Representations textual list or grid of icons Actions copy, delete, move file, etc.
Video Context video clip Representations play it as a movie,
display it as a time line and frames for editing
Actions play it, attach subtitles, play it at faster speed,
cut frames, move a sequence
Web page Context URL Representations graphical rendering, source code Actions navigate to another url by clicking link, fill in a form, make text bigger, extract some useful information
Now two examples of how simplified interfaces can make apps entirely unusable:
Example 1: Android timer. Great interface, simple and does what it is supposed to do. But the sound is super annoying to me. Unfortunately it does not have settings. I have to download and learn another app. Another downside is that many apps that replace basic system’s functionality abuse permissions and display invasive adds.
Example 2: I use Dropbox to store my notes as a files. I can use powerful editor on desktop to manipulate the notes. Sometimes I have ideas on the go. There is no way to open and edit particular text file on iOS and save it back. This makes Dropbox on iOS pretty much useless. There are some editors for which the developers explicitly created integration. But these apps usually access all of the files and need to synchronize them upfront.
This example illustrates how computer can learn what tasks we want to accomplish with certain files. The computer can automatically make the process much more efficient.
For example the computer can learn that for JPEG images large 1000px (usually photos) I often adjust white balance, apply some filters and share to other platforms. The interface would automatically present these actions based on the context. On the other hand, PNGs are mostly used for web graphics, so computer could learn that it is important to optimize the size.
Many tasks are very hard or even impossible to accomplish. Either you must be lucky that someone has built the solution to the exact task you want. Or you can program the solution yourself, which is usually non-feasible for one-off tasks. This example shows how composition of smaller pieces can enable us to achieve things that might be very difficult with current-state software.
Many applications implement different versions of a slideshow functionality. Slideshow is just displaying images one at a time on full screen. When the system already knows how to display an image and includes operations on list of things, there is no need to load external application. Lets say you want to display 4 images at a time. Either you can search for an application that supports it, or maybe you can drag these into a presentation program and manually arrange them. In a more mature ecosystem you could instead use standard functions to partition the files into groups of 4 and then display grid of images for each group.
Now I present some scenarios how composition of functionality created by different vendors might allow us greater flexibility and effectiveness. Imagine following possibilities:
- Microsoft Excel is great for manipulating data. Imagine you could buy extra plugin to predict some patterns. You could use this plugins to analyze data from a table on some web page or sales data from your eshop. Once you need more capability you could use some of the MATLAB functionality and you would not loose the plugin functionality because of an introduction of another environment.
- Imagine Instagram being separated into actions applying filters and sharing. You could then use the filter for images taken on your DSLR.
- You would buy Photoshop bundle from Adobe than performs certain effects. You could then use them also to modify photos on your phone.