Multi-screen background image sizes - background-image

I'm working on an image heavy web site that's essentially got three designs for multiple screens: smart phone, tablet and desktop.
The main feature of this site is background/fullscreen images. Has anyone got any recommendations regarding the suggested sizes that these background images should be?
They'll all be progressive jpegs as that seems the most sensible path for resizing and optimisation.
Handling the different images sizes will be another test, but essentially it seems sensible to handle it on the client side since this design allows for a polite loader.

I would recommend formatting for a non-retina phone such as the iPhone 3Gs at 480x320, a retina iPhone 5 at 1136x640, a retina iPad at 2048x1536, a retina mac book pro at 2880x1800. Then setup your media queries to pick the best of those sizes for non-retina ipad, standard desktop (your default image), and the Google Nexus 10 which has a display near the MBP retina (2560x1600).
For background images you will want to use media queries. For fullscreen images what I've done is implement a JavaScript module that allows you to imitate the picture element proposed by the Responsive Images Community Group. Or if you prefer you could go the "srcset" route.

Related

Graphics on iPhone Application

I have a graphic designer who is doing some graphics for my iPhone app. Most recently she made me a background pattern and posed me two questions that I'm unsure of how to answer:
1) What should the size of the background pattern be?
-For this I know that when I'm programming my app,the screen is in terms of 320 by 480 (when in portrait mode), however is this the appropriate unit that I should give her (I'm only worried about iPhone 4 and below for now)? Like for instance, I know there is a retina display and I've seen the phone resolution of my phone also be listed as 640 x 960. I'm just confused of what the best thing to tell her regarding this is, she does not have any iPhone experience and will be using the traditional graphic programs like illustrator, photo shop etc to do the graphic design.
2) What file type should it be?
-I've read the iPhone supports mostly all of the most popular graphic file types, but is there anyone particular that would work best on an iPhone app?
The standard for iPhone resource images is PNG. If you want to target iPhone 4+ with retina display, have the designer provide two versions of the PNG: A standard version and a double-sized version which should have #2x appended after the filename, but before the extension.
So
image.png
for regular resolution and
image#2x.png
for retina resolution. iOS will automatically pick the best one to use based on the screen available.

What size images should I use in order to support the two iphone resolutions?

I have a few questions about screen resolution, that I'm not clear on. These questions assume they my app will be running on iOS 4.0 and up, and on either iPhone 3GS or iPhone 4.
Should the size of the splash image (default.png) be (960x640) or (480x320)?
Should the size of the app icon (Icon.png) be (57x57) or (114x114)?
What about other graphics that I may use in my app, such a graphic that represents a button? Should I always create these images for the higher resolution, and have the app scale them down? In other words, if I want a button image to be displayed on the 3GS that is 200x40 - should I create the image at 400x80, so that iPhone 4 can take advantage of it?
Thanks!
A good guide to this can be found here: http://mobile.tutsplus.com/tutorials/iphone/preparing-your-iphone-app-for-higher-resolutions/
In general you just create 2 sets of images. Your original and then a new one twice as big with #2x in the name. So for image.png at size 32x32 you would have one that is twice the resolution called image#2x.png at size 64x64. In your app just always use the image.png in Interface Builder and when loading in code.
There is no need to detect the device. These images will automatically be picked up by the OS and subbed in as necessary.
Provide both sizes (960x640 & 480x320) for the splash image using the #2x method described above
Provide both icons (57x57 & 114x114) using the #2x method
For our apps we use a combination of the #2x images and just Scaling the large images. (More information on this can be found in the above article) We use the #2x images for bar buttons, icons, etc. But for UIImageViews we often just use the Scaling. There can be a performance hit for doing this, but for most apps I'd say this is negligible. The savings in file size sometimes make scaling the only option.
Related Questions:
Retina/non-retina images in UIImageView
Making an app Retina Display friendly
You need to provide both if you want them to look nice. For example,
Default.png -> (480x320)
Amd
Default#2x.png -> (960x640)

Easy ways to crop out the status bar when taking iOS Screenshots?

