This question is mainly for iOS/Android developers, but anybody can answer.

Do you prefer using the default UI provided by the OS or do you prefer using custom UI. I've heard many developers argue about custom vs default, and I just want to see what you guys have to say about it.

13 Answers 13


I often get annoyed by custom UI's, but when I see the default skin used anywhere other than the OS windows I find it really ugly. I suppose custom UI's are better, as long as you leave the title bar alone.

So only skin your controls, etc. Don't overdo it, though. It's not an album cover, you don't want your UI to catch peoples eyes. It just has to work really well and that's it.

The art is getting people to not notice your interface. If you can do that better with a custom designed one, go with that. Otherwise, go with the default OS skin.

  • 7
    +1 for "The art is getting people to not notice your interface." Aug 29, 2010 at 10:10

Disclaimer: I'm not an iOS/Android developer. I have, however, designed a user interface, in Cocoa, for Apple desktop computers, that completely ignored the standard Apple user interface guidelines. It was a custom point-of-sale touch screen interface, completely customized for cashiers who would interact with the software by touching the screen with their fingers.

In light of that experience, I would give this advice: Use the default interface unless your users have a specific need for a customized interface.

In most cases, the benefit of using the default interface greatly outweighs any small advantage that might be gained by designing a new interface from scratch. However, once you have identified a genuine need for a custom UI, let nothing hold you back.


It depends on your ability.

If you do a custom UI, you have to be really good at it. A custom UI done badly will just frustrate and lose the users.

  • Totally agree! And is it fair to say that existing UIs are never perfect, too or missing parts?
    – erikrojo
    May 1, 2011 at 9:19

Speaking as an iOS developer, there are a number of ways to slightly customize the default widgets (tintColor on a navigation bar, for example) that are easy to implement without opening the can of worms that is fully custom UI.

Keep in mind that the default widgets have a lot of functionality built in. You don't want to be reinventing the wheel. (You'll be stuck copying minutia like action delay times, additional gestures, etc.)

Neven Mrgan wrote about the attention to detail required for just a toggle switch for an iOS game he worked on.


As far as Android apps go I'm normally more impressed with apps which use the default UI widgets and then skin them to fit the brand of the company/app.

For example the official Facebook and official Twitter apps look very similar, which is intentional as they both use the same UI controls, just with different skins.

Deviating too much from the default UI is bad though. You see lots of Android apps which try and emulate how apps look on iOs and it normally ends up just confusing the user and looking out of place.

The best advice I have is to stick to the default UI controls and skin them slightly to fit the brand by changing colours and so on.


People like good looking things.

A good looking app will sell more than a similar ugly app, people are even more forgiving about bugs in good looking app.


  1. The custom UI must look good and "feel" good

  2. It must be similar enough to the standard UI so it's still familiar

  3. There is a lot of logic in even the simplest control - either use a system that let you "re-skin" controls while keeping the behavior or be ready to re implement a lot of tiny behaviors you never thought existed.

Also, there are small but vocal groups that hate anything non-standard with the intensity of a thousand suns (for example: software developers and Apple fans), be careful with custom UIs if they are your target audience, ignore them if they aren't (note: even within the Mac/iOS user communities the "Apple fans" are a small minority, they are just an extremely load small minority).


I'm surprised this hasn't been mentioned yet...

Custom UIs have their place, especially when they're novel and fit the application use. Apple thought that FutureTap's "Where To" application UI was novel enough to include mention in a patent application.

Don't forget, though, that these big companies have literally spent millions doing interface usability studies, and designed their interfaces to match the result of their expenditures. They don't write Human Interface Guidelines/UX Guidelines for fun (just like I don't read them for fun either!)

There is a reason that Apple markets their iOS devices as friendly to all ages - after much research and development, they've created an intuitive interface that a 2 year-old or my grandparents can pick up and understand the basic function in mere moments.


Purely from a user's perspective: I hate custom GUI's. They almost never have the advantages that authors think they have. Examples: iTunes (on Windows), Zune, Apple QuickTime, many iPhone/Android apps, etc...

The only good examples I have for custom interfaces are games - there I accept it. Everywhere else, in most all cases, we could have gone without the custom interface.


I'm an Android developer, and, at least in this platform, my opinion is that right now is necessary to make some changes to the default UI elements. Current Android UI is just too ugly.

BUT there are disadvantages in modifying it too much:

  1. If the default UI is changed in later versions of the OS, your app can get obsolete in terms of how it looks, and therefore lose consistency. How much this affect to your app will depend on how deep are this changes.

  2. In Android, there can be different default skins depending on the hardware (Sense, MotoBlur, ...), so you can make your UI look similar to some default UI, but maybe it's a lot different from other variations.

  3. Users progressively learn how to use apps in a given platform, so it likely be more difficult to users to interact with your app.

Of course, all of this can be solved if you do a nice work, but it's not easy.

My recommendation is to make small changes, so users can still be familiar with all the elements, but making the whole thing good looking. Add some nice animation effects and you've got it.

For now, we've decided to make custom elements in our Android apps, and we've got pretty good results (Go!Chat Facebook as the last one).


It can make for a better user experience. My goal was to preserve the iOS interface elements but strip away as much as possible. My app is a content viewer and I wanted the UI chrome to distract as little as possible from the star of the show. I think I served the user by reworking the default UI elements.

If you feel strongly that it's better for the user and you trust your judgment then I think you should do it. It's less critical on mobile devices that it fit in with the rest of the OS. You're running alone in the user's view. Many apps are doing a specialized task and they are better off with a single purpose interface that is optimized for it.

  • I agree, with a but - please don't make me try to figure out what a button does by the icon (or have a way to teach me). I downloaded several fuel/mpg trackers on my iPhone the other night, and the app I quickly decided to keep was the app that added a new record with a + icon button. Some of the other apps had all kinds of icons (and lots of buttons on the home screen) and I didn't bother trying to figure out what they did. Sep 11, 2010 at 3:12

I stick with iOS Human Interface Guidelines:

They recommend always having a reason before customizing the interface. They don't recommend customization for productive tasks that require the manipulation of a lot of data. The recommend it for games or story-driven experience.

If custom they furthermore say:

  • Be internally consistent
  • Avoid increasing cognitive burden (features that are similar to known ones but look and behave different)
  • Always defer to the content

In any way worth a read.


I'm an Android user and personally I like Android better without a custom UI.

I realize that the manufacturers doesn't really have that much they can call their own anymore, the hardware is pretty much the same on all the high-end phones, so a custom UI might seem like a good way to differentiate your product from other products. Unfortunately most custom UI implementations suck big time and rarely adds anything valuable to the platform.

The best custom Android UI, IMHO, is Sense from HTC but even that will mostly just slow down your phone and only add a few useful features. If you insist on having a custom UI please just make it and add-on/optional so I can get my android OS updates on time instead of having to wait till the custom UI is upgraded.


Speaking as an iOS developer, I dislike the feel and look of some of there UI (buttons in particular). So when I develop stuff I give them new skins.

And when I see game developers who have games with their menu screen as normal, un-skined buttons I already have strong temptations not to buy that game because it looks like someone didn't take the effort.

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