Optimization of iOS6+ images game - ios

I have a game on the Apple Store, we make it to iPhone with retina & non-retina images. We are exporting to iPad and making it universal app.
But the main problem it's that the app its 45MB without iPad with iPad retina & non-retina, I think will get more than 100MB
I was thinking removing the normal images and leave the #2x as the normal images. And for preventing 3GS devices I upgrade it to iOS7.
What do you think? or how do you solve this issues in your games?
Note: we have the app in spanish & english, and because we render some text with shadows and stuff, we add it as images, so in some cases we have 8 assets per image :S
Thanks!

Related

Device specific Graphics for Universal iOS app

I've configured my app as Universal in Target/General/DeploymentInfo
Is it ok to make device specific assets in the xcassets file for iPhone and iPad, even though the app as a whole is Universal? It seems to work, but I'm worried if there is some catch.
Background:
I plan to add 2X and 3X versions of some assets in the 2x and 3x boxes in the iPhone section, and 2X and 4X versions in the 1x and 2x boxes in the iPad part. I use a capital X to describe the scale of my assets.
Note, that the 2X asset will be used twice. Both in iPhone and iPad. Maybe there's a way around that?
Nothing wrong with this at all.
Where I work, we've done this for our games: different asset bundles are downloaded depending on the device the game is running on.
This allows us to adjust for older hardware, like iPad 2.

Non retina images – must I add them to xcode?

Because I made app (iphone) myself, with 200 images, I want not using non retina images.
It may be for me big problem to resize images for non retina display.
I don't have non retina display iphone, to test it.
Must I add non retina images to xcode, or not?
If I don’t add them, must I add “#2x” to all images for retina?
I tried my best to find answer for my question but there was no clear answer.
Thx for answers.
I thing it will be better make non retina display images, than buy non retina device for testing how it looks.
I have another question:
Button background needs #2x images and non retina display background images?
You must add non-retina images if the platform your targeting includes non retina devices (e.g. iOS 6 and earlier or iOS 7 iPad). If you do not, non-retina devices may not render your app correctly.
If you are not targeting a platform that supports non-retina devices (Eg iOS 7 iPhone), you may omit non-retina images. Your retina images will still need the "#2x" suffix in the file name for the system to find them.
I read somewhere that if you do not include non-retina images, the iOS will use the #2x images, scale them on the fly to non-retina sizes, but that may affect performance. Make sure you test on at least one non-retina Device to make sure it works.
This should not be too much of an issue. Test your app on the simulator using non retina and make sure your images are showing up properly. Your images should scale and won't cause a problem. It would be better if you could have both retina and non retina images but not a game beaker.

ios, publish different build per device

Google Play allows different apks per screen density, does Apple Store support this?
I'm sure the info is somewhere, but all I find when I search are people asking how to develop one app to support all devices.
I know how to do that already, but this specific (top secret) project will be 1000 times better if I can release one super optimized version for each screen resolution... but I'll settle for density or device (generation and type) if needed.
I don't have access to XCode (no Mac) to check options currently.
Bonus points: If possible, is Apple going to frown on this and possibly reject my app because of this?
This can't be done. If your app supports the iPhone then it must support both 4" and 3.5" inch iPhones. If it supports only iOS 7 then you can avoid non-retina devices because only retina devices can run iOS 7.
But if you support the iPad you must support both retina and non-retina.
You can have one app (Universal) that does it all or you can have separate iPhone and separate iPad apps. But the iPhone app must support both sizes and possibly both types (retina and non-retina) of screens. And the iPad app must support both types of screens.
Apple won't accept apps that don't support the differences.
It should also be pointed out that in the Interface Builder part of Xcode, you setup the UI with points and not pixels. So, for an iPad, when you place a button, you do not have to specify retina or not. On a Retina screen a point is 2x2 pixels and on a non-retina screen a point is 1x1 pixels. Also, with image assets, you have a single image asset you ask for in code, but you add multiple copies of the image in the image assets. Like the retina and non-retina copies. If you have an image named cat.png, for retina this would be cat#2x.png and for non-retina it would be cat.png. But, in code or the inspector you would reference it with imageNamed:#"cat" and Objective-C is designed to handle the rest.

Necessary to have Retina and non-Retina for all images in iOS App?

Currently , all the UIImageViews in my app are set to scaleToFill mode, using only one retina image without setting any non-retina image. I suppose that on non-retina display, the extra resolution will be lost by itself.
Question: Is this approach acceptable? And will Apple disapprove my app due to the missing non-retina images for UIImageView?
Apple won't reject your app. However it's recommended to have non-retina versions if you're targeting Universal devices, since there are still lot of non-retina iPad out there, and scaling is slower and sometimes produces ugly images.
If you're targeting iPhone only, (IMO) there's no need for non-retina images.

What resolution do I need to make images for universal iOS apps in?

I am making a Universal app on xCode 4.4, using Storyboards. I am making the images for this app in Photoshop. I want to make a background image that fills the whole screen.
What I want to know is:
What resolution do I make the images?
Do I need 1 for iPad and 1 for iPhone, or more?
How do you make it work with the iPhone 5 as well?
You might need up to 10 background images:
There's the retina iPad: 2048x1536, non retina iPad and iPad Mini: 1024x768, retina iPhone: 640x960, non-retina iPhone: 320x480 and the new iPhone 5 (retina only): 640x1136.
That's 5. If you want to support both landscape and portrait, then you have 10 combinations.
PS: If you decide to keep the status bar visible (as most apps do), then reduce the height with 20 pixels (40 pixels for retina displays). That's how much room is needed for the status bar.
You should consider the approach of using only one image. The user experience of most apps is poor if you dont respect the available canvas size.
And you might want to focus special areas of your artwork to the user.
I would propose you to implement different scenarios at least for iPad and iPhone.
The resolution itself is described within the specs. So use one for iPhone and one for iPad, the different logos are posted in two resolution, with a postfix #2x or for the new Appstore dimensions with another prefix, but all these details are within the specs.
My experience is that in most cases you have to organise the user interface separately in order to provide a good user experience.

Resources