I’ve never used MacOS or iOS before, I’m an Android and Windows guy. I’m thinking of buyind an iOS device so that I can start testing my apps on a different ecosystem. I (think I) have the MacOS part needed for the deployment covered, so I need an iOS device. I’m looking at an iPad Air that I can use for my everyday “tablet” needs, I was wondering if that would suffice for my testing purposes. I mean, is there a chance that an app I make works fine on an iPad Air and has bugs on an iPhone? As far as I have seen iPadOS is the same as iOS (with some extra features and optimizations) but I could really use some confirmation from someone using both devices. I’m wondering if there would be some code modifications needed for an app tested on an iPad to work properly on an iPhone or vice versa.
If an app runs on an iPad air, it will also run on an iPhone.
Things to consider:
Notch support: iPhone X and newer have a notch, which you need to support, so your UI does not break
Rounded Corners: Newer iPads have rounded courners for their displays, so also keep that in mind
FPS: There are iPads supporting 120Hz, but probably you want to anchor the framerate to 60 (Application.targetFrameRate=60;)
Performance: Not sure about which iPad Air version you are talking about. If you have a newer iPad, you might have to debug for older ones as well. iPhones that are in the same release time or newer than your iPad will most certainly run your app smoother (unless there is a bug)
UI Scaling: Well, should be obvious. Since the aspect ratio is different, and UI is used differently on an iPad you will want to tweak you UI for iPhones as well. Should be doable inside the editor.
I’m looking at the new iPad Air 4 (2020). Is there any way to know which generations of iPads/iPhones I should feel safe about? Does it have to do with changes among iOS versions? Or changes in hardware?
EDIT. Are you talking about performance? Meaning that I should make sure it runs smoothly on older generation iOS devices? Or is there a chance that I would not be running at all?
Yes, I was talking mostly about performance. As for not running at all: This might happen, when you hit their memory limit. This probably won’t happen unless you want to target very old devices which don’t support astc compression (https://stackoverflow.com/questions/41916922/which-ios-devices-dont-support-astc-texture-compression) and are using ASTC for your textures.
But yeah, as for performance there is a huge gap between iPhone 12 Pro and e.g. an iPad mini 4, so you might want to watch out for weaker tablets.
When developing for iOS, you have to choose a minimum iOS version to target and from that number you get a list of devices. What I do is get the lowest power device on that list (usually the oldest). This will serve as your lowest common denominator. Once your app/game runs well on that device, you can pretty much count on it running well on all other devices too. Sometimes I’ll get another device that may be unique, like one with a notch.
My target right now is iOS 13 so I have an iPhone SE 1, an iPad mini 4, and an iPhone XR (for notch and gesture testing).
The SE 1 is the same as an iPhone 6S but with a much smaller screen. Good for testing “fat fingers” and readability. The mini 4 has the slowest CPU and a large retina screen, so it’s perfect for testing fill rates.
I’ve attached a pdf table for reference of all devices that support iOS 13.
UI Scaling: Well, should be obvious. Since the aspect ratio is different, and UI is used differently on an iPad you will want to tweak you UI for iPhones as well. Should be doable inside the editor."
By the way, how do you achieve different screens for iPhone and iPad (or Mac) ?
On my game, there is no difference, but just curious
I think building a completly different ui and maintaining the UIs is an overkill in most of the cases. It maybe necessary when having a very special UI and supporting portrait phones/tablets and AppleTV/MacOs. But even then, it might be better to keep just one ui that adapts accordingly.
I think a lot can be achieved by setting the scaling correct for the canvas (see https://discussions.unity.com/t/683535 ).
Another good idea is to think about the scale of the font. Oftentimes, it just looks too big when just scaling it plain from an iPhone to an iPad.
Also keep in mind, that the drag threshold should adapt to the DPI (Handy script over here: https://discussions.unity.com/t/548943/39 )
In web development terms: Don’t use a normal and a mobile css, but make one css file that is responsive in its design.