Advise me on my iPad app - ipad

I want to create an iPad app which holds 8 PDF files (each 5.0 MB) and 100 jpg images.
Is it ok to have a app with this much of content added into the resources?
Looking for your help and advice.

Apple limits the size of an app to 2GB (see iTunes Connect Developers Guide). In order to be distributable over the cell network, it must be under 20MB, I think.

Related

How to reduce app size in iOS?

I know it has been asked many times, but every answer suggests using compressed images or linking to images from the web instead of the resource bundle.
In my app there is only 1.5 MB of images, but still the app has a size of 20.9 MB.
The other files in my app are the following:
2 frameworks (CoreLocation, CoreBluetooth)
2 pods (Fabric, Crashlytics)
8 xib
2 fonts (254KB)
And some Swift and obj-c files
Could anyone help me optimize the size of my app?
I am wondering why my app is so large if there is only 1.5 MB of images and 254KB of fonts? I have some apps on my iPhone which have the same functionality as my app and they only take up 520 KB and 1.6 MB. Does anyone know how the developers of those apps achieved that?
The Swift runtime is included with every app that is currently using Swift and inflates the app size.
Apple doesn't promise code compatibility - but runtime compatibility is promised.
In order to do that the Swift runtime libraries of your compiled code is included with the app. That takes up some space :)
The App Store size might be smaller than Xcode reports. If you upload your build to TestFlight, TestFlight will report a much smaller size (but then tell you the regular App Store version might be larger). With app thinning and bitcode the size of the binary delivered to your user's phones will be smaller than the "full" app size.
Swift's overhead should go away once Swift 5 (https://github.com/apple/swift-evolution) gains ABI compatibility.
Fabric/Crashlytics add a few MB alone. If you build an Archive, then in Finder right-click on the the app and Show Package Contents. From there you can sort by file size and see the biggest culprits.

App Store File Size Warning in iTunes Connect

Version 1.0 of my app has finally been completed. It's a simple application with the ability to view multiple leaflets and links to videos from a charity-based organisation. I've uploaded it to iTunes Connect for the final build, but I'm seeing a "App Store File Size Warning" in iTunes Connect.
The app itself contains 220 images (each has an average size of 500 Kb but some much smaller). The idea of the app is to have the charity's leaflets all accessible within the app in an offline state (hence why they're not downloaded from a server somewhere, etc).
The app itself also contains links to the companies videos. So the videos itself are not in the app, but rather links to the videos are populating the app's UITableViewCells.
Reading many questions about App Store size reduction, I have moved 1200 titles and URLs for the videos to text files rather than storing them in code. I have reduced the sizes of the images (they can't be reduced anymore because they will become low resolution). I'm just not too sure what I can do to get to the required limit? Or, could I still submit as it's only a warning and not an error?
For example, I downloaded a game today that was 190Mb. How does that get around this?
The app supports iOS 7, 8 and 9, so I can't use App Thinning just for that. I see some information on this: Max size of an iOS application but it's not new, etc.
Is it possible for me to bypass the warning in iTunes Connect and submit anyway? (I'll submit after the ITC X mas break).
Any thoughts on this would be really appreciated.
That won't cause any issue. If your app is less than 100 MB the warning won't be there. Apple prefers to keep the IPA size below 100 MB for keeping the app mobile data friendly (To download using mobile data).
There are several ways you can reduce the size:
Use App Thinning
Implement an one time download mechanism in your app, through which download the files on first start (I'm doing such a mechanism in 3 of my app, that needs around 300 MB of resource for proper working)
You can read more techniques in Reducing the size of my App

How to reduce the itunes app size?

When submitting an app to Apple, i noticed that even though the App bundle is 60 MB, the actual app that shows up on itunes is 54 MB. However, when making the Ad Hoc build, the ipa is only 30 MB.
My understanding is that this is due to DRM that Apple has: https://developer.apple.com/library/ios/qa/qa1795/_index.html
However, is there a better way to bypass this DRM that Apple puts?
Apple just came up with a solution where if you add all your resources (images, videos, etc) to the so called Assets catalog file AND configure each file according to the device type being used THEN you can dramatically reduce app size.
Think about it! You have 3 copies of every image: img.png img#2x.png and img#3x.png
Then why would you need to have the non-retina set of images on a retina device?
And this answers why you see lower app size when you build. xCode does this automatically, but you can fine tune in assets catalog. Here is how:
https://developer.apple.com/library/mac/recipes/xcode_help-image_catalog-1.0/chapters/CustomizingImageSetsforSizeClasses.html#//apple_ref/doc/uid/TP40013303-CH10-SW1
Oh yeah, not only app size reduces! Apple made seamless integration to make the AppStore downloadable app be smaller. By making a custom build for every kind of device. Just use the Assets :)

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.

Size limit of my ios app particularly Core Data

I have developed an app. It is an in-house app. I want to know if there is any limit on the size my app can take up on the iOS device. My app connects to a web-service and downloads data from SQL server. Maybe 1000s of rows. How much data can my app store on the iOS device? Can someone explain it in simple terms. I read its 2GB. But i think that is the size of the app when you install it.Correct? In archives section of organizer my app now says 1MB. So that 2gb, is the limit there correct?50 mb is the size of OTA download. I want to know how much space my app can occupy on the iOS Device. How much core data space can my app occupy? More questions to come. Thanks.
As far as I am aware you have can save as much data as you want on the device until it runs out of memory. Core Data store (eg sqlite file) just lives in a file in the documents directory of the device. Once there is no more room on the device, and there are no caches to clear I assume it will throw errors 'no space available' and such.
Write a quick little app that loads a large image from the bundle and saves it to the documents folder with a different filename (timestamp?), loop it until the device crashes and you might get to see how much memory it lets you have :)
(Do it on an actual device, not the Simulator)
2GB is the maximum size of the app that you are allowed to upload to iTunes and I don't think relates to how big your app can eventually become on the device.

Resources