iOS devices support a variety of features, including sensors, graphics processors and networking options. When designing your app, you need to decide what capabilities your app needs and which devices to support, because the capabilities of each kind of iOS device are different.

At a Glance

This document describes the details for each device in order to help you develop your app and choose devices to test on. The information contained here is current as of iOS 11.0, but it is subject to change in future hardware or software releases.

Device Compatibility Strings

Sometimes, your app is dependent on a specific hardware feature existing on a device. On iOS, you can declare these dependencies when you build your app. When the app is built, this compatibility information is used to prevent the app from being installed on a device it can’t run on—and it can also be used by the App Store to prevent a customer from purchasing an app that doesn’t work on their device.


Displays on iOS devices have a variety of characteristics, including the size of the screen, which color spaces it supports, the rate at which the screen refreshes its contents, and the rate at which touch events are sampled and delivered. Understanding the characteristics of a specific device can be critical to producing the best user experience in your app.

Graphics Processors

When working with Metal and OpenGL ES, you often need to know the exact capabilities of the underlying hardware and the software that talks to it. Metal and OpenGL ES provide many built-in mechanisms for determining this information; this document summarizes the most important information and provides other information useful when creating Metal and OpenGL ES apps that run well on iOS devices.


Each iPhone and iPad model has many sophisticated camera features; iOS provides multiple ways for your app to control a device’s cameras and access their output. This chapter summarizes the specific camera capabilities of each model and provides information on how to access those features in the iOS SDK.

How to Use This Document

Although this document provides important Metal and OpenGL ES hardware information, it is not definitive. If you are unfamiliar with Metal programming, consult the Metal Programming Guide to learn how to develop Metal apps on iOS. If you are unfamiliar with OpenGL ES programming, consult the OpenGL ES Programming Guide to learn how to develop OpenGL ES apps on iOS. To ensure compatibility with future devices and iOS versions, your app must always test the capabilities of the underlying Metal and OpenGL ES implementation at runtime, disabling any features that do not have the required support from iOS.