カテゴリー: iOS

端末のモデル名やサイズを簡単に取得できるライブラリ「Device」

はじめに

こんにちは、nukkyです。
今回は端末のサイズやモデル名などを
簡単に取得できるライブラリ「Device」を紹介したいと思います。

準備

今回もおなじみCarthageを使用します。
Cartfileにこちらを記述してください。

github "Ekhoo/Device" ~> 3.0.3

そうしたら、以下のコマンドでビルドしてください。

carthage update --platform iOS

 

試してみる

端末モデル名

まずは「Device」をインポートします

import Device

端末のモデル名「iPhone8」や「iPadAir」などは以下のメソッドで取得します

print(Device.version())// iPhone8

「Device」が定義しているenum「Version」の値が返ってきます。
端末毎に処理を行いたい場合は以下の様に判定を行うことができます。

func myFunc() {
    switch Device.version() {
        // iPhone
    case .iPhone4:       print("It's an iPhone 4")
    case .iPhone4S:      print("It's an iPhone 4S")
    case .iPhone5:       print("It's an iPhone 5")
    case .iPhone5C:      print("It's an iPhone 5C")
    case .iPhone5S:      print("It's an iPhone 5S")
    case .iPhone6:       print("It's an iPhone 6")
    case .iPhone6S:      print("It's an iPhone 6S")
    case .iPhone6Plus:   print("It's an iPhone 6 Plus")
    case .iPhone6SPlus:  print("It's an iPhone 6 S Plus")
    case .iPhoneSE:      print("It's an iPhone SE")
    case .iPhone7:       print("It's an iPhone 7")
    case .iPhone7Plus:   print("It's an iPhone 7 Plus")
    case .iPhone8:       print("It's an iPhone 8")
    case .iPhone8Plus:   print("It's an iPhone 8 Plus")
    case .iPhoneX:       print("It's an iPhone X")
        
        // iPad
    case .iPad1:           print("It's an iPad 1")
    case .iPad2:           print("It's an iPad 2")
    case .iPad3:           print("It's an iPad 3")
    case .iPad4:           print("It's an iPad 4")
    case .iPad5:           print("It's an iPad 5")
    case .iPadAir:         print("It's an iPad Air")
    case .iPadAir2:        print("It's an iPad Air 2")
    case .iPadMini:        print("It's an iPad Mini")
    case .iPadMini2:       print("It's an iPad Mini 2")
    case .iPadMini3:       print("It's an iPad Mini 3")
    case .iPadMini4:       print("It's an iPad Mini 4")
    case .iPadPro9_7Inch:  print("It's an iPad Pro 9.7 Inch")
    case .iPadPro12_9Inch: print("It's an iPad Pro 12.9 Inch")
        
        // iPod
    case .iPodTouch1Gen: print("It's a iPod touch generation 1")
    case .iPodTouch2Gen: print("It's a iPod touch generation 2")
    case .iPodTouch3Gen: print("It's a iPod touch generation 3")
    case .iPodTouch4Gen: print("It's a iPod touch generation 4")
    case .iPodTouch5Gen: print("It's a iPod touch generation 5")
    case .iPodTouch6Gen: print("It's a iPod touch generation 6")
        
        // Simulator
    case .simulator:    print("It's a Simulator")
        
        // Unknown
    default:            print("It's an unknown device")
    }
}

画面サイズ

わりとコード内で画面サイズの判定を行うことがあると思いますが
こちらも上記と同じく「Device」が定義しているenum「Size」があるので
以下の様に判定を行うことができます。

func myFunc() {
    switch Device.size() {
    case .screen3_5Inch:  print("It's a 3.5 inch screen")
    case .screen4Inch:    print("It's a 4 inch screen")
    case .screen4_7Inch:  print("It's a 4.7 inch screen")
    case .screen5_5Inch:  print("It's a 5.5 inch screen")
    case .screen5_8Inch:  print("It's a 5.8 inch screen")
    case .screen7_9Inch:  print("It's a 7.9 inch screen")
    case .screen9_7Inch:  print("It's a 9.7 inch screen")
    case .screen10_5Inch: print("It's a 10.5 inch screen")
    case .screen12_9Inch: print("It's a 12.9 inch screen")
    default:              print("Unknown size")
    }
}

端末の種類

そもそも端末のモデル名ほど細かく処理を分けない、
「iPhone」なのか「iPad」なのかで分けたい場合は
以下の様に判定処理を行えます。

func myFunc() {
    switch Device.type() {
    case .iPod:         print("It's an iPod")
    case .iPhone:       print("It's an iPhone")
    case .iPad:         print("It's an iPad")
    case .simulator:    print("It's a Simulated device")
    default:            print("Unknown device type")
    }
}

 

さいごに

「Device」いかがだったでしょうか。
こういうのを自力で作るのは面倒ですし
かなり便利に使えると思います。

nukky

シェア
執筆者:
nukky
タグ: Swift

最近の投稿

フロントエンドで動画デコレーション&レンダリング

はじめに 今回は、以下のように…

3週間 前

Goのクエリビルダー goqu を使ってみる

はじめに 最近携わっているとあ…

4週間 前

【Xcode15】プライバシーマニフェスト対応に備えて

はじめに こんにちは、suzu…

2か月 前

FSMを使った状態管理をGoで実装する

はじめに 一般的なアプリケーシ…

3か月 前