When we meet with a potential client, or discuss a new project with an existing client, we are often asked a lot of the same questions. Which, don’t get us wrong. We love to talk about building stuff. Like a lot. We have many words, analogies, anecdotes and accompanying GIFs to offer. But we thought it might be helpful to put together a quick blog series on the most common questions we are asked to hopefully help out those of you who might be wondering about these same things.
First up....one of our favorite topics.
Should my iOS and Android UIs be the same? Different? Platform specific?
Let’s start with our short answer.
Yes. Our general recommendation is to design the same interface for iOS and Android platforms with a small number of platform-specific differences. These differences depend on the hardware (e.g. home button differences) as well as expected best practices (e.g. navigation patterns) and default native components (e.g. date picker). Once you've got the right screens and flows in your interface, which you ideally will validate with usability testing and then real-world use, they will stay mostly stable over time. They will evolve, yes, but once you have a working UI...stick with it and apply it to both platforms where possible.
Now for the nuance
The simple answer works most of the time, but there are certain situations that might require a more nuanced answer. While we don’t think iOS and Android app UIs should ever be totally different, the extent to which the UIs are different should vary based on your product and team goals. Here are some things to think about that can determine your best path forward.
Also, sometimes we make the recommendation above because we’re talking to a small team or to a company trying to deliver to both platforms quickly and thus needing one framework that will let them do so. So it just makes more sense to build experiences that are mostly the same.
New product versus an existing one
The first thing to consider is if you are developing an entirely new product / app, or is this an update to an existing one. If we’re talking about a mature, existing and business-tested UI then it makes more sense to invest in building out each platform more independently. If it’s a brand new product that you’re still learning about (i.e. it will change a lot), then we’d suggest optimizing for speed to market / speed to learning. Which means keeping the UIs relatively the same across all platforms.
Do you really need to release to both platforms at once?
It’s important to consider whether you need to release to iOS and Android all at once, or if it’s ok to release to one of them first. We find that for new products in particular it is often ok to release to one platform first without the need to support both out of the gate. That way you can focus on a single UI until it is really solid while conserving your development resources for later. This will also help you validate your product decisions faster. Then, when you want to expand to both platforms, you’ll know that the core UI patterns will likely work on the other platform. So pressure test this question with your stakeholders before you commit to building on both platforms.
Each platform has its own distinct design language, which cascades down into different expressions of the same type of UI element. For example, there are differences in the way the native keyboards on each platform look. Or, on the web we use a select element to pick from 7-ish options in a form. On iOS, there’s a picker. But Android has completely different pickers for different data inputs. Also, each platform has distinctly different title-bar and navigation treatments.
If these parts of the UI are critical to your app and the user experience, and you have the resources, budget and time available to you to develop natively on each platform, it may make sense to do so. It will also mean your designers will need to learn and use two sets of design systems, but ultimately the experience for users on each platform will be better.
There you have it. Our hot take. Ultimately it is more important to make an interface that is optimized for your business than it is to optimize it for one platform.