Take the 2-minute tour ×
User Experience Stack Exchange is a question and answer site for user experience researchers and experts. It's 100% free, no registration required.

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?

share|improve this question

migrated from programmers.stackexchange.com Nov 21 '11 at 20:32

This question came from our site for professional programmers interested in conceptual questions about software development.

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 '11 at 17:26
    
@YannisRizos Didn't know about that SE site. I don't mind migrating it. –  Phonon Nov 21 '11 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. –  Yannis Nov 21 '11 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 '11 at 23:34

5 Answers 5

up vote 32 down vote accepted

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.

share|improve this answer
    
...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 '11 at 21:31
    
@DA01 isn't that equivalent to providing an application that fits badly with all host environments? –  codeinthehole Mar 2 '12 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 '12 at 0:23

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.)

share|improve this answer
1  
Notable example: Logic Pro. Sigh. –  Agos Nov 25 '11 at 10:22

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.

share|improve this answer

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.

share|improve this answer
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 '11 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 '11 at 13:40

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.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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