はじめに
こんにちは、nukkyです。
今回は端末のサイズやモデル名などを
簡単に取得できるライブラリ「Device」を紹介したいと思います。
準備
今回もおなじみCarthageを使用します。
Cartfileにこちらを記述してください。
1 | github "Ekhoo/Device" ~> 3.0.3 |
そうしたら、以下のコマンドでビルドしてください。
1 | carthage update --platform iOS |
試してみる
端末モデル名
まずは「Device」をインポートします
1 | import Device |
端末のモデル名「iPhone8」や「iPadAir」などは以下のメソッドで取得します
1 | print(Device.version())// iPhone8 |
「Device」が定義しているenum「Version」の値が返ってきます。
端末毎に処理を行いたい場合は以下の様に判定を行うことができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | 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」があるので
以下の様に判定を行うことができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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」なのかで分けたい場合は
以下の様に判定処理を行えます。
1 2 3 4 5 6 7 8 9 | 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」いかがだったでしょうか。
こういうのを自力で作るのは面倒ですし
かなり便利に使えると思います。