Recently with iOS 6 came out and iPhone 5 released with a different screen size, I had some thoughts about UI customisation from designer and developer's point of view and had some doubts. Especially after reading:
http://www.raywenderlich.com/21703/user-interface-customization-in-ios-6
My main doubts are as follows.
1. UI Customisation vs iOS design guideline and User-friendliness
iOS has its own standard/default UI design(e.g. alert view, button, tab bar, etc), and they all have more or less ability to customise, yet they also have restriction on how much can be customised, for example, you can change the tint color for some UI elements, but not the complete solid background color, or background image, I know some of them have been changed in iOS 6.
I believe when Apple designed the UI, they tried hard to make it user friendly, such like the size of each standard UI component, the distance between them (used in interface builder), bla bla...
Question 1, how much I can customise in terms of size and color (and probably shape), to maintain a level of user-friendliness without going against the iOS design guide line? For example, one of my apps use smaller(ie less high) tab bar, in order to show more content in one screen, and the background of tab bar is customised as well, to have the solid tab bar body and a small shadow on top of tab bar.
2. UI Customisation vs technical limitation
Some of the UI customisations are simply doable, while some of the need some workaround or even hack, and rest of them are simply not possible.
Let me use the previous tab bar example, if I just use a smaller tab bar(ie set tab bar height to be smaller), I haven't tried in iOS 6, but in all previous versions, I would just see a black area above the tab bar, for the space of a standard height tab bar, and I need to programatically change the view's size to fill that area, which takes some time to implement and test; Further more, it is also a trouble when the screen size changed in iPhone 5, as manual size settings are used instead of auto-resize. This also happens when the navigation bar is set to a non-standard size.
So question 2: what should I take into account when designing the UI, to make sure the technical implementation of the design can be future-proof, from the surface of it, I can see directly two points: customise color but don't change size for a component, if there is a standard size for that component and cannot be easily changed.
3. Technically Future Proof
There can be more than one way to implement something, while some of them are future proof and some of them are not.
Let me use the navigation bar as an example, we used a non-standard sized navigation bar, which has some extra buttons, say it is 80pt high, then we have to create a holding view in every view controller and make other views as subviews in the holding view, the holding view's frame starts from 36 as (80 - standard 44)=36, this requires a lot of work when creating a new view controller, as we have to handle the case where the user are making a phone call and the status bar is extended.
Question 3: Is it right (or should be forced) that we should stick to the iOS SDK and should not go beyond what it allows to do? For example, when you scroll a UIWebView, you will see some dark shadow when you scroll it to an offset that is negative or over content size, and in order to remove it you have to traverse all subviews in UIWebView and remove an UIImageView, as described in:
This works but looks obviously not good, so should we avoid all these kinds of customisation and keep these in mind when doing UI design?
Sorry for the lengthy post, but very appreciated if someone can answer or even discuss these.