Resource Images

Ok, we all know about @2x for Retina, and @3x for iPhone6/7+
and I “assume” that Xojo supports the device qualifier for image filenames as well?

if so, does anyone have a clue what the device qualifier for an iPad PRO would be???

I have searched and searched, and its difficult to find documentation on the qualifiers I DO know, let alone for the PRO

In case you were wondering, the iPad pro is a 2x device.

I also searched for this and seems there isn’t any device qualifier for iPad pro.
This page from Apple docs was updated on March 21st, 2016, so it is up to date with the launch of iPad Pro.
https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/LoadingResources/Introduction/Introduction.html

if you are including a 2 732 x 2 048 image for the background of the iPad pro, one of the solutions would be to only have 1 file and downsize it for the other iPads.

Thank… I am aware it is a 2x device. but I have an app where I need to display a 9x9 grid of “icons” (internal resources not external)… it will work on all current “i” devices from 4s to iPadPro…
for best display on each device class I need a different image (I don’t want it to auto-scale and “blur” things)

The iPad (older) is also a 2x device, but is only 768 pixels (pixels not points) wide, making each cell no more than 85 pixels wide (in reality I will use 80px)… this provides a 24px margin which is visually acceptable. However on the iPad Pro (12.9") it is 1024 pixels wide and using the same 80px image leaves a huge 152px margin

Since all current devices are @2x (except for old iPad2 (1x), and iPhone6+ (3x) ) , I will be using the device modifier to select the proper icon for phone vs iPad,

  • iPhone4s, iPhone5s, iPhone6 : image~iphone@2x.png (32 pixel, ie. 64points)
  • iPhone6+ : image~iphone@3x.png (40 pixel, ie. 120 points)
  • iPad2 : image~ipad.png (80 pixel, 80 points)
  • iPad(retina) : image@2x.png (80 pixel, ie. 160 points)
  • iPadPro : I’d like to have (96 pixel, 192 points), but without a device modifier this needs a workaround

If your “icons” are just Rectangles to “dress up” the display you can consider using resizable images.

By the way, it seems naming convention is image@3x~iphone.png . The device identifier is at the end.

not sure what you mean?

the “icons” are each in a cell of a 9x9 grid … where the grid is fairly close to the width of the device … so it takes up a major fraction of the screen… since it is a 9x9 on all devices, I am wanting each device to select the best quality graphic to display… My only issue is for the Pro…

What I am considering is creating a function that returns the normal “base” name for all devices except the pro, where it will return a unique specific name instead, I haven’t tried it yet, but something like

function getImage(imageName:String) as string
IF <device is an ipadPro> THEN return imageName+"_PRO" // for iPad Pro only
return imageName // return base name and let iOS alter it as needed
end function

[sidenote] Not trying to make a sale with this post [/sidenote]

From my point of view, bigger screen doesn’t necessarily mean bigger icons. You could use the extra space to avoid the user from scrolling or display more information by keeping the icons the same size on all iPads.

Your 9x9 grid would become a 12x7 grid (with only 9 items on last row) by using iOS Flexgrid: http://www.jeremieleroy.com/products/flexgrid.php

Of course I don’t have your layout in front of my eyes and perhaps you absolutely need a 9x9 grid, and in that case iOS Flexgrid isn’t needed.

the 9x9 is critical… its a game… so it is not a matter of displaying dynamic information… changing the grid size changes the play dynamic… there is no scrolling … it is static (well as far as size, the icons will be “animated”)…

but after creating a dummy app to see the differences, I have opted to use 80x80 on ALL iPad devices (@2x so 160x160),
32x32 (@2x=64x64) on all iPhones, except the 6/7+ which will be 40x40 (@3x 120x120)

leaving me to create 4 sizes of each icon for best display quality

  • 64x64
  • 80x80
  • 120*120
  • 160*160

thanks

[quote=291458:@Dave S]iPhone4s, iPhone5s, iPhone6 : image~iphone@2x.png (32 pixel, ie. 64points)
iPhone6+ : image~iphone@3x.png (40 pixel, ie. 120 points)
iPad2 : image~ipad.png (80 pixel, 80 points)
iPad(retina) : image@2x.png (80 pixel, ie. 160 points)
iPadPro : I’d like to have (96 pixel, 192 points), but without a device modifier this needs a workaround[/quote]
Not to be nit-picky, but are you sure these are the right size?

I have the following dimension:

  • iPhone: @1x 60 pt / 60px, @2x 60 pt / 120px, @3x 60pt / 180px.
  • iPad: @1x 76pt / 76px, @2x 76pt / 152px, Pro 83.5pt / 176px.

I just generated yesterday the pictures for my latest project to fill the current Xojo icon requirements :

iPad 29x29 1x iPadPhonePod 58x58 29@2x iPhone 87x97 29@3x iPad 40x40 1x iPhonePadPod 80x80 40@2x iPhone 120x120 40@3x iPhone 120x120 60@2x iPhone 180x180 60@3x iPad 76x76 1x iPad 152x152 76@2x iPad 167x167 83.5@2x iPad 166x166 83@2x

I made sure 1x was at 72dpi, 2x at 144dpi, and 3x at 216 dpi.

I uploaded an App yesterday and Application Loader complained that I didn’t set the App Icon.

I then set all App Icons except for the 1x icons.
Application Loader didn’t complain. I think that there aren’t any 1x devices that support iOS 8 (minimal iOS version built in Xojo) so we can drop the 1x icons.

I am not talking about APP ICONS… I am talking about RESOURCE ICONS… ie. icons/graphics used internally by my application for buttons, game play, whatever… those have no predefined size and can be whatever the developer requires.

Ah, sorry for misunderstanding… That makes much more sense to the whole thing now!

From working with NSImage, perhaps you can wrap all the correctly sized images into a single TIFF file. This way in theory it should pick the right image at the right time.