systemNameがiPadでは「iPadOS」を返すようになっていた
見出し画像

systemNameがiPadでは「iPadOS」を返すようになっていた

快技庵 高橋政明

UIDevice クラスの systemName は iOS 14 では iPad でも『iOS』を返していました。

iOS 15.3.1 で確認したところ iPad では『iPadOS』を返していました。

私のアプリ AllGlyphs はどのOSに搭載されているかを確認するため、systemName と systemVersion を表示しています。
iOS 14.4.2 の iPad では『iOS』と表示します:

iPadでも「iOS」と表示している

同じアプリを 15.3.1 の別の iPad で実行し確認すると『iPadOS』と表示します。

iPadで「iPadOS」と表示できる

15.0 では「iOS」と表示していたように記憶しています(が定かではありません)。
『Apple は「iPadOS」と「iOS」を区別するようになっても systemName
 では「iOS」と表示するのか』と感じていました。

iPhone で実行すると『iOS』と表示します。

iPhone での実行画面

systemName と systemVersion の使い方は簡単です。

let systemName = UIDevice.current.systemName
let versionStr = UIDevice.current.systemVersion

ドキュメントには何も触れられていませんが iPhone と iPad を区別することができるようになっています。

ドキュメント 👉systemName

Xcode 13.2.1 のシミュレーターでも iPad は『iPadOS』を表示しました。


systemName の挙動の違いは AllGlyphs アプリのテスト中に気づきました。
詳しくはこちらの記事に描きました。


この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!
快技庵 高橋政明

今後も記事を増やすつもりです。 サポートしていただけると大変はげみになります。

ありがとう、今後も毎月記事をふやすつもりなのでフォローお願いします。
快技庵 高橋政明
古くからのMacプログラマ、現在はiOS向けに青空文庫リーダーアプリなどを作っている。「未経験者のための『コードを学ぼう』ガイド」『Swift5初級ガイド』など技術書執筆も行なっています。noteでは主にセミナーの内容を有料記事で公開しています。Twitterは@houhei