Device is a value-type replacement of UIDevice.
##Features
- Device identification
- Device family detection
- Device group detection
- Simulator detection
- Battery state
- Battery level
- Equatable
- iOS 8.0+ / tvOS 9.0+ (linking against iOS 9.3 and tvOS 9.2 required)
- Xcode 7.3+
DeviceKit can be installed in various ways.
source'https://github.com/CocoaPods/Specs.git'platform:ios,'8.0'use_frameworks!pod'DeviceKit','~> 0.3.2'github "dennisweissmann/DeviceKit" ~> 0.3.2
To install it manually drag the DeviceKit project into your app project in Xcode or add it as a git submodule. In your project folder enter:
$ git submodule add https://github.com/dennisweissmann/DeviceKit.gitHere are some usage examples. All devices are also available as simulators:
.iPhone6 =>.Simulator(.iPhone6).iPhone6s =>.Simualtor(.iPhone6s)etc.
letdevice=Device()print(device) // prints, for example, "iPhone 6 Plus"
if device ==.iPhone6Plus {
// Do something
}else{
// Do something else
}letdevice=Device()if device.isPod {
// iPods (real or simulator)
}elseif device.isPhone {
// iPhone (real or simulator)
}elseif device.isPad {
// iPad (real or simulator)
}letdevice=Device()if device.isSimulator {
// Running on one of the simulators(iPod/iPhone/iPad) // Skip doing something irrelevant for Simulator
}letdevice=Device()switch device {case.Simulator(.iPhone6s):break // You're running on the iPhone 6s simulator
case.Simulator(.iPadAir2):break // You're running on the iPad Air 2 simulator
default:break}letgroupOfAllowedDevices:[Device]=[.iPhone6,.iPhone6Plus,.iPhone6s,.iPhone6sPlus,.Simulator(.iPhone6),.Simulator(.iPhone6Plus),.Simulator(.iPhone6s),.Simulator(.iPhone6sPlus)]letdevice=Device()if device.isOneOf(groupOfAllowedDevices){
// Do you action
}if device.batteryState ==.Full || device.batteryState >=.Charging(75){print("Your battery is happy! 😊")}if device.batteryLevel >=50{install_iOS()}else{showError()}If you have the need for a specific feature that you want implemented or if you experienced a bug, please open an issue. If you extended the functionality of DeviceKit yourself and want others to use it too, please submit a pull request.