Can the iPad3 emulate the iPad2 for app testing? - ipad

I have to develop an iPad app and I don't actually own an iPad, so I'm buying one now, ideally the iPad3 since it's the latest and greatest. But probably many of the potential users of the app will be using their old iPad2 for a while. And since the iPad3 is so much better than the iPad2 (double the resolution, for one thing), I'm concerned that if I test on the iPad3, I won't get any sense of what the app will be like on the iPad2.
So the question is: is it possible to do things like set the resolution to non-retina display settings and, in general, to make the iPad3 behave like the iPad2 for app testing purposes?

Except of the resolution I don't see major difference between the iPad 2 and 3.
And the simulator can cover the resolution differences . As for the processor and speed etc' unless your app is a "memory monster" I don't see a big problem.
BTW you can always use services like Test Flight to get to users with other devices and run a beta.

It is not possible to lower the resolution of your iPad 3 to that of an iPad 2 however performance wise it should work about the same or better on an iPad 2 in most cases since the extra iPad 3 horsepower is spent on the extra pixels.
Also I wouldn't worry about it too much. The iPad 3 has already sold more units than the iPad 2 in the short duration its been on the market. I think with a physical iPad 3 and the iOS simulator you should be able to reasonably ensure your app will be fine.

It would be nice if everything was the same between them, but we definitely have issues with our web application between ipad2 and ipad3. We had one work around that we had put in to get the ipad2 to work that later caused problems with the ipad3 came out. Hopefully, things are better with app development rather than web applications.

Related

React Native, Performance issue - iPhone 7 plus and iPhone 8 plus

I am facing a performance issue in the app that I am working on. Would appreciate any help or suggestion.
The issue is only noticed in iPhone 7&8 plus models. Seem to work as expected(without noticeable lag) in other iPhone models and Android.
The app has a Tab Navigator as main launching screen, the third tab, sensors, renders a section list and also does little heavy lifting, in the sense, formatting and rendering the row.
Yet I assume it is not much of work, as it seem to work fine in almost all devices except two models - iPhone7+ and iPhone8+
In those two devices alone, what I understand is the JSThread is getting too busy that the UI is frozen! The List scroll works just fine(Main thread free), but none of the touchable is responding.(until after JSThread is free - really long delay)
When the app works just fine in all other devices, why could this happen in those models alone? Have anyone faced anything similar in these models?
Attaching the behaviour while running the app in iPhone 5s and iPhone 7 plus.
While running in iPhone 5s
While running in iPhone 7plus
Thanks!!

How is one to thoroughly test iOS apps with all the various devices of different screen size?

I started out iOS development 4 years ago when there was only two screen sizes to worry about. The 3.5" (non-retina) iPhone and the 9.7" iPad. One of the reasons that I chose iOS development was because unlike Android OS development at the time, there was only two screen sizes to design for making it simple to ensure that all my apps would look good on all devices.
I am the kind of person that likes to make sure everything is perfect before releasing my application. So, I believe that if you've only tested your app out on the simulator (of which there was only like 4 options, two versions iOS for the iPad and 2 for the iPhone) then your app is not ready for the big time because code runs differently on the actual device itself. So, four years ago, I got an iPad and began to test my applications on that as well.
However, this is where the issue (and the question) really comes in. Now theres 2 or three different size iPhones and like 5 different size iPads. I can't very well buy one of each (nor do I want to) so what do you guys recommend would be the best way to test my apps on-device for all these various screen sizes?
Unfortunately, larger companies and studios have a number of each device. That's all there is to it. For most developers, it comes down to you buy each new iPhone and iPad that comes out.
In that way you have at least one of everything in stock, over time.
There's really no alternative to this. App development is expensive.
It's worth noting that if your studio develops for Android, the situation is worse! Although the following article is a little old, it's still the case
http://techcrunch.com/2012/05/11/this-is-what-developing-for-android-looks-like/
No difference in the iOS universe.
"I can't very well buy one of each..." Unfortunately you have to. It's the cost of doing this business.
"I can't very well buy one of each (nor do I want to)" Unfortunately you have to. It's the cost of doing this business.
It's perhaps worth noting that: the cost of being a developer is "A few thousand a year" for devices and a few thousand a year for hardware (Macs, etc) and the inevitable licenses (Unity3D, etc). It's perhaps worth noting that: relative to almost any other business, this is extremely low.
Note that a couple of people have jokingly replied, "just use the simulator and hope!" Obviously that's a non-starter.
Buy used devices on eBay. Buy devices with small damages. iPhone 6 with cracked screen is quite affordable on eBay :-) For iPads, don't worry about the mini, it is just a shrunk version of the larger one and behaves identically (alternatively, buy the iPad Mini and don't worry about the larger one, saving money).
Use layout constraints, and use the simulator. If you really don't want to release unless it is tested on a real device, just don't support the bigger sizes. Your code can easily treat a 6 or 6+ as a "large iPhone 5".
There is a better way! I created a small open source project called Screen Sizes Simulator. It uses a resizable embedded view which allows you to change the size of your app during runtime. You can test all iPhone sizes on your iPad, switching freely between sizes during runtime.
You can event test different iPhone sizes in smaller iPhones! Using the "Zoom to Fit" option you can even run an app with the iPhone 6 aspect ration in an iPhone...
You can find the project on GitHub: Screen Sizes Simulator
Here's an example screenshot of an app using the Screen Sizes Simulator:

