I have made an app that works both on iPhone 4 and iPhone 3, but I don't have an iPhone 3 to test on.
Is there any way to start my app in iPhone 3 mode (e.g. Info.plist setting)?
If it is just a particular view (and not an image file) that you want to test on development code, draw to a view scaled down to a half-sized (in points) view on an iPhone 4, and then display and (re)scale that half-sized view by 2X to fill the display, with antialiasing turned off (kCGInterpolationNone).
There appears to be no automatic flag to do this.
In short, no. Not on an iPhone 4.
Just remove all "#2x" retina files and you should see the old graphics. Another way would be the iPhone Simulator which runs by default in the old 320x480 pixel mode.
Related
My app scales the same on iPhone 6 and 6 plus as on the 5. I'm trying to get the app to use the extra screen space on the larger phone. I've read about using the appropriate size launch images, but it only works in the simulator, not on the device. I added a 750x1334 launch image for the iPhone 6, and the various sizes for the other devices. When I launch in the simulator, the scaling takes place as expected. When I launch on the device, the screen scales to the iPhone 4s scale instead.
I tried starting over with the launch images, and adding one at a time. Whenever I add the 750x1334 for the Retina HD 4.7, the app on the phone scales to iPhone 4 size. I tried deleting the app and reinstalling but the same thing happens. Also, I notice now that when I put in the Retina HD 4.7 image, it also causes the same thing to happen on my iPhone 5, even though there is an appropriate launch image for that size device.
Any help would be greatly appreciated.
EDITED TO ADD: My wife's iPhone 6 Plus just came in and it does not exhibit the above behavior (but remains a problem with iPhone 6 and 5).
I was able to achieve the desired result through doing the following:
1) leave in place my old Launch Images Source configuration set that covered iPhone 4 and 5. This takes care of iOS 7 devices.
2) create and designate a Launch Screen File in XIB. This takes care of all devices on iOS 8.
3) On iPhone 6, under Settings --> Display and Brightness --> Display Zoom, choose Standard instead of Zoomed. Users who have Zoomed will see the screen scaled to the same as that of iPhone 5.
I have an application in iphone market which works for iPhone 4s and lower version. So now iPhone 5 has been launched which bigger size screen, my question is what all changes i have to do in my application so that it will be compatible with iPhone 5 also.
1) Do i have to rebuild my app for iPhone 5?
2) Do i have to make changes only in UI ?
3) Will the iPhone 5 will its make it compatible?
Your valuable replies will help me a lot. Thanks in advance.
Here is my answers,
1) Do i have to rebuild my app for iPhone 5?
If you want to utilize the complete screen space, you can add Default-568h#2x.png and rebuild the app and release it.
2) Do i have to make changes only in UI ?
You can utilize the complete screen space for iphone 5. You can code for screen modifications in case of other iPhones.
3) Will the iPhone 5 will its make it compatible?
Yes. It will make it automatically compatible. It will add a black strip on top and bottom to compensate for the extra space in the screen unless you add Default-568h#2x.png.
If your app uses the standard UIKit provided by Apple, you only need to add a 4 inch launch image to your app, and it will automatically resized itself. But if your app using custom controls or graphics-heavy like in games, you might want to adjust the images and take advantage of the larger screen.
You also have to make sure the methods you used do not deprecated on iOS6 to prevent the app from crashing. Some references if you need further reading.
To make older app compatible with iPhone 5 You need to look for Following things.
Latest Xcode version 4.5.
Open your project and select Upgrade settings for new version.
Add Default-568h#2x.png for new resolution .
For UI you have to change your xib's object autoresizing property.When you select View Go to
inspector and select size property It will show you None, Full Screen, Retina 4 options . Set autoresize property for all your Buttons , labels and check xib for retina 4 and None both.It is same like you set it for Landscape and portrait .
5.Some other changed will be in code because some method has been depreciated for ios 6.0.
6. After doing all this .You can run it on iphone 5 simulator for testing.
I have an app that was using GLKMatrix3 and its supporting functions. I found that the GLKMatrix3Multiply function would always crash on iPhone 5 hardware. Easy to workaround using GLKMatrix4 instead, but the point is that I would never have found the problem without actually trying my app on iPhone 5 hardware.
I was told to file a bug for the GLKMatrix3 problem, so maybe this will be fixed. But the code runs just fine in the iOS 6 simulator.
I learned from this that, whether or not you need to rebuild your app for iPhone 5, you do need to at least run your app on a device before advertising support for that device.
I have a iPad app which is NOT modified for the new iPad with retina display. But, to my surprise(pleasant) the app is working great without any issues in the retina display iPad. The graphics are just the same. I dont even see any pixelation issues. Can some one explain me the reason behind this? Did apple do something from their end in order to get the non retina apps to work the same way in retina display iPad?
Text and framework images are in high resolution, without the explicit need of the application to do anything.
What does look different are the images you provide with your app, so if your app has a custom UI that is not retina ready, it will look bad.
The same applies to the retina iPhone. Text is displayed in a double density font, and any embedded images are also displayed x2. In most cases the only change that you make for retina displays is to add double density images, but that is optional.
Edit: This also works with iPhone apps running on the iPad, with one massive gotcha. If an iPhone only app runs on the iPad, it is displayed double density, in portrait mode. But the only way that a developer can actually get his app onto an iPad is to mark it as universal, which means that it loses this support.
I built and ran an iOS 4.3 app in Simulator. It initially brings up an iPhone 4 shell. Although all real iPhone 4s have retina display, this simulated iPhone 4 only has a resolution of 320x480.
I look in Hardware > Device. There's a checkmark next to the normal iPhone. So I'm using an iPhone 4 case but displaying normal iPhone resolution? I'm already confused!
iPad
✔ iPhone
iPhone (Retina)
I then switch over to iPhone (Retina). Strangely, it opens iPad with the same 320x480 resolution. Both the shell and the resolution are wrong here!
How am I supposed to turn Retina on and off and show it in the right shell?
iPhone (Retina) is the correct device to be choosing, but I'm not sure why Apple decided to use the iPad shell for that one. To enter 640x960 mode, go to Window > Scale and set it to 100%.
The iOS Simulator does indeed scale. I have no real reason to present on why it would choose the iPad shell, but the purpose of the scaling is to make sure it fits on your screen and stays (relatively) close to handset sizes. Be sure to check Window -> Scale and set it to whatever you find appropriate.
Graphics development for iPhone4 and old iPhones was changed in several ways:
The concept of point was introduced
to replace pixel.
Methods of UIImage will load high
resolution resource files with #2x
in the file name.
Scale factor was added to UIScreen,
UIView, UIImage, and CALayer
classes.
So if we handle CGImage carefully, it's not hard to support the high resolution Retina display of iPhone4.
I have several questions about non-native iPad app in iPad 2x mode:
Could all the changes from old
iPhone to iPhone4 (#2x resources
auto loading, point concept, scale
factor) be applied to iPad 2x mode.
The scale of app on iPad can be
changed. How can I handle it?
With The new iPad sporting Retina Display you will need another set of images for some items such launcher icon, launch images (splash screen).
For example:
The launcher icon for Retina Display on iPhone/iPod Touch is 114 x 114 but on The new iPad the same icon for Retina Display is 144 x 144.
Other example:
On an Universal App, for the launch images (splash screen) you'll need an image set for phones/music players:
Default.png (For old devices)
Default#2x.png (For phones/music player with retina display)
Another image set for Tablets:
Default-Portrait~ipad.png (For original iPad and iPad 2)
Default-Portrait#2x~ipad.png (For the new iPad with retina display)
Default-Landscape~ipad.png
Default-Landscape#2x~ipad.png
The "#2x~ipad" will work on the new iPad in the same way "#2x" worked for the phones and ipods, but will be relative to the old iPad image set.
Unfortunately, all of those content scale functions were added in 4.0, so I don't think there's any way to use the iOS4 stuff that you're asking for.
The iPad 2x mode is just a way to run iPhone-only apps on the iPad's larger screen. If you want to take advantage of iPad's larger screen, all you have to do is create a universal binary (i.e. one that contains views for both iPhone and iPad).
There is no way to get the iPad 2x mode to display your iPhone retina level content automatically—Apple do not support this... presumably as they want people to put effort into developing iPad-specific interfaces for their apps.