Apple Developer Documentation

super.viewDidLoad()
    // Do any additional setup after loading the view.
    print("### UIDevice.current ###")
    print("name: ", UIDevice.current.name)
    print("systemName: ", UIDevice.current.systemName)
    print("systemVersion: ", UIDevice.current.systemVersion)
    print("model: ", UIDevice.current.model)
    print("localizedModel: ", UIDevice.current.localizedModel)
    print("userInterfaceIdiom ", UIDevice.current.userInterfaceIdiom)
    print("identifierForVendor: ", UIDevice.current.identifierForVendor as Any)   
}
### UIDevice.current ###
name:  iPhone 6s
systemName:  iOS
systemVersion:  15.1
model:  iPhone
localizedModel:  iPhone
userInterfaceIdiom  UIUserInterfaceIdiom
identifierForVendor:  Optional(identifier)
### UIDevice.current ###
name:  iPhone 13 Pro
systemName:  iOS
systemVersion:  15.1
model:  iPhon
localizedModel:  iPhone
userInterfaceIdiom  UIUserInterfaceIdiom
identifierForVendor:  Optional(identifier)

name: 사용자가 지정한 이름이다. 이 속성으로 기기를 판단할 수 없음

model: 해당 아이폰의 모델을 판단해주는 친구인데 자세한 정보는 제공해주지 않음

extension으로 해결해야함

How to determine the current iPhone/device model?

무려 1000표나 받은 extension 이쯤되면 애플잘못같은데

7년전 질문에 현재까지 업데이트가 되고 있는👏 (iPhone 13 Pro 존재, DeviceKit도 있네)

애플이 모델이름을 제공하지 않는 이유는 무엇일까? 🤔

모든 기기가 동일한 환경을 제공해줘야하는 철학??

어떤 기술을 특정 기기는 제공하고 특정 기기는 제공안해주도록하는 건 어긋나기 때문?

애플이 업데이트하는 버전을 사용가능한 모든 기기에는 동일한 기능을 제공해주어야 한다?

근데 저는 노치가 없는 기기들에게는 상단 스테이터스바를 없애서 넓은 스크린을 제공해주고 싶어요

UIStatusBar

iOS ) UIStatusBar