Brian Eno is well-represented in iOS. His other apps like Bloom, Trope and Air invite listeners to touch the screen to make their own composition. Reflection ($30.99) is different, there is no interaction for the listener. The interface has three buttons: a pause button, a sleep timer, and AirPlay. Reflection produces endless permutations of Eno’s 2017 album, an hour and five minute long title track.
“Just calling it an app is akin to saying Falling Water is just a building,” writes one app store reviewer. “I would not call this an app,” agrees another, “Between the music and visuals it’s more like sonic architecture.” The visuals consist of slowly morphing rectangles that only seem to change in the split second you look away from the screen.
How do we choose which level of fidelity is appropriate for a project?
I think about it like this: The purpose of making sketches and mockups before coding is to gain confidence in what we plan to do. I’m trying to remove risk from the decision to build something by somehow “previewing” it in a cheaper form. There’s a trade-off here. The higher the fidelity of the mockup, the more confidence it gives me. But the longer it takes to create that mockup, the more time I’ve wasted on an intermediate step before building the real thing.
I like to look at that trade-off economically. Each method reduces risk by letting me preview the outcome at lower fidelity, at the cost of time spent on it. The cost/benefit of each type of mockup is going to vary depending on the fidelity of the simulation and the work involved in building the real thing.
Depending on the feature you’re working on, these levels of fidelity take different amounts of time to create. If you plot them in terms of time to build versus confidence gained, you could imagine something like a per-feature fidelity curve.
Take a simple CRUD web UI, where you’re just navigating between screens. It doesn’t take much more time to build the real version than it does to mock it when the design is simple. If you were to build out an interactive mock first, you would end up spending twice as much time in total without gaining much out of it.
Contrast that with a complicated Javascript interaction. Or a native iOS feature that requires programmer time to build out. If it takes substantially more time to build the real code version, then it may be smart to do an interactive mockup first.