iPad 3 retina display testing? Without an iPad 3

I am from India, we dont have the iPad 3 launched here yet. I want my apps to support the higher resolution but have no way to test on the 3rd generation iPad.
Any advise how can I ensure that my apps support iPad3 retina display?
If you download the latest version of Xcode from the Mac app store, the simulator now includes the ability to simulate an iPad Retina display - on the simulator menu "Hardware", "Device", "iPad (Retina)".
Note, because the display is so large, you may want to scale down the display of the simulator - on the menu, "Window", "Scale", "25%".
This will enable you to ensure that if you are loading #2X images, they are loading correctly. It will not help you ensure that your animations are smooth - you'll need a real device for that. I tested my app using the simulator and everything seemed fine, but when I got my device realized I had some problems related to the increased resolution.
If you've coded your app in a resolution independent way and have a Retina iPhone, it wouldn't hurt to try running it there as well - it's a very different context, but has some things in common.
Ultimately though, you will only know that your app is properly supporting the iPad Retina display by testing it on a 3rd gen iPad.

Do universal binaries contain all the heavy ipad graphics in the App Bundle on the iPhone? What to do about it?

Since the iPad 3 has a retina display, I start to worry about the amount of "image spam" in universal binaries on iPhone and iPod touch devices. Obviously they don't need those resources.
I never really checked, but maybe someone knows this: When an iPhone downloads a universal binary, does the App Store automatically ship a version where all the heavy iPad graphics have been stripped out? Or is the iPhone or iPod touch flooded with content that's only needed on the iPad?
Are there any ways to make a universal binary "intelligent" such that iPads only receive iPad resources while iPhones only receive iPhone resources?
In my case I have a 10 MB universal app. Upgrading this to retina iPad would mean iPod touch users will suffer from doubled file size.
No, nothing is stripped from the app bundle when you install on different devices. Remember, the whole thing is codesigned, so nothing can be stripped or the signature would be invalid. The standard advice here is to just live with the fact that your customer is only going to actually be using half of the resources in your app bundle (or a quarter if you don't share resources between iphone and ipad). If this is a dealbreaker for you, you could consider downloading the necessary resources from a server under your control on first launch, but remember that this makes things very complicated for you, and is actually a pretty poor user experience. You almost certainly want to just live with the increased size.
The thing to do is just skip the non retina images because iOS automatically scales images down from their #2x form. Although this may cause slight lag, it is worth it because it will keep the IPA size down and users happy. But if you are doing a game where FPS matters greatly, then you are just going to have to bite the bullet and put all the graphics in there for all devices.
There really wouldn't be a great way to do this that wouldn't be annoying to the user. Saying that, you could potentially ship it with just iPhone graphics (or none at all) and then on first launch it would download all the images from a server that are necessary for whatever device it's running on. Like I said that really would not be a good way to do it though. Sticking with the large initial download seems the best in my opinion.

What should I grab as a development platform, an iPod or an iPad?

I've recently gotten into the world of contract programming, and two of my clients have indicated that they'd like to do something 'trendy', like ipod touch/iphone/ipad development. I have a mac laptop (first gen macbook pro) that I'll have to upgrade to snow leopard to do the development for any of them, from what I've read. So that's already a bit of a commitment, given all the stuff I have on that laptop I'll have to make sure is recoverable from backup.
My budget is limited, but I think I need to learn this skill. Which device should I get to learn this kind of development, an iPod touch or an iPad? I don't have the money for an iPhone.
I think that the iPhone/iPad SDK has an emulator mode, but I like to have the device I'm going to roll out on available to make sure that everything works as I'd expect, ie, what's easily readable on a laptop screen is still readable on the touch, etc.
iPad - since you can simulate the others on your mac and the iPad.
Right now, there's way over a hundred thousand apps for the iPhone and iPod Touch, so I'd suggest developing for the iPad. There's a lot fewer apps to distinguish yourself from.
You can use iPhone apps on an iPad, but I wouldn't recommend pushing them out without testing them on a real iPod Touch or iPhone. The feel will be much different. For example, I type on my iPhone one-handed while holding the phone in one hand, but the Ars Technica review of the iPad says this isn't really feasible on the iPad.
I'd get the iPad. I've been using an iPhone and now an iPad for dev work, and the iPad will run iPhone only apps at the iPhone screen size. Unless you need a camera its the best choice in being able to run apps developed for any iPhone OS device. You just should remember that app performance on an iPad will be much better then on a iPhone/iPod touch. Since it's contract work I assume its more along the lines of utilities, or basically their site as an app. So 100% performance testing isn't as crucial as a 3D game.
Ideally, you would always test apps on the actual target device. So, if you want to build iPad apps, you get iPad. If you want to build iPhone apps, you get iPhone or iPod Touch. iPad will run iPhone apps, but you will not be able to test for performance neither in simulator nor in iPad. Performance is always a concern on iPhone-class devices. Plus you cannot really evaluate the full iPhone user experience on iPad, because the physical form factor and screen resolution/pixel density and many other details are different.

Resources