Device Name but not by using UIKit currentDevice

Why this values (cpu free, bus freq.) are zero?

If anyone would have the real device type, you can use this.

Type name: "+GetRealDeviceType(Me.DeviceTypeName)

Public Function GetRealDeviceType(MyType as text) as text
select case MyType

//Simultor

case “i386”
return “32-bit Simulator”
case “x86_64”
return “64-bit Simulator”

//iPhone

case “iPhone1,1”
return “iPhone”
case “iPhone1,2”
return “iPhone 3G”
case “iPhone2,1”
return “iPhone 3GS”
case “iPhone3,1”
return “iPhone 4 (GSM)”
case “iPhone3,3”
return “iPhone 4 (CDMA/Verizon/Sprint)”
case “iPhone4,1”
return “iPhone 4S”
case “iPhone5,1”
return “iPhone 5 (model A1428, AT&T/Canada)”
case “iPhone5,2”
return “iPhone 5 (model A1429, everything else)”
case “iPhone5,3”
return “iPhone 5c (model A1456, A1532 | GSM)”
case “iPhone5,4”
return “iPhone 5c (model A1507, A1516, A1526 (China), A1529 | Global)”
case “iPhone6,1”
return “iPhone 5s (model A1433, A1533 | GSM)”
case “iPhone6,2”
return “iPhone 5s (model A1457, A1518, A1528 (China), A1530 | Global)”
case “iPhone7,1”
return “iPhone 6 Plus”
case “iPhone7,2”
return “iPhone 6”
case “iPhone8,1”
return “iPhone 6S”
case “iPhone8,2”
return “iPhone 6S Plus”
case “iPhone8,4”
return “iPhone SE”
case “iPhone9,1”
return “iPhone 7 (CDMA)”
case “iPhone9,3”
return “iPhone 7 (GSM)”
case “iPhone9,2”
return “iPhone 7 Plus (CDMA)”
case “iPhone9,4”
return “iPhone 7 Plus (GSM)”
case “iPhone10,1”
return “iPhone 8 (CDMA)”
case “iPhone10,4”
return “iPhone 8 (GSM)”
case “iPhone10,2”
return “iPhone 8 Plus (CDMA)”
case “iPhone10,5”
return “iPhone 8 Plus (GSM)”
case “iPhone10,3”
return “iPhone X (CDMA)”
case “iPhone10,6”
return “iPhone X (GSM)”

//iPad 1

case “iPad1,1”
return “iPad - WiFi (model A1219)”
case “iPad1,1”
return “iPad - WiFi + Cellular (model A1337)”

//iPad 2

case “iPad2,1”
return “iPad 2 WiFi (model A1395)”
case “iPad2,2”
return “iPad 2 GSM (model A1396)”
case “iPad2,3”
return “iPad 2 3G (model A1397)”
case “iPad2,4”
return “iPad 2 WiFi (model A1395)”

// iPad Mini

case “iPad2,5”
return “iPad Mini WiFi (model A1432)”
case “iPad2,6”
return “iPad Mini WiFi + Cellular (model A1454)”
case “iPad2,7”
return “iPad Mini WiFi + Cellular (model A1455)”

//iPad 3

case “iPad3,1”
return “iPad 3 WiFi (model A1416)”
case “iPad3,2”
return “iPad 3 WiFi + Cellular (model A1403)”
case “iPad3,3”
return “iPad 3 WiFi + Cellular (model A1430)”

//iPad 4

case “iPad3,4”
return “iPad 4 WiFi (model A1458)”
case “iPad3,5”
return “iPad 4 WiFi + Cellular (model A1459)”
case “iPad3,6”
return “iPad 4 WiFi + Cellular (model A1460)”

//iPad AIR

case “iPad4,1”
return “iPad Air WiFi (model A1474)”
case “iPad4,2”
return “iPad Air WiFi + Cellular (model A1475)”
case “iPad4,3”
return “iPad Air WiFi + Cellular (model A1476)”

// iPad Mini 2

