CocoaPods trunk is moving to be read-only. Read more on the blog, there are 18 months to go.

Thingy 2.1.0

Thingy 2.1.0

TestsTested
LangLanguage SwiftSwift
License MIT
ReleasedLast Release Apr 2019
SPMSupports SPM

Maintained by Bojan Dimovski.



Thingy 2.1.0

  • By
  • Bojan Dimovski

Thingy

A modern device detection and querying library.

Build Status GitHub license Carthage compatible SPM CocoaPods compatible

Documentation

Features

  • Swift 4 support
  • Modern syntax
  • Documentation
  • Device detection
  • Device family detection
  • Device screens
  • Simulator detection
  • Simple querying

Requirements

Installation

Swift Packager Manager (SPM)

Create a Package.swift file, and add this snippet:

import PackageDescription

let package = Package(
    name: "HelloWorld",
    dependencies: [
        .Package(url: "https://github.com/bojan/Thingy.git", "2.0.2")
    ]
)

Carthage

Add this to your Cartfile:

github "bojan/Thingy"

CocoaPods

Add this to your Podfile

pod 'Thingy'

Manually

Add the repository as a submodule to your project.

git submodule add https://github.com/bojan/Thingy.git Vendor/Thingy

Open the newly created folder in Finder and drag Thingy.xcodeproj to your project.

In your project's settings, select your target and under General > Embedded Binaries, add the framework depending on the target OS (iOS, watchOS or tvOS).

Usage

Import the module where needed:

import Thingy

Device properties

Inspect the current device:

let myDevice = Device()

// Compare models or product families
if myDevice.family == .tv {
    print("This is an Apple TV device.")
}

if myDevice.model != .iPhone7Plus {
    print("This is NOT an iPhone 7 Plus.")
}

// Pretty printed device properties

print(myDevice.family.marketingName) // e.g. iPad
print(myDevice.model.marketingName) // e.g. iPhone 7 Plus
print(myDevice.productLine.marketingName) // e.g. Air

Model comparison

let myDevice = Device()

do {
    let result = try myDevice.isEqual(to: Thingy.iPadPro12Inch)
}
catch {
    print("The devices are incompatible.")
}

do {
    let result = try myDevice.isOlder(than: Thingy.iPadPro10Inch)
}
catch {
    print("The devices are incompatible.")
}

Device size

let myDevice = Device()

if myDevice.display == .screen10_5Inch {
    print("This is the 10.5in iPad Pro.")
}

Contributions

All contributions and suggestions are welcome and very much appreciated.

Should you have a feature request or a problem that you may experience, feel free to open an issue.

If you are willing to contribute by adding a feature or squashing a bug or two, please submit a pull request.

Author

Bojan Dimovski

License

Thingy is available under the MIT license. Check the LICENSE file for more info.