見出し画像

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 アプリのテスト中に気づきました。
詳しくはこちらの記事に描きました。


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