Is it necessary to create a retina version of an app? - ios

Im creating an iOS game and I thought I was done until I test ran it on the iPad Retina simulator, and its extremely laggy. Is that a simulator glitch, or will it actually not work on the Retina iPad? I tried looking up if it was necessary and couldn't find an exact answer.

You shouldn't be using the simulator for making any kind of judgment around performance. It's a simulator, not an actual device. It doesn't represent the actual conditions you'll be experiencing in hardware, and there are vast differences in terms of graphics and the rendering pipeline. If you're not testing your app on a hardware device you're doing a disservice to your potential users.
Do bear in mind the vast majority of devices being sold right now are retina. Many graphically rich games are able to support the hardware, so I suspect what you're seeing is either a) due to the simulator, or b) can be fixed with some optimisation.

Yes it is (kind of). The appstore has regulations on retina apps. I think that they only accept retina apps and a lot of people use retina devices so it might be a good idea to make it retina.

No it is not necessary. It may look pixelate on a retina device but it is not necessary. However, many people use retina devices (just consider this). Retina is just for looks most of the time. Good luck on your game!
Edit:
I looked into the developer and appstore requirements. Apple needs you to have a retina version or you might be looking at a turned down app. Anyways, have fun with this and good luck!

Designing for Retina display
Building apps for Retina display involves creating two sets of images — one at 163ppi and another at 326ppi. After slugging our way through an app build or two, we feel confident that we have a decent workflow for attacking future Retina display app designs. Hopefully this information is of use to other designers
For More Information Please Check HERE1, HERE2

Yes you need your iOS game to run on all the devices glitch/lag free, when you go for publishing the application on the store it'll be turned down if it is not working on the retina version.
Possibly you are not using the images for retina display which are double the resolution
make sure resolution independence is turned on
design your artwork 2x as large as the actor (so a 100px actor should have artwork that is 200px)
ENSURE that all artwork is divisible by 4. (200/2 is 100, which is the size of the actor. 100/2 is 50 which is the pixel it will center on when placed in the game, you can't rest on .5 a pixel, it can turn out blurry)
Drag artwork into GS and program as normal.
I hope this solves your problem

Related

How To Prepare Image Assets in iOS supporting both iPads and iPhones?

I usually do not care much about my assets even if I support the iPads in my project. As long as the imageView for the background of the app is set to Aspect Fill.
Also, here are some links I've found, but not so related to this question.
OLD Question and old answers: How to support both iPad and iPhone retina graphics in universal apps
Cool question and cool answers, however, question and answers focus merely in iPhones:
iOS: Preparing background images for applications
Going back to the question, if I have an Adobe XD file or Sketch, or Photoshop or whatever file that lets me export an image/asset, in what resolution should I start? Do I start with the largest possible size (for iPad Pro) which is 1024x1366 then let the software cut the sizes into #1x and #2x?
If I'm only to support the iPhones, then this would be way lots easier. Thank you!
If your source is vector based, then (obviously?) it's a non-issue...
With bitmap / raster images, you almost always get better results by scaling down.
Depending on the image itself (a photo tends to scale much better than a line-drawing), you may not be happy with simple "auto-gen" features... in which case, you'd need to manually "scale and tweak".
(Hope that helps).

Xcode iOS Simulator Questions

I have two questions about the iOS Simulator in Xcode for my Unity game:
I am using latest version of all the software involved.
1) Why is it so slow? (I have tried the Cmd+T solution and it does
nothing. Note: The game runs smooth even on a real iPhone 4)
2) Why is the size of the iPad simulator screen bigger than my laptop screen? (I know you can
scale it, but just curious why Apple always tries to make our life
difficult)
When you run game on iOS simulator then your game image runs not completely running on your mobile hardware actually runs in compression mode so seems to be slow.
Having high resolutions Apple deceives have bigger number of pixels on their screen, so its not Screen size but it Screen pixels what we need to concern. And it is for creating more smooth effects on visuals for animation, it is to provide user better quality graphics, not to make your life difficult

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.

If an app works on the iPad 2 is it necessary to test it on the iPad mini?

It may seem like you would always want to test your app on all devices that Apple offers: the iPad 2, iPad mini, and iPad 4. But its expensive or difficult to obtain all three devices and keep them around just for testing.
The iPad 2 and mini both have 512MB DDR2, use the 1GHz dual core A9, a Dual-core PowerVR SGX543MP2 and have the same screen resolution. It seems like its the same hardware all together.
Is there likely to be any difference between these two devices that could cause a problem with an app, other than the obvious physically smaller screen size?
Honestly it depends on what the app is. Like you said, screen size is different, but that may have a small effect on the usability of the app.
Other than that, I don't know. Sorry.

Do I really need lower-resolution images for older iOS devices?

I am developing an iphone application and i am using a background picture for my app. I know that before iphone 4 , the resolution of the screen was 480x320 and after 960x640. I read that i should use 2 images like : MyImage.png and MyImage#2x.png with the 2 different resolutions and the app will know which one to choose according to the phone. My question is very simple. If i just use the 960x480 , whats the difference? I am developing on an iphone 3gs and i am using this resolution and everything works perfect. So why have a small resolution for these phones?
The difference, in my opinion, is the following: the phone is going to resize the doubled-resolution to half the size, and this will lead to (1) the final image is not as smooth as if you would have exported it from a image application like Illustrator or Photoshop - at least from my own experience, when I export both resolutions, in non retina devices, the images don't look as good if I had exported the normal resolution. Also (2) the device will waste time/performance to make this conversion, although I don't know how much it is significant. And (3) finally, you may overload memory with no need, considering that the doubled sized images are bigger files, and you could use smaller files instead.
If you don't mind about this issues, you can go ahead. Try yourself.
If nothing else, the high-resolution images will tax the memory much more. One full-screen image at 320✕480 is around 600K in memory, whereas the 640✕960 is almost 2.5M, four times as much. On the older devices the memory is much more scarce than on the new ones and you might run into problems later in the development cycle, when there are more resources in play.
Even if you are able to test the app on all older supported devices and you can guarantee that there are no immediate performance problems or visual glitches, the app will take more memory, forcing the OS to kill other apps more frequently (= worse overall user experience).
if you use one version of image, (960x640) , there will be a memory overhead when the app run on non-retina. you dont need to display the high res in non-retina, only in retina display, making two versions of images .png and #2x.png will tell ios which image version it should load, depends on what device is currently in use.

Resources