ITエンジニア Swift 学習関連

【Swift開発には必須!?】iOSアプリ開発でうまくUIDeviceを使用する方法

今回は、会社でiOSアプリの開発をしていてUIDevice型を使用する機会がありそうで、個人開発にも使用できそうだと思ったので、UIDeviceの有効的な利用方法の技術記事を記述しました!

目次

  • Swiftで用いることのできるUIDeviceとは?
  • UIDeviceの使用方法についての解説
  • さいごに

Swiftで用いることのできるUIDeviceとは?

そもそもUIDeviceとは、ざっくりと一言で説明すると『利用されているデバイスの状態を確認するためのクラス』です!

UIDevice

A representation of the current device.

Swift公式リファレンス

もう少し詳しく説明をすると、利用中のデバイスに割り当てられた名前やiPhoneやiPod touch等のデバイスモデル、iOS等のオペレーティングシステムの名前バージョンなど、デバイスに関する情報を取得することができる、Apple側があらかじめ用意してくれているクラスです!

他にも、デバイスの向きを検知したり、バッテリーの残量を確認することもできるかなり万能的なクラスになっているかなと思います!

具体的に使用が想定されるケースとしては、SwiftとiOSのバージョンによって使用する関数を変更したい場合は、UIDeviceでバージョンを取得して条件分岐させる等の使用方法ができそうですね!

以下具体的な、よく使われそうなプロパティの一覧です!


プロパティの名前
プロパティの用途
var current: UIDevice現在利用されているデバイスの情報を保持しているプロパティにあたるため、基本的にUIdevice.current〜のように続けて利用することがほとんど
var name: Stringデバイスの名前を取得できますが、利用されているデバイスのiOSバージョンによって挙動が異なります。
具体的には、iOS15以前のバージョンでは、個人が設定した「~のiPhone」のような文字列を取得できますが、iOS16バージョン以降では、特定の要件を満たさない限りは、全て「iPhone」という文字列のみ取得できるようです。詳しくはこちらをご確認いただければと思います!
【AppleDevelopper公式サイト】
com.apple.developer.device-information.user-assigned-device-name
var systemVersion: Stringバージョンの数字を文字列で取得できます。
var model: Stringデバイスのモデルを取得できます。具体的には、iPhoneやiPod touch等の文字列のみ取得可能のようです。
var batteryLevel: Floatバッテリーの充電パーセンテージを返却してくれるのでしが、表示方法は1.0~0.0の間で表現されます。具体的にフルチャージ(100%)の時は、1.0で逆に0.0%の時は0.0で返却されます。
var batteryState : UIDevice.BatteryStateバッテリーの状態を取得することができますが、バッテリーの監視を有効にしていない場合は、.unKnownで値が返却されます。
var isPortrait: Boolデバイスの向きが縦向きかどうかを取得できます。こちらに加えて、isLandcapeというプロパティもあるので横向きかどうかも取得できます。
UIDeviceのプロパティ一覧

UIDeviceの使用方法についての解説

では、具体的にどのように使用するかですが、使用する際に特段中止することはなく、最低限必要なのは、UIDeviceを用いて現在使用されているデバイスの情報を取得する場合は、以下のように記述する必要があります。

UIDeviceEx.Swift

UIDevice.current.model  // iPhone

なぜこのように記述する必要があるかというと、プロパティ一覧でも記述したように「current」には使用されているデバイスの情報が格納されているので、これを入れないと正常に情報を取得できないのです。

 

さいごに

いかがでしたでしょうか?僕自身は、アプリのメールでのお問合せ対応を円滑にするためにメールにデフォルトでiOSのバージョンを添付する仕様にしています!
あまり表立ってUIDeviceを多用する機会はないかもしれませんが、アプリ固有の情報を取得することができるので、知っていて損はないと思います!
今後も、Swiftでの開発を中心に技術記事を書いていきたいと思いますので、よければお読みいただけでばと思います!

  • この記事を書いた人

しょ〜ひ〜

『人生を豊かに楽しみたい!!』と考え、ブログ執筆を始めました! 主に、『技術記事』『新卒&転職活動』『サウナ』や趣味について発信していきます!! 【経歴】IT企業←信託銀行←関西私立文系 個人開発のiOSアプリをリリースしました!

-ITエンジニア, Swift, 学習関連
-, , ,