Apple recommends cropping out the status bar from screenshots submitted to the app store. Doing this manually in Preview is a very tedious and error-prone process.
Do any developers have any best-practices recommendations or automated techniques for speeding up this process? The goal would be to take as input iPad and/or iPhone screenshots, and output them with the toolbar cropped off. We need to support both portrait and landscape orientation, and Retina-resolution iPhone screens.
I've found a few utilities online that purport to help with this, but the ones I have found seem to fail on Retina-display resolution screens. And another that works via the iOS Simulator requires a 1920x1080 resolution monitor to process iPad screenshots - making it useless for non-17" laptop-based developers.
Any other recommendations for taking good screenshots for the AppStore? I know (based on my searching) that there are a lot of other developers who would be interested in a quicker workflow to handle this.
Bonus points for being able to bulk-process an entire directory.
I developed a free App, Status Barred which is on the Mac App Store. It crops your iOS screenshots from iPhone, iPad, portrait, landscape, normal & retina display.
I used the ImageMagick command line tools to batch crop all the Screenshot png files, but haven't figured out how to not use auto assigned output filenames.
convert Screenshot*.png -crop 640x920+0+40 920Screenshot.png
Here are two ways, assuming you mean status bar and not toolbar (which you probably shouldn't crop out of the screenshots).
If you have photoshop, just change the canvas size by subtracting 20 (low-res) or 40 (retina) and anchoring the bottom of the image. This works perfectly.
It's also easy in iPhoto using the Edit/Crop feature. Set the dimensions to the correct size (Portrait: 320x460 or 640x920 and Landscape: 480x300 or 960x600) and move the crop screen to the bottom of the image. This does it perfectly as well.
After much searching, the easiest tool I have found is the iOS Simulator Cropper. It does a great job of handling different resolutions and orientations, and it is painless to use. No need to muck around with Photoshop or other slow / cumbersome tools.
Link: http://www.curioustimes.de/iphonesimulatorcropper/index.html
The developer reports that they have enhanced the iOS Simulator Cropper to bulk process screenshots taken on device as well as via the Simulator. I haven't tried this yet since the update, but if it works well this will be the perfect solution.
I have also found a very useful tool in the Mac App store called "Status Barred" that also very simply crops the status bar out of any images handed to it.
How about just using Preview? Command+A to select all, drag the selection down to 920px then Tools => Crop.

Porting my Application from iPhone to iPad

I know there are multiple questions about this but I wish for this one to help my specifically with my application. Here is an overview on my application:
I have a scrollview that holds a 7-page brochure. On one of the pages, there is an animation (a simple, cycling series of images). The images are currently 500x750 but the scrollview condenses them to the iPhone dimensions (to allow for zooming).
What I would like to know, is how you would see this on an iPad. I know iPads can run iPhone apps (but they are pinned to the upper corner). What considerations would I have to take into account to allow this to be displayed very well on an iPad?
For you app to display well you'll need to port it to the ipad.
You'll need to do versions of your views for the ipad screen size, or make sure that your existing views expand properly and look good on the ipad screen. I'd imagine you'd want to display your 500x750 images at their native size, and possibly add some ui furniture to fill up some of the rest of the screen space.
This question has reasonable answers for explaining how to do the port:
How to port existing iPhone application to iPad
If you don't port your app to the ipad, it will run exactly how it will on the iphone, either in a small box in the centre of the screen or magnified 2 times.

How will I have to update how I program for iPhones now with iOS4?

For example, preparing a launch screen of 320 x 480 would have to be changed....
How is that going to work for us? Are programmers always going to have to be submitting a high-res that will be scaled down for old devices such as the iphone 3g?
The size of the screen is basically 4 times on a pixel by pixel basis. So each pixel of your image for example gets boosted to 4.
What this means for you? You don't have to change your App, your app will scale to the hi res screen for you, same with your UI and images within your UI. Of course if you want to take advantage of the better screen quality you will have to submit hi res images.
I haven't looked at going the other way but I believe it would be a similar case.
One exception to this is text. It automatically scales to the higher res for you for free. So text will look super sharp. One problem with this is if your loading image has text based on the original load screen that wouldn't look the same as when the high res text loads.
Strictly speaking, anyone who's seen the documentation on how they're handling this is still under non-disclosure until Monday, when the new iOS ships.
Suffice to say, it's clever. You'll be able to put both high and low-rez versions of ALL your images into your app, and then load them into your app in a way that's totally transparent from the code side. The device will make its own call about which version of the image is appropriate for the kind of screen it's got.
Now that the WWDC 2010 videos are available for free to any registered iPhone developer (or ADC member), I recommend watching Session 134: Optimize your iPhone App for the Retina Display for a full description of what you need to do to support the iPhone 4's new display.