Latest 1.1.1
License MIT
Platforms ios 11.0, requires ARC

device-kit Awesome

Build Status

Last Update: 06/April/2019.

If you like the project, please give it a star ⭐ It will show the creator your appreciation and help others to discover the repo.

✍️ About

📱 Framework that allows to get extended information about an iOS device.

🏗 Installation


device-kit is availabe via CocoaPods

pod 'device-kit', '~> 1.1.1' 


You can always use copy-paste the sources method 😄. Or you can compile the framework and include it with your project.

📚 Features

  • Device Type information
    • Easily get a device’s identifier
    • Determine if an app running on a simulator or on an actual device
    • Includes information about an each iOS device
  • Device Storage status such as:
    • Total space
    • Free space
    • Used space
    • You can format the data using various units (by using ByteCountFormatter.Units)
  • Device Orientation information
    • Check whether the device is in .portrait or .landscape orientation without the need to make boilerplate UIDevice.current.orientation calls & if/else checks
    • You can use isPortrait property if you’d like
  • Device’s Internet Connection status
    • Super easily check whether your device is connected to the internet
    • You can get the reachability status as well

✈️ Usage

Getting device’s identifier:

let identifiers = UIDevice.current.deviceType
// `identifiers` will hold the corresponding devices' identifiers depending on your `iOS` model

Determing how much storage has left:

// Will print something like this:
// 139,197.3 MB

// Or you can change the unit type to Gigabytes:
// 139.16 GB

UIDevice.current.storageStatus.getFreeSpace(.useGB, includeUnitPostfix: false)
// If you don't want to get GB, MB postfixes then specify an optional parameter for `includeUnitPostfix`:
// 139.16

Checking the device’s orientation:

let orienation = UIDevice.current.deviceOrientation

switch orientation {
  case .portrait:
  case .landscape:

Getting the internet connection status:

let internet = UIDevice.current.internetConnection

guard internet.connection == .open else { 
  throw NetworkError.isNotAvailabe("Missing internet connection")


📝 ToDo

  • [x] Lightweight Network reachability (with NotificationCenter support or more safer approach in observing changes)
    • [ ] NotificationCenter observer support
  • [x] Device orientation
    • [ ] NotificationCenter observer support
  • [ ] Interface orientation
    • [ ] NotificationCenter observer support


  • There is just one main rule for contributors – please include your extensions in separete files. It’s important since such extension can be more easily referenced and reused.
  • The other soft rule is – please include unit tests with your extensions.

👨‍💻 Author

Astemir Eleev

🔖 Licence

The project is available under MIT licence

Latest podspec

    "name": "device-kit",
    "version": "1.1.1",
    "summary": "ud83dudcf1 Lightweight framework that allows to get extended information about an iOS device.",
    "description": "ud83dudcf1 Lightweight framework that allows to get extended information about an `iOS` device.",
    "homepage": "",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    "authors": {
        "Astemir Eleev": "[email protected]"
    "platforms": {
        "ios": "11.0"
    "source": {
        "git": "",
        "tag": "1.1.1"
    "source_files": "device-kit/**/*.swift",
    "requires_arc": true,
    "pod_target_xcconfig": {
        "SWIFT_VERSION": "4.2"
    "swift_version": "4.2"

Pin It on Pinterest

Share This