case “iPad4,4”
return “iPad Mini 2 WiFi (model A1489)”
case “iPad4,5”
return “iPad Mini 2 WiFi + Cellular (model A1490)”
case “iPad4,6”
return “iPad Mini 2 WiFi + Cellular (model A1491)”

// iPad Mini 3

case “iPad4,7”
return “iPad Mini 3 WiFi (model A1599)”
case “iPad4,8”
return “iPad Mini 3 WiFi + Cellular (model A1600)”
case “iPad4,9”
return “iPad Mini 3 WiFi + Cellular (model A1601)”

// iPad Mini 4

case “iPad5,1”
return “iPad Mini 4 WiFi (model A1538)”
case “iPad5,2”
return “iPad Mini 4 WiFi + Cellular (model A1550)”

//iPad AIR 2

case “iPad5,3”
return “iPad Air 2 WiFi (model A1566)”
case “iPad5,4”
return “iPad Air 2 WiFi + Cellular (model A1567)”

// iPad PRO 9.7"

case “iPad6,3”
return “iPad Pro 9.7"” WiFi (model A1673)"
case “iPad6,4”
return “iPad Pro 9.7"” WiFi + Cellular (model A1674)"
case “iPad6,4”
return “iPad Pro 9.7"” WiFi + Cellular (model A1675)"

//iPad PRO 12.9"

case “iPad6,7”
return “iPad Pro 12.9"” WiFi (model A1584)"
case “iPad6,8”
return “iPad Pro 12.9"” WiFi + Cellular (model A1652)"

//iPad (5th generation)

case “iPad6,11”
return “iPad 5 WiFi (model A1822)”
case “iPad6,12”
return “iPad 5 WiFi + Cellular (model A1823)”

//iPad PRO 12.9" (2nd Gen)

case “iPad7,1”
return “iPad Pro 12.9"” (2nd Gen) WiFi (model A1670)"
case “iPad7,2”
return “iPad Pro 12.9"” (2nd Gen) WiFi + Cellular (model A1671)"
case “iPad7,2”
return “iPad Pro 12.9"” (2nd Gen) WiFi + Cellular (model A1821)"

//iPad PRO 10.5"

case “iPad7,3”
return “iPad Pro 10.5"” WiFi (model A1701)"
case “iPad7,4”
return “iPad Pro 10.5"” WiFi + Cellular (model A1709)"

//iPod Touch

case “iPod1,1”
return “iPod Touch”
case “iPod2,1”
return “iPod Touch Second Generation”
case “iPod3,1”
return “iPod Touch Third Generation”
case “iPod4,1”
return “iPod Touch Fourth Generation”
case “iPod7,1”
return “iPod Touch 6th Generation”

else
return “unknow device”

end select

End Function

There seems to be a bug in iOS:

Quote:

Please take a look on “Lirium Info Lite”. It shows
CPU actual clock: 2.39 GHz
CPU maximum clock: 2.39 GHz

And some other information such as
CPU core base: ARMv8-4
CoProcessor: M11
CPU Name: Apple A11 Bionic

I don’t know how Lirium works, but I found an Xcode project explaining the use of other sysctl features. Looks like I could read the CPU speed (and a lot of other properties) now.

Better? (Demo is updated: https://drive.google.com/open?id=1tGvthbkoHqHhZaYMZklnMTGoZ0elbKD6)

A question about the device orientation.
I use “Device Orientation” and detecting “iPhone X” for a layout constraint. My controls are placed “13 pixel from parent.left” in portrait mode. In landscape mode I must change this value to “33 pixel from parent.left”. This works as long I have my iPhone in my hands. When I put it down on my desk, the orientation change to “face up” and the controls are place 13 pixel from parent.left. I can’t use “face up” for a constraint, while it will also detected in portrait mode. How can I resolve this problem?

Portrait mode, face up:

Portrait mode, landscape left:

I am not sure if this can be easily solved: Xojo iOS is missing the SafeLayoutGuide feature that helps with iPhoneX layouts. Possibly only with a lot of declares currently – or manual constraint handling during layout orientation changes