How APIs can improve User Experience and Market Fit
Let me share 2 experiences I’ve had in the last day:
1. I bought a cool kit for pour-over coffee and tried to brew myself a cup. After trying (and failing) to follow some Youtube instruction videos, I’ve decided to use the marvelous app, coffee.guru, that showed me the way to make a good pour-over coffee, step by step. I really enjoyed the immersive experience of this product. For example, when one step took 2 minutes, a timer just started counting down. That was so simple and easy. I didn’t have to touch anything. It just worked.
2. I ticked off the “Meditate” task on my task management-app, after meditating with my meditation-app. So the flow was something like this: See tasks in tasks-app, go to meditation-app, meditate, close meditation-app, open tasks-app, mark as done.
These two experiences made me think. While one app had me switching context, the other one didn’t require me to do anything except making coffee (My actual task).
Task management is such a common thing. People struggle managing their tasks and at the end of the day feel like they haven’t accomplished anything. While some of these tasks have nothing to do with the phone (“go to the supermarket”, “fix the clogged sink”), a lot of tasks exist in our phone ecosystem (“Call Jeff”, “Meditate”, “Mail Suzy”’).
The Gamification Element
If we look at gaming platforms like Steam, Playstation and more, we see there is a huge gamification thing going on — trophies, achievements, and scoring.
Why not using the same logic in our phones? I’m not talking about general trophies like “used Facebook app for 3 hours straight”, but about predefined tasks that integrate with the relevant apps. For instance — “Meditate for 10 minutes”, “Go to the gym”, “Call mom”. All the data is there, all we need to do is connect it.
My Suggestion - Integrated task management app
I’ve designed a mockup to show how I imagine the user would create a new smart-task:
Select the source (API). Which app will be involved in this task?
Select the action(s) required. for instance, if we logged a run in Nike Running Club app, the task is done. We can also have it the other way around, where after I do something on a specific app, a new task is being created, but now we’re focusing on completing tasks instead of creating them.
Done / Save task logic to future use. In case I’d want to use this functionality in the future, It would be easier to save this task, and in time the complex tasks won’t be so complex.
And that’s just the beginning
It’s important to say this is just a simple proof of concept. This idea can scale to much more. Any.do, for example, had a set of common verbs, such as call/order/text. These common verbs can automatically use this logic, so if I call my task “Text Jeff”, the app automatically applies the logic with the texting app.
Also, many apps use location, so a task like “go to the gym” can be so easy to track. Just turn on your GPS and let the app understand you’ve done your task. Want to make it even smarter? Let the app make sure you’ve been there at least 45 minutes.
To sum it up
We have so many apps working in different threads on our phones and computers. Services like IFTTT, Zapier are making it easier for us to sync between them, but why not making these integrations even easier?
In his great post, Gannon Hall writes we should start with defining the market before the product, and I want to add to that:
After defining the market/ecosystem, define the way to integrate with it.