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 8.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.
Metal and OpenGL ES
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.
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 OpenGL ES programming, consult the OpenGL ES Programming Guide for iOS to learn how to develop OpenGL ES apps on iOS. If you are unfamiliar with Metal programming, consult the Metal Programming Guide to learn how to develop Metal 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.