32

I'm not completely new to developing apps, but I'm at a point where I'm trying to develop something and deploy it on several mobile platforms. To only concentrate on two major ones, suppose I'm developing an app for Android and iPhone and designing UI and the general user interaction architecture. Both platforms give guidelines as to how their UIs should work. For example, most iPhone apps have the Navigation Bar (the one that says Testing 1 and has a Back button)

enter image description here

and an Icon Bar

enter image description here

for navigating a program, while Android uses an Options Menu fetched via a Menu button

enter image description here

and the "back" navigation is handled with the physical Back button on the device.

I've seen many apps that try to force the same UI on every platform. For example, custom-building an iPhone style Icon Bar and putting it in their Android apps, but it just doesn't quite look right to me and it feels like it violates UI design guidelines somewhat.

Are there any good design patters for implementing something sufficiently similar on both platforms, yet still platform-specific enough so that the user would not feel out of their comfort zone? What do people usually do in these situations?

5
  • 4
    If you're not having to write a UI layer for different platforms, there is a good chance you're doing it wrong.
    – Craige
    Nov 21, 2011 at 17:26
  • @YannisRizos Didn't know about that SE site. I don't mind migrating it.
    – Phonon
    Nov 21, 2011 at 17:34
  • 1
    @Phonon UX is still in beta, so there isn't a migration path yet. If you don't get satisfactory answers here, you can post the question there too. Cross posting is a bad thing, but I don't think there's anything else you could do since UX is beta, other than waiting for UX to get out of beta in which case the question will probably get automatically migrated. You can flag the question for mod attention (or ask on chat / meta) if you feel that you'll get better answers on UX, maybe mods can migrate it after all and you can avoid cross posting.
    – user5595
    Nov 21, 2011 at 17:42
  • I'd refer to my answer on this question: ux.stackexchange.com/questions/10520/… I wouldn't make Android and iOS apps TOO different, especially in functionality, but there's something to be said for matching the style of the device as well of course.
    – Ben Brocka
    Nov 21, 2011 at 23:34
  • One reason why web applications are becoming more popular again is because users do want some consistent experience across devices (something that Android or Windows does better than Apple), yet there is still the force of having a unique experience associated with a specific brand that keeps the appstores going.
    – Michael Lai
    May 16, 2016 at 23:14

5 Answers 5

34

If a multiplatform app has an iPhone-ish UI because it was first developed to iOS, I see that as a cheap solution and negligence of the other platforms. If a vendor takes the time to develop the application to integrate properly with the OS, have a native UI, use differentiating features (like notifications in Android) etc., that's much more appealing than the convenience of not having to learn a slightly different UI (in the unlikely case I would use the app on both platforms)

For less tech-savvy users, the "alien" platform's features can even be confusing. Why doesn't my menu button work?

It is much better to have different, conforming UIs on each platform than one unified UI.

3
  • ...but it's also not always practical to have plaform-centric UIs for every device, either. In those situations, I'd suggest a 'neutral' UI that isn't particular to any one platform is likely a better option.
    – DA01
    Nov 21, 2011 at 21:31
  • 1
    @DA01 isn't that equivalent to providing an application that fits badly with all host environments? Mar 2, 2012 at 23:33
  • No, it's not the equivalent. Plenty of software doesn't adhere to the particularities of the UI it's being hosted with. It's not always ideal, perhaps, but one can still make a good, usable UI even if it's not 100% adherent to the platform.
    – DA01
    Mar 4, 2012 at 0:23
17

You should be more worried about conforming to the platform's UI design guidelines. How many users do you think will use your program on both iOS and Android? Not that many, and if the functionality is the same, then they should be able to figure it out pretty quickly.

On the other hand, if you try to design something that doesn't use standard patterns, you'll wind up confusing everybody.

A concrete example: if you were porting a desktop Windows app to Mac OS, would you put the menu bar at the top of the window, and keep the standard Windows key bindings (ctrl-x, ctrl-c, etc)? Of course not, that would be stupid. (And yeah, I've seen it done.)

1
  • 1
    Notable example: Logic Pro. Sigh.
    – Agos
    Nov 25, 2011 at 10:22
4

The iPhone and Android platforms each have their own native idioms and it's a mistake to try to provide the same UI details on both of them. No matter how straightforward it might look at first, you would surely wind up having to do something very unnatural on one or the other or both.

Instead, aim to provide the same features and functionality on both, while respecting and leveraging the native UI idioms of both. It's better for the developers and it's better for the users. Remember, no normal user will be going back and forth between platforms. Rather, she'll have one or the other and will be used to the way it works.

We follow this approach in our shop, and our users are pleased with it.

2

I'm pulling Craige's comment into an answer:

If you're not having to write a UI layer for different platforms, there is a good chance you're doing it wrong.

Basically, build up some sort of UI that is consistent across the entire app, and doesn't look 100% like it was built for either platform, then make that UI consistent across both platforms.

  • Android's Options menu could be a 1-1 correlation with iPhone's Icon Bar
  • You can create Back buttons that look the same on iPhone and Android (Maybe; I don't know how integrated the Navigation bar is), then on Android also allow the Back button to work

...And so on.

And it's not like this is very unusual - game developers go to great lengths to do this when they release something cross-platform.

2
  • 1
    I can see why this is a good idea from the developer perspective -- less porting work (after developing the UI library) and easier maintenance. But why would this be good from a user perspective? It just creates an app that doesn't fit with whatever the user is expecting for the platform, and it does this for every platform.
    – Ted Hopp
    Dec 12, 2011 at 6:37
  • @TedHopp Screenshots, one set of documentation, users who switch from one platform to the other, and probably things I'm not even thinking of
    – Izkata
    Dec 12, 2011 at 13:40
0

Although I'm just a newbie in here, but according to me a good idea could be to develop a platform independent Interaction Design which contains the major HCI Patterns you're using based on your task model and then can instantiate these Patterns to concrete guidelines of IOS and Android.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.