There are hundreds of little things you can do to improve the usability of your app, but I wanted to touch on some of them — because these mistakes are made more often than not, especially by newbie designers.

Don’t forget that you’re designing a mobile app, where physical space is very limited. Try making your elements “finger-friendly” with the minimum recommended distance of 7–10mm between them. You aren’t designing desktop app, where a certain amount of precision with the help of the mouse is present. If you make a distance between two interactive elements less than recommended, the number of occasional miscliks will increase drastically.

By tubik

Okay, it’s pretty apparent what to do with interactive elements, but what about copy? After all, your app will feature text as well (unless it’s a very specific image/elements-driven app). The main thing here is to make text legible. Find a typeface that works well in different sizes and weights. And for the sake of all that’s dear to you, don’t make text small. It may look good on your 27" monitor, and you’ll be happy that you fit so much text on a single screen, but in reality that 6px font will be hardly legible on a mobile phone.

And I believe I don’t even need to speak about color contrast because it’s pretty evident? Yeah, I thought so. But nonetheless, look at this image:

I tried ;D You can thank me later.

Another good practice is to let your users know that they actually clicked something. I mean — provide feedback. If a user clicked a button, and nothing is happening (though in reality, your app is loading content in the background) — do you think they will patiently wait? No, they will smash that button over and over again, waiting for some kind of result. The simplest way to show users that content is being loaded is to show preloader:

credits to loading.io

But there’s a somewhat new trend going around, it’s about using thing called “Skeleton Screen”. Look at how Facebook is loading info:

It’s not loaded all at the same time, but rather in sequence. Basically, skeleton screen is essentially a wireframe of the page with placeholders instead of images and text. It’s like a page is saying to the user: “Hey, I don’t know what the contents are yet, but this is how I look”. They are believed to attract more attention and “amuse” users while they are waiting for content.

Of course, not only loading content needs feedback. Pretty much every action should make it clear for user that they performed it. Make buttons switch colors on switch, twitch or change size — anything to let users know it’s not broken and they actually clicked it.

Notice how everything reacts to taps © by tubik

Another thing to keep in mind is when you need info from users, basically, making them fill out forms — request only the bare minimum, because filling out tons of input fields can be tiresome and even drive users away.

Also… Don’t EVER ask for the rating on the first launch. No, seriously — DON’T. After all, they’ve just launched your app, they didn’t see all of it, they are still checking it out — and they should already provide rating/review? They’ll most likely just click “Never Ask Again” and be off with it.

Another thing you should not ask about at launch — permissions. It always drives users crazy if, when launching the app, all they see is endless “Allow access to…?” pop-ups. And it’s okay to ask for permissions, but before this — provide context. For example, if a user orders something from your shopping app, you can ask for permission to know their location so they won’t need to input their address. Or when mobile games ask you for a permission to send notifications and telling what’s that for: “Hey, I would like to send notifications so you won’t miss free gold, ok?”.

An the end of the usability section I wanted to talk about an interesting point I saw in some articles about mobile UX. Most of them suggest you don’t take users out of your app into a browser (for google/facebook auth, for example), and instead you should use an in-app browser. On one hand, it’s logical — taking the user out of app will break UX flow. And when you need your users to read something, like a help article on your website, it’s perfectly fine to use an in-app browser. But what about user input? Especially authentication with social networks— not everyone has stuff like Apple Keychain, where you can store login/password system-wide. On my Android phone, I had everything saved in Google Chrome, and I always hated in-app browsers, because I had to enter my email and password manually.

What do you think on this point? Feel free to comment.