iOS App - Universal or separate targets? - ios

I am trying to decide on whether or not an app should be Universal. Here are my requirements and questions related to each:
In-app purchases. If you download the app on the iPhone and make a purchase, it should reflect that in the iPad version. Obviously you shouldn't have to buy it twice. Is this a dealbreaker? Is there some way to tie in-app purchases together in separate binaries?
iCloud sync would be nice. The user creates content in the app and it would be great if the content created on the iPhone showed up in the iPad app. Again, does this mean it has to be universal?
The app is large and contains a lot of images. The main drawback of a universal app is that I'm capped at 50MB over-air download, and that the single binary means iPhones get all the iPad images and vice versa.
if I did make them two separate apps, do I separate everything in my Xcode project into two different targets and build that way?
Any answers to these questions or other things I should consider would be appreciated.

I think,better option is Universal App.
The app is large and contains a lot of images. The main drawback of a
universal app is that I'm capped at 50MB over-air download, and that
the single binary means iPhones get all the iPad images and vice
versa.
Yes. This is the only difficulty that I measured. However you can clearly specify which images should be load in iPad and which should only load in iPhone by naming it separately.
If Im correct , you can use some thing like myImage~iPhone.png or myImage~iPad.png

Related

Replacing an app with an universal build on the iOS App Store

I had developed two separate builds for my game, one for iPhone and one for iPad. I had uploaded each of these builds on the iOS App Store a few years ago, back before universal builds become common.
The names for these builds are “XYZ” (for iPhone) and “XYZ HD” (for iPad). Now, I have developed a universal build for the same game and I would like to name my updated game as “XYZ HD” on the iOS App Store. I have two questions:
How many listings for this game should I maintain? I definitely want to maintain the iPhone listing as it has better and more user reviews compared to the iPad version. If I keep both listings, it would be odd as I would have the same universal build for each listing and the same pricing. I suppose I could point out in the updated listing that it is a universal build.
What should I name the updated listing(s)? If I only maintain one listing, I would maintain the iPhone version but I understand that Apple will not allow me to call my iPhone build “XYZ HD” even if I unpublish the iPad version. Therefore, I could keep the old name “XYZ” which does not highlight that it now has better graphics for iPads or I could do some weird new name to get around Apple’s naming restrictions such as “XYZ–HD”.
I’d appreciate any suggestions on these issues. Thank you.
Maintain 1 listing (your most downloaded/rated/reviewed one)
Get rid of the "HD", it's not relevant anymore. All apps and devices are HD in 2015. Apps that have "HD" in their name are most likely old apps from the times of not universal apps.
You could make a little update to your iPad version to warn your user of the new listing model. (Or use your app messaging/notification system if you already have one)

ios Approach to implement app from iPad only to Universal

I currently develop an app just on iPad only and it exists on Apple store. Now I want to make it on iPhone. I figure out myself two ways to do this:
Add a folder iphone on my existing project for iPad. I will put all code and resources just for iPhone on this folder. On my opinion, this will make my app heavier because user download my app from iPhone will have iPad resources but useless, it wastes.
Create absolutely new project for iPhone which has the same name with existing iPad app. I think Apple will consider it a branch new app because of different bundleID. I doubt with this approach.
So how can I do it for the best, most convenient and usual like everybody does?
approach 1 will make the app larger cos it contains 2 sorts of code and ui element images, but its easy for users to install and use your app.
second approach is allowed by apple, and much easier to maintain the code cos you have 2 logics to match 2 kinds of devices

2 ipa files for same app (for better size and performance)

I'm working on an iOS application which is developed for all devices (retina and non-retina)
The size of the app is too big now to have compromise for all devices. (Why should iphone 3gs suffer size where it does not get quality?)
Now, I would like to know if there is a way to optimize the size of game installed on the device.
Specifically, is there a way in itunes submission process where we can have additional downloadable content on the server and can download it based on the device ?
We can have assets broken based on the devices and still can save some size on each device.
There is no way to do this thru Apple. The app isn't even necessarily downloaded to a device initially, it might be downloaded to iTunes on a computer instead and synced to the device. Also the user might download it on an iPhone, sync it to iTunes, then sync it to an iPad, so the only time it would actually be downloaded is on the iPhone. So if it didn't include the iPad resources, then the iPad would have a problem running it in this scenario.
You could always have content that the app downloads from your server upon installation, which could reduce the size, but would delay the user starting to use the app upon first run. You could also include only retina assets and generate the non-retina assets upon first run by scaling the images to half size and saving them for subsequent use. This would also take a little bit of time, although probably less time than downloading assets.
You could always break the app into iPhone and iPad versions as well, which would reduce the app size. This would also give you the ability to set a different price point for the iPad version. This is very common and can definitely help reduce app size for all users. This would also be the recommended way of handling this. Note that this means you'll have two separate versions (different app IDs) on the store. Typically people append something like "HD" to the end of the iPad version when they do this.

Universal app or not

I developed my first iphone app recently and would like to port it to an ipad. I've got a couple of related questions.
1) from what i've read, it sounds like creating a universal app will increase the size of the app that the user will download onto their iphone/ipad. is that right? my app is not small right now and i'd like to add some functions to the ipad version. Its something of a disincentive to package a universal app if it means a larger app for iphone users who won't benefit from the added functions added to the ipad app.
2) is it possible to have separate apps for the ipad and iphone but only make users pay for one version of them, if i don't go for a universal app? That is, if someone pays for the iphone version right now, i'd like them to have the ipad version for free when i finish it in about a month. is that possible outside of a universal app?
thanks,
rich
1) Yes, a universal app has everything for both versions so it is bigger. For a user that wants the app on both types of devices this isn't really a problem.
2) No, there is no way to have two separate apps such that the user can have both while only paying for one. At least it's not possible through standard means. If you make both apps free with IAP, then you could have your apps generate some sort of code that could be entered into the other to grant full functionality. Such a scheme is a lot of extra work.
Try to do a universal app and see how big it gets. All of the code is shared and as long as you don't have too many iPad-only full screen images or iPhone-only full screen images, the universal app isn't much bigger than a non-universal app.

Limit App to only iPad 1

I have an app that has been in the store for a while now. I am coming out with a completely new app to replace the old one but it is not compatible with the original iPad (iPad 1). I don't want to completely get rid of the original app because, believe it or not, there is still a large number of people running it on iPad 1's. Is there a way to somehow set up either the app or the app store to where users who have newer iPads only see the new app in the app store and not the old one? (They have different titles, icons, etc)
EDIT: it seems that you cannot change the capabilities of an already published app when you submit a new version. This would rule out the first approach I suggested and leave only limiting the current deployment target.
You could require a device capability not available on the iPad 1, like the camera.
This amounts to setting UIRequiredDeviceCapabilities in your app plist file to front-facing-camera.
Another option you would have, in case the former one did not work, is setting your deployment target to iOS 6 -- this would also rule out the iPad 1s (and all devices running iOS 4 and 5).

Resources