iOS Human Interface Guidelines
Presentation & Content are based on:
& slides from Mohammad Khalil
* All images are CC0 from pixabay or shareable from source
Yellow, highlights important
Adopt Dynamic font type
Colors & Fonts
• Make sure colors work together
• Make your colors send the appropriate message
• Pay attention to color contrast
Colors & Fonts
Recommended Not Recommended
• Use complementary colors
throughout your app
• choose a limited color palette
that coordinates with your
• Avoid using the same color
for interactive and
Light color scheme Dark color scheme
Colorblindness & different cultures
without color blindness Red-green color blindness
“ Don’t tell people to reboot their devices
after installing your app...”
“ Start your app immediately...”
“ Make your app setup suite most of the users...”
“ Delay login info as long as possible”
Center Image from: www.computerworld.com
Avoid asking people to rate
Your app too soon, or
Launch your app in the device’s
“iOS never displays Close Option!”
Save user data Save current state
Display an alert when you need
Display such a screen when all app
features are unavailable!
“Users should always know where they are in
Users know the standard Gestures
“Ensure that your app is easy to use,
therefore, try to limit the gestures you
require to the most popular ones”
Modal Contexts “Get users’ attention but keep them
simple, easy to exit and respect their
preference for receiving notifications”
Image from: http://i.stack.imgur.com/rRNvL.jpg
“Use Animation, but cautiously”
Use your style for
branding, Do not make
them forced to watch
Correct Wording in your App
• Watch out for Spelling & Grammar
• Use a friendly tone
• Understandable Description
• Design Principles
• From Concept to
Design Principles (1/2)
The app should function, AND should have a great appearance
Design Principles (2/2)
> Consistent with iOS standards, UI elements behave
the same throughout the entire app,…
> Easy gestures, does rotate affect on screen objects…
> Update people with progress, show the results of an action…
From Concept to Product (1/3)
1) Squeeze your brain and capture all
2) Determine who your users are.
3) Determine their needs.
4) Filter and set your app features.
From Concept to Product (2/3)
Get the job done correctly
UI is a hindrance.
Let users predict what your
“Think twice before redesigning a standard control”
From Concept to Product (3/3)
Test, test and test…
Perform actions from home screen
With several templates…
Icons to right Icons to left
Motion-Rich experience + sound
Starting from iOS 9.
• Display live photo as traditional in non-support environment
• Let the user distinguish between live photo and traditional
one using the badge
You can let users share a live photo using your app
A Wallet is for storing passes (tickets, coupons, memberships…)
• Use white company logo
• Use rectangular barcode
• Avoid using a plain white background
A rectangular barcode
fits well in the layout
A square barcode can
crowd other fields
Apple Pay $$
Apple Pay UI contains three main steps:
• Apple Pay mark
• Payment Sheet
Make the button
large and clear
Show the payment
sheet right after the
Research + HealthKit (2/2)
Let participants choose the data they want to
share with you
Use a dashboard to motivate participants and
“App extensions increase the
reach of your app…”
Share extension Custom Keyboard
“HomeKit makes it easy to
use home automation apps
on people iOS devices…”
• Make it easy to add new accessories
• Give users different ways to find
• Use friendly language to make your app
easy to use
Bottom Image from: https://www.appfutura.com/blog/wp-content/uploads/2015/04/homekit-3.png
Your app should:
• Carefully tune resource usage to avoid much cpu,
memory and screen space usage
• Handle interruptions such as the audio!
• Stop and restart, should be quickly and smoothly
• Behave responsibly when not in the foreground
editable list of
from apps that
“To ensure that users can customize their notification experience,
you should support as many as possible of notifications…”
Banner Alert SoundBadge
• Do not send multiple notifications for the same event
• Do not include your app name in notif. It is shown
• Enable signups, but avoid
asking for signing in
• Share experience, results
iCloud “iCloud lets people access the content they care about regardless
of which device they’re currently using…”
• Respect the user’s iCloud space.
• Avoid asking people which doc to
store in iCloud.
• Make your app behaves reasonable
when iCloud is not available (such as in
• Update content automatically.
“In-App Purchase lets people buy digital products within
your app, in a store that you design.”
• Upgrade a basic version to premium version
• Renew subscription
• Purchase virtual items like a weapon in a
Use simple description
Don’t alter the confirmation alert
(use the default one)
AirPrint “Using AirPrint, people can wirelessly print content from
your app and use Print Center app to check on a print job.”
• Use the system-provided Action
button. Use the familiar button, no
need to create new one.
• Provide additional printing options
• Don’t display print UI unless the
user’s device can print.
Accessing User Data
“It allow apps to access the data people store
in Contacts, Calendar, Reminders, GPS…etc.”
startup if your app
can’t perform it on
• Ring/Silent (avoid sound if it is not explicitly set )
• Users use the device’s volume buttons to control
all sounds their devices can play
• Users use headsets to hear sounds privately.
• Use the system-provided volume slider
The ability to accept
“You need to know how users expect sound
“VoiceOver increases accessibility for blind and low-vision users, and for
users with certain learning challenges.”
• Making your iOS app accessible to
VoiceOver users can increase your user
base and help you enter new markets.
• The more custom your UI is, the more
custom information you need to provide so
that VoiceOver can accurately describe your
• Focus on the route
• Provide information for every
step of a route
• Enrich map with additional info
• Respect user’s transit options
• Use push notification
Undo & Redo
“Users initiate an Undo operation by shaking the device,
which displays an alert to undo what they just typed”
• Supply brief descriptive phrase to tell
users what they’re undoing or redoing.
• Avoid overloading the shake gesture
• Status Bar
• Navigation Bar
• Tab Bar
• Search Bar
• Scope Bar
Default (dark) content Light content
• Do not create a custom status bar.
• Avoid putting content behind status bar.
• Think twice before hiding status bar
• It is an important bar, which includes battery, signal, H+,…etc.
“The status bar displays important information about the
device and the current environment”
Navigation Bar (1/2)
“A navigation bar enables navigation through an information hierarchy.”
• The navigation bar title should change to the
new level’s title.
• A back button should appear in the left end of
• Make sure text-titled buttons have enough
• Make sure customized back button looks and
behave like a back button.
Navigation Bar (2/2)
• Consider hiding the navigation bar when
users want to focus on the content.
• Consider a prompt to clarify what users can
do in the current screen
“A toolbar contains controls that perform actions related to objects in the screen or
• Usually appears at the bottom on iPhone and can appear at the top of
• Include the most frequent used commands in the tool bar.
• Use icons if you need to put more than three items.
• Make sure text-titled buttons have
enough space between them.
Toolbar & Navigation Bar Buttons
+ you can use the
Info button in toolbar
“A tab bar gives people the ability to
switch between different subtasks, views,
or modes in an app.”
• Always appears at the bottom edge of the screen.
• Use tab bar to organize information at the app level.
• Avoid crowding the tab bar with too many tabs.
• “More” tab will show if you use more than 4 tabs.
• Don’t use a tab bar to give users control, instead use
Common icons in tab bar
“A search bar accepts text from users, which can be used as input for a search. ”
With different features…
Only available with a search bar…
• it’s even better to improve search results so
that users don’t need to scope their search
“ An activity represents a system-provided or custom service ”
• Each activity is represented by an icon and a title
• Use black & white with appropriate alpha transparency
• Make a brief title
• Give users access to a custom service
“A collection view manages an ordered collection of
items and presents them in a customizable layout.”
• Display set of items
• Make it easy for people to select an item (use 44x44
• Don’t choose collection view when table view is a
“A map view presents geographical data and
supports most of the functionality provided by the
built-in Maps app.”
• In general, let user interact with the map
• Use the standard pin colors:
Use red for a destination point
Use green for a starting point
Use purple for a user-specified point
“A page view controller uses one of two styles to
manage transitions through multipage content—
scrolling or page-curl”
• Use a page view controller to present a text of a
• Use a page view controller for content that
naturally breaks into chunks (such as a calendar).
“A web view is a region that can display rich
• Avoid using a web view to create an app that
looks and behaves like a mini web browser
Instead, users would
“A text view accepts and displays
multiple lines of attributed text.”
“A scroll view helps people see content that is
larger than the scroll view’s boundaries”
• Support zoom behavior appropriately
• Consider using a page control with a paging-mode
A split view controller is a full-
screen view controller that
manages the presentation of two
child view controllers.
• In iOS 7 and earlier was only
available for iPad
• Avoid displaying a navigation bar in
both panes at the same time.
• both panes can contain table, image,
“A table view presents data in a scrolling
single-column list of multiple rows.”
• Always provide feedback when users
select a list item.
• As much as possible, use brief text
labels to avoid truncation.
• If content is extensive, avoid
waiting, Instead, fill the onscreen rows
some table view elements that can extend
functionality of the table view
“A popover is a transient view that can be revealed when
people tap a control or tap in an onscreen area.”
• save users’ work when they tap outside a popover’s
• Make sure people can use a popover without seeing the
app content behind it.
• Ensure that only one popover is visible onscreen at a
• Avoid making a popover too big.
Activity Indicator Contact Add Button
• Use it to reassure users that their the
process has not stalled.
• Customize the color and the size to
fit your needs.
• Use it to let users access contact easily
without using the keyboard.
• Do not use it in a view that does not
support keyboard input.
Date Picker Label
• Make it inline with the content.
• You can customize the minutes wheel
to 0, 15, 30, and 45.
• Make sure to make your label Dynamic.
• It does not allow interaction, except to
copy the text.
Page Control Picker
• Avoid displaying too many dots
• Use it when users are familiar with the set
of values like Language or Countries.
• Make it inline with the content.
• ConsiderTableView if your set is too large.
• Use it to show a binary state
• Make it suite the style of your app
• Do not use to display volume control.
Instead, use the system-provided volume
• Use it when you don’t want to display a
value, and avoid it with large values
Segmented Control System Button
• Can contain images or text.
• Make sure each segment is easy to tab
• Avoid mixing text and images in a
single segmented control.
• Has no border, and can contain icon.
• Use it as a verb phrase
• Avoid creating a long title and use
• You can add background to a system
“It is a linear set of segments, each of which
functions as a button…”
“A text field accepts a single line of
• Display the Clear button in the right
end of a text field when appropriate.
• Display a hint in the text field if it
helps users understand its purpose.
• Specify a keyboard type like
Numbers to enter phone numbers
or words for text.
If an alert does this:
Provides information related to the standard
functioning of an app
Design an eye-catching way to display the
Updates users on tasks that are progressing
Use a progress view or activity indicator
Do this instead:
• Avoid creating unnecessary alerts
• Avoid “you, me, my, your”.
• Use Capitalization appropriately
• Use two-button Alert
• Avoid lengthening alert text
“An action sheet displays a set of choices related to a task the user initiates.”
• Use red for the button that perform destructive
actions like Delete.
• Include cancel button in compact environment.
• Avoid making users scroll,
therefore limit number of
options in the action sheet.
“a view presented modally - provides self-contained
functionality in the context of the current task or
• Don’t display a modal view on top of a popover.
• Display a title that identifies the task,
• Use correct modal view style (Full screen, Form
Icon & Image Sizes
• Required (main App icon,App icon
for app store, Launch file or image)
• Recommended (Spotlight search
result icon, settings icon)
• Optional (Toolbar and Navigation
App Icon (1/3)
• It needs to be beautiful and memorable to attract
• Get help from a professional graphic designer
• Embrace simplicity
• Make sure it looks good on different backgrounds
• Avoid transparency
• Create different sizes of the app icon
• Don’t use iOS app icon in your interface
App Icon (2/3)
• Mask is done automatically, so, make sure your icon has 90-degrees corners.
• When designing smaller sizes, they still should be easy
to detect with the eyes and describe theirselves.
Image from http://www.designbolts.com/wp-content/uploads/2015/09/Free-iOS-9-Style-Social-Media-Icons-Set.jpg
“A launch file (or image) provides a simple placeholder image that iOS displays
when your app starts up”
• Design a plain launch image that improves the user
• Should not be about/branding image
• For Retina iPhone 6 Plus:
1242 x 2208 (@3x) for portrait
2208 x 1242 (@3x) for landscape
• For Retina iPhone 6:
750 x 1334 (@2x) for portrait
1334 x 750 (@2x) for landscape
• Use standard icons.
• If you redesign yours, make two versions.
• They should be simple and understandable.
Apple UI Design Resources
Now, it is your turn