Full guidance from Apple available here: https://developer.apple.com/library/ios/design/index.html#//apple_ref/doc/uid/TP40013289
- First, strip away the UI to expose the app’s core functionality and reaffirm its relevance.
- Next, use the themes of iOS 7 to inform the design of the UI and the user experience. Restore details and embellishments with care and never gratuitously.
- Defer to Content. Although crisp, beautiful UI and fluid motion are highlights of the iOS 7 experience, the user’s content is at its heart.
- UI elements that can overpower or compete with the content. Instead, focus on the content and let the UI play a supporting role.
- Let translucent UI elements hint at the content behind them.
- Use plenty of negative space.
- Let color simplify the UI. A key color—such as yellow in Notes—highlights important state and subtly indicates interactivity. It also gives an app a consistent visual theme.
- iOS 7 often displays content in distinct layers that convey hierarchy and position, and that help users understand the relationships among onscreen objects.
- Embrace borderless buttons. In iOS 7, all bar buttons are borderless. In content areas, a borderless button uses context, color, and a call-to-action title to indicate interactivity. And when it makes sense, a content-area button can display a thin border or tinted background that makes it distinctive.
- The UI elements provided by UIKit fall into four broad categories:
- Bars. Bars contain contextual information that tell users where they are and controls that help users navigate or initiate actions.
- Content views. Content views contain app-specific content and can enable behaviors such as scrolling, insertion, deletion, and rearrangement of items.
- Controls. Controls perform actions or display information.
- Temporary views. Temporary views appear briefly to give users important information or additional choices and functionality. - Start Instantly. It’s often said that people spend no more than a minute or two evaluating a new app. When you make the most of this brief period by presenting useful content immediately, you pique the interest of new users and give all users a superior experience. – No introductory start screen. Give users only the information they need to get started.
- Use animation and interactivity to engage users and help them learn by doing
- Make it easy to dismiss or skip the onboarding experience.
- Make it easy for people to interact with content and controls by giving each interactive element ample spacing. Give tappable controls a hit target of about 44 x 44 points.
- Use visual weight and balance to show users the relative importance of onscreen elements
- A key color gives users a strong visual indicator of interactivity, especially in apps that don’t use an abundance of other colors. In Contacts, blue marks the interactive elements and gives the app a unified and recognizable visual theme.
- Inputting Information Should Be Easy Inputting information takes time and attention, whether people tap controls or use the keyboard. When an app slows people down by asking for a lot of user input before anything useful happens, people can feel discouraged from using it.
- Make it easy for users to make choices. For example, you can use a picker or a table view instead of a text field, because most people find it easier to select an item from a list than to type words.
- Get information from iOS, when appropriate. People store lots of information on their devices. When it makes sense, don’t force people to give you information that you can easily find for yourself, such as their contacts or calendar information. Balance a request for input by giving users something useful in return. A sense of give and take helps people feel they’re making progress as they move through your app.
- Don’t take space away from the content people care about
- Find Apple colors
- Be aware of color blindness
- Consider choosing a key color to indicate interactivity and state.
- Avoid using the same color in both interactive and noninteractive elements.
- Color communicates, but not always in the way you intend. Everyone sees color differently, and many cultures differ in how they assign meanings to colors. Spend time to research how your use of color might be perceived in other countries and cultures. As much as possible, you want to be sure that the colors in your app send the appropriate message.
- In general, use a single font throughout your app.
- The best app icons are unique, uncluttered, engaging, and memorable.
- It’s a good idea to use the built-in icons as much as possible because users already know what they mean. Apple bar buttons.
- Support the Retina display. Make sure that you supply @2x assets for all artwork and graphics in your app.
- Every word you display in an app is part of a conversation you have with users. Use this conversation as an opportunity to provide clarity and to help people feel comfortable in your app.
- Use a tone that’s informal and friendly, but not too familiar.
- In general, run in all orientations.
- Keep consistent: Consistency lets people transfer their knowledge and skills from one part of an app’s UI to another and from one app to another app
Apple Guidance on Prototype & Iterate Testing
Before you invest significant engineering resources into the implementation of your design, it’s a really good idea to create prototypes for user testing. Even if you can get only a few colleagues to test the prototypes, you’ll benefit from their fresh perspectives on your app’s functionality and user experience.
In the very early stages of your design you can use paper prototypes or wireframes to lay out the main views and controls, and to map the flow among screens. You can get some useful feedback from testing wireframes, but their sparseness may mislead testers. This is because it’s difficult for people to imagine how the experience of an app will change when wireframes are filled in with real content.
You’ll get more valuable feedback if you can put together a fleshed-out prototype that runs on a device. When people can interact with your prototype on a device, they’re more likely to uncover places where the app doesn’t function as they expect, or where the user experience is too complex.
The easiest way to create a credible prototype is to use a storyboard-based Xcode template to build a basic app, and populate it with some appropriate placeholder content. (A storyboard file captures the entire UI of your app, including the transitions among different screens.) Then, install the prototype on a device so that your testers can have as realistic an experience as possible.
You don’t need to supply a large amount of content or enable every control in your prototype app, but you do need to provide enough context to suggest a realistic experience. Aim for a balance between the typical user experience and the more unusual edge cases. For example, if it’s likely that your app will handle long lists of items, you should avoid creating a prototype that displays only one or two list items. And for testing user interactions, as long as testers can tap an area of the screen to advance to the next logical view or to perform the main task, they’ll be able to provide constructive feedback.