UIDevice extensions that fill in the missing pieces.
UIDeviceComplete
is an iOS library intended to be a collection of extensions to UIDevice
that provides functionality that UIDevice
currently lacks like determining which iOS device
you have (i.e iPhone X, iPhone 8, iPhone SE, iPad Pro, iPhone 7 etc) or determining the screen size of the device
in inches.
- Detect specific device like iPhone 7, iPhone SE or iPad Pro
- Get screen size of device in inches
- Get iOS Device family (iPod, iPhone or iPad)
Feel free to open an Issue requesting the feature you want or send over a pull request!
All of the extensions are called off of the dc
variable which stands for ([UI]DeviceComplete) object that this
library extends onto UIDevice
that way native methods of UIDevice
and methods of this library can
easily be seen, also lowering the possibility of naming conflicts.
UIDevice.current.dc.commonDeviceName // iPad Pro (12.9 inch, Wi-Fi+LTE)
let device = UIDevice.current.dc.deviceModel
switch device {
case .iPhoneX:
print("So hows that iPhone X notch thing working out? Right...")
case .iPhone6Plus, .iPhone7Plus:
print("Lots of screen realestate eh?")
case .iPhoneSE, .iPhone5, iPhone5S:
print("Less iPhone is more iPhone...")
case .iPadPro:
print("Why?")
default:
print("Not sure what this is...")
}
Screen size can be be queried with the following computed property returning a simple Double
that represents the screen size in inches:
let screenSize: Double = UIDevice.current.dc.screenSize.sizeInches
if screenSize <= 4.0 {
print("Modest screen size; not so modest price tag")
} else if screenSize >= 5.5 {
print("Plus is always a plus")
} else {
print("Chances are this is an iPad or an iPhone (Texas Edition).")
}
If the type of device family is all you are after i.e iPhone or iPad and the specific model
is not important then DeviceFamily
might be what you need.
let deviceFamily = UIDevice.current.dc.deviceFamily
switch deviceFamily {
case .iPhone:
print("...phone home?")
case .iPad:
print("when it comes to screen size; more is more")
case