In the past, many times I forgot about who was the end-user of the solution I was working on – all that mattered was neat code and great performance. Later on, it was evident I was completely wrong, nevertheless, it doesn't mean that performance and organization are bad habits or that they’re the wrong achievements, just that they aren't enough. They're not why users choose our solution over the others.

Disclaimer: I believe it is necessary to know the end-user you're developing for. Personally, I recommend guerrilla testing for almost every use case (see http://www.uxbooth.com/articles/the-art-of-guerrilla-usability-testing)

As I specialized in mobile developing, I realized that due to limitations such as space and time that end-users spend in an app, it is key to take advantage of this short period to fulfill the user's objective with the app while providing a satisfying experience.

The very first thing I started to read dealt with usability and provided a set of guidelines to follow in order to provide the most gratifying user experience.

So far so good, I only had to follow a couple of rules, for example: a main action per screen, Von Restorff effect, Serial Position effects, Hick's laws, minding the annoying notifications, keeping user sign-ins simple, etc.

But these rules were about usability, and as I somehow got better at applying them, people didn't give me the feedback I was expecting or didn't use my apps at all.

It was then that my brain popped this question: didn't the UX depend on the app being quick and easy to use? Well, no, apparently. It is important, of course, but it doesn't rely on just that.

Researching, I found out that the UX also depends on the UI and even though this might seem very obvious for a lot of people, it wasn't for me, a developer solely focused on coding.

So, now that I knew how to work on the usability and intuitiveness of a mobile app, I had to make it nicer. And it wasn't easy for me since I always had horrible design skills. Drawing a lot of inspiration from mock interfaces found on Medium, I got better and better: I learned how to take advantage of white spaces, how to combine colors and how to put together an organized layout which allows to see thing clearly and to focus on functions that really matter in every screen. I learned that most of the times less is more and simple things attract more people who want to continue using your app, according to the feedback I got from user groups.

But when I thought I had every tool I needed to develop an app all by myself, an app that was easy to use, modestly nice and that people don't uninstall the second after they've downloaded it, I found that not even I wanted to use it, at least not as I do want to use other apps. I felt my application was basic and kinda rough, it was super fast but it wasn't smooth, or maybe it didn't feel like other apps do.

But why? WHYYYYY??!! 

I kept on researching, reading everything I found on UX/UI Mobile until I stumbled upon the delightful micro-interactions and their principles.
Microinteractions are what we call smooth animations, for example movements or transitions, which are extremely important for the user and are made up of three parts: Cue, Routine and Reward.
Their main purpose, as the name suggests, is to provide an instant feedback to the user while they're using our app.
What I learned to do the hard way, at least for me at that moment, is to create an animation that doesn't take too long but not too fast, that isn't distracting for the user from their main objective and that it's subtle but at the same time clear and explicit. And really these are the details that make someone go “Hey, I like this app”, and when you want to know why they reply things like: “I don't know, I just like it” or “Because it's easy to use and it feels nice.”
Let's delve deeper into this because I believe it implies what I discussed earlier:

In order to create micro-interactions that provide a greater improvement in UX - in this case, animations - we need to take some things into account:

  • Response time: An immediate response time is necessary, otherwise the user might separate their action with the animation on the screen and this might feel annoying.
  • Repetition: We all love original designs. But if we always use different resources, we confuse our users. We need to be coherent in all our animations.
  • Simplicity: There's no need for extremely detailed animations. As we discussed previously in this post, most of the times less is more and that's why it's key to provide simple animations.
  • Easy to understand: The user has to automatically relate their action with the animation. For example, if they slided a screen to the right, a bouncing effect will let them understand that there's nothing else to show that way.

Everything mentioned in this post - in the order it was exposed – is a great place to start reading, researching and practicing. We have to take into account that in order to master micro-interactions, we have to be proficient in everything else because micro-interactions encompass all of it.