Editor’s note: Tim Donnelly is the co-founder of Storehouse.
It’s easy to forget that it was only eight years ago that 
the first iPhone introduced the world to the idea that you could 
actually touch software. Graphically, the UI was filled with gradients, 
textures and bevels that referenced real world objects to make the user 
interface look touchable and familiar — a term that we call 
skeuomorphism.
Fast forward to today. Skeuomorphism is out and flat design is in on iOS, Android and Windows Phone. The new generation of design
 is less about looks — it largely doesn’t matter if it’s flat, round or 
textured — and more about how the interface works, moves and functions 
in predictable ways that are instantly understandable.
As the role of animation grows, 
it’s more important than ever to carefully consider how your UI moves, 
from transitions that enhance usability to tiny details that make people
 fall in love with your app. Here are some ways to make your app feel 
truly special.
Be realistic
What does it mean for animation to 
be realistic? Things in the real world have weight. They bounce. They 
don’t start and stop moving immediately. The same principles should be 
applied to animation.
If you’re using your iPhone, for example, and dragging a 
photo in a certain direction with your finger and then stop, the photo 
shouldn’t just stop moving. It should keep going in that direction with 
the same velocity that your finger had when you lifted it. If it just 
stops, it won’t feel natural.
When animating, it’s important to respect the behavior of real objects. Your animation will feel more comfortable and expected.
Be consistent
If a piece of your UI moves in an unusual or surprising 
way, it can feel jarring and disorienting. If you display an image by 
sliding it up from the bottom of the screen, for example, you should 
hide it by sliding it back down. It’s important to be consistent in your
 animations because it puts users at ease when 
the little things make sense. They then have the mental capacity to 
focus on the parts of your product that are unique.
People know how objects move in the real world, and they expect your app to comply with that knowledge.
Provide immediate feedback
We’ve all used bad software. Software that freezes. 
Software that does something strange or unexpected when we interact with
 it. Or worse, software that ignores us.
This may seem obvious but it’s an important and often 
forgotten point: when the user taps, scrolls, or does anything else that
 provides input, make it clear to the user that their action did 
something. Simply put: when a user presses a button, make it obvious 
that your product has recognized the touch.
Use meaningful transitions
Most mobile products are built 
around a hierarchical navigation model, so users are constantly 
navigating in and out of content. An example is navigating through iOS 
settings: Going deeper into the display and brightness setting moves you
 to the right. Going back moves you to the left. It is very clear and 
consistent and creates a strong sense of place for where the user is 
inside the product.
It can sometimes be difficult for people to form a mental 
model and remember how they got somewhere within your app. Be sure to 
use transitions when the user is navigating between content in your 
product. You want it to feel as though they are truly navigating a 3D 
space — aware of where they are, where they came from, and how to get 
back.
Be familiar
Whether your product is for iOS or Android, there are animations built into the operating system that feel familiar. These are the animations and transitions that are found in most apps that users see countless times each day.
As you add animation to your product, be careful not to reinvent the wheel. For example, one of the most familiar pieces of animation
 in iOS is the way it uses physics to drive scrolling content. This is 
seen every time a user scrolls through their inbox, zooms in on a photo,
 or does really anything on their iPhone.
For these most common animations, 
be careful not to change things up too much. Some apps build their own 
scrolling behavior, for example, and the difference is nearly always 
evident to users. It just feels different. You want users focusing on 
the unique things that your product does, not on why scrolling a list 
breaks their expectations of how the UI should feel.
Use restraint
In the same way that animations can help people understand how your app works and focus their attention, unnecessary animations can confuse your users and cause them to lose their understanding of how your product works.
Use common sense. Is there a reason to animate or are you just being fancy?
This applies to the speed of your animations and transitions — keep them short. The user shouldn’t have time to sit and ponder your animation, thinking “I wonder where that button is going?” And, if you need an animation to be long, make sure you allow your user to interact with the product before the animation completes.
Be playful
While most animations help people to understand and navigate, finding unique ways to introduce animations
 can help make your app really feel special. Small details help to 
create trust with your product. If you care enough to pay attention to 
the smallest details, it implies that the rest of your product was 
created with care.
There are over a million apps on the App Store now, but only a handful are really pushing the edge of what animation can do in UI design. By carefully considering the use of animation in your app, you can really stand out.
Most of the tips above are possible with the tools and APIs
 provided in iOS, especially since Apple added the UIKit Dynamics 
framework. It is very powerful, is built into iOS, and should be 
sufficient for most apps wanting to use springs and other physics-based 
effects in their animation. Of course, that isn’t always the case. Facebook developed a custom animation framework for Paper, which is now open source.
Ninety-nine percent of apps should never have to go that 
far. But it’s important to remember that Apple and Google are building 
their platforms in the way that works for 99 percent of people’s apps. 
If your app has very specific needs, a custom solution may be 
appropriate.
