Why do apps get bloated & inconsistent*, and what can we do about it?
I asked myself these questions a million times working on Photoshop, often aloud. I’ve proposed choosing dramatically better integration over ever-greater depth, but with established apps the progress is slow, for many reasons**.
Since moving over to building mobile apps, I’ve been thinking more intensely about “small pieces loosely joined,” about the eternal appeal of small, well-crafted bits of functionality being assembled as needed to fit any workflow. Remember the promise of OpenDoc? Despite all its well documented faults, I still love the idea of assembling a dream team of little parts, each the best in its class for doing what I need.
In many ways this is what the app store model encourages. Photographers in particular often assemble dozens of apps (e.g. several for filtering, one for selective coloring, one for tilt-shift, one for social sharing, etc.), then bounce among them to achieve desired results.
It’s great that we can do this, but the workflow often kind of sucks: Why should I have to keep saving a file, switching apps, navigating back to the same file (or rather, a new derivative copy), opening, adjusting, saving, switching… Plus you can forget about exchanging interesting data like layers & selections: everything’s dumbed down to a flat bitmap.
Poor integration leads to bloated apps: if jumping among apps/modules is slow, customers gravitate towards all-in-one tools that offer more overall efficiency, even if the individual pieces are lacking.
Here’s an example: Do you use Instagram? If so, would you say it’s the best filtering app on your phone? It’s the simplest, maybe, but certainly not the most powerful, flexible, or expressive. Yet how often do you take the time to jump to other apps, apply filters, save them, then go to Instagram to share the results? Most people would prefer to skip all the jumping around, so there’s inevitable pressure on Instagram to add more features***–wrecking its simplicity & getting into an arms race with thousands of other apps.
What if instead you could jump from the Instagram filters list into any app that registered as a filtering tool? And, rather than this feeling like a jarring app switch, what if it felt like entering a mode of the host app? Upon completing the filter (or canceling), you’d pop right back to where you were in Instagram.
Why did Photoshop 1.0 succeed? It offered excellent (and focused) core functionality, plus a simple extensibility system that enabled efficient flexibility (running a filter brought no need to save, navigate, re-open, etc.). The core app could remain relatively simple while aftermarket tuners tailored it to specific customer needs.
Even such a humble system can still offer a way out of the current impasse. Android offers “intents” by which developers can register & call functionality (e.g. “I’m an image editor; pass me some pixels & I’ll pass you back new ones”). That’s a solid start, and I’m hoping the OSes one-up each other with their integration hooks.
* Hint: It’s not “Adobe sucks” or “developers suck” or “marketers rule”; it’s that all of us users demand just one more “wafer-thin feature” feature in each app, because having it there beats jumping among apps.
**Taking great care not to blow up customer workflows being key among them.
***I see you there, me-too tilt-shift generator.