Two small things every app does, waiting and stepping back, had been solved three times in three ways. This evening they were solved once.

waiting that looks like what is coming

Every app that follows cube design had borrowed its loading look from somewhere else: grey pulsing cards and a spinning ring in Mosaic, pulsing rows in Anlat, a breathing pale circle in Cubes. Selim: “cube design should find its own loading view.” Not necessarily one: “we don’t have to have a single one, but we can start from one.”

A survey and four prototypes were made only from cube design’s own shapes: the stickers fill, the places wait, the cube turns, the cube grows. Selim picked two. While a page is on its way, the cube picture’s pale stickers take colour one by one over the square’s pale places; a tile or a button that is saving shows a tiny cube whose colours turn round. Waiting looks like the thing that is coming, an unfilled cube rather than a list of grey bars. A failed load is the picture at rest, pale, never red, beside the app’s own try again.

The loading look: the cube’s stickers take colour one by one over pale places. A failed load rests pale, never red.

The loading look: the cube’s stickers take colour one by one over pale places. A failed load rests pale, never red.

one pinch, one level

Two fingers coming together is how every cube app steps one level out. On a Mac trackpad, one pinch sometimes stepped two. The cause: a trackpad pinch is a stream of wheel events with no end, and a fixed pause per screen let the next screen take the rest of the same pinch. Mosaic fixed it in the morning. In the evening the fix was checked and moved into the shared Angular library as the gesture alone, because every other copy had the same fault. Selim: “so that we will not keep repeating this problem again and again.”

three threads, one release

Then one thread per app, Cubes, Anlat and Mosaic, side by side, all needing the same unreleased version. They settled it among themselves in two messages: Anlat would cut the release, the others would build against a local copy meanwhile. Before releasing, Anlat found that its screens come in through view transitions, and during them the wheel events land outside every pinch. The fix went into the library before the release, and the others re-tested against it. Mosaic changed 61 loading screens without touching any of them: the shared piece changed inside. Selim’s plan for the night had been simple: “in the morning i will have better cube apps thanks to you.”

a rule that said no, then a signature

Anlat has a rule never to draw a cube. A screenshot of the loading cube on its story screen made the conflict obvious, so the thread asked Selim instead of shipping it, and shipped only the part that bent nothing. The next day he decided: “this is a loading. it’s a kind of a signature of a cube design library … this is not violating the rule that we put no cubes in the anlat application.” He kept the door open too: Anlat is sensitive, and later it may choose other pictures. For now all three apps load the same way.

a designer for prototypes

One prototype that day did not work at all, and the steps Selim was given did not match the screen. The runner had passed it, because it plays moves, not a real trackpad. Selim: “we may need to have like a designer role … so that we can build some practices that whoever works on some prototype … will follow.” The designer was proposed the same evening: one shared gesture snippet copied into every prototype page, and a check before Selim sees it, walking his exact steps with a real mouse, a real wheel and a phone. Its first round found two bugs the runner could not see.