I got used to track my apps by GA. However I haven't payed attention before to its size, until I added ipad, iphone 6/6+ support to my app, and size increased over 50 mb. I deem it really awful for a utility app. But all those png's with high resolution graphics produce valuable size content and libGoogleAnalyticsServices.a, which now has size of 11,4 MB. I attach GA version 3 using cocoapods, is there a way to minimize the library?
Related
I've been making an iOS game (Head of State) since the beginning of the year. I launched it with ARMv64 architecture and the download size was just over 30MB. I want to publish an update with Universal architecture and some more content but now I'm struggling to get the download size under Apple's 100MB limit for downloading over cellular networks.
I know universal architecture will nearly double the size of the build, and adding more images also increased it. Before optimising the unity build size was 70MB and the Apple download size was 108MB. So, only 8MB to cut down I thought. But, after I tried reducing the file size by compressing textures and audio (following this guide for reducing file size), the unity size was down to 53MB, but the Apple download size was only down to 102MB...
I can't compress the audio or images more without it becoming very noticeable in game, and I don't understand how I can have cut the Unity build size by 17MB, but the Apple download size by only 6MB. I would love for someone to explain this to me and give me some tips for how to reduce the Apple download size that extra bit to get under 100MB.
Here are my Unity build settings
I'm using Unity 5.4.1f1 and Xcode 8.0
The default image compression for iOS looks bad but with a custom atlas packing policy you can override the compression quality and make it more bearable.
Have you checked from unity build log what'a taking most of the space?
Also, where are you checking the download size and have you tested that the build actually does not download over cellular? AFAIK the displayed size in app store is some uncompressed version and doesn't need to fit exactly 100MB
As I mention in the comments above, I ended up switching to .NET 2.0 subset from .NET 2.0 and this brought the package size down well under 100MB
This question might be a duplicate, but I couldn't find any reasonable answer.
I am developing an app that supports all iOS devices, for which I have to import image resources for every device.
If I use image optimizer, it will destroy quality of images.
Currently my app consists of iPhone 5, 6, 6+, iPad and iPad retina images, which costs me about 20 MB space in my application.
How can I reduce this size? E.g. by removing iPhone 5 or iPhone 6 images, will the application work fine or not?
This will all entirely depend on the design of your application. #3x graphics are for the iPhone 6+ only (for now), and the resolution on the device is so high some users might not notice that the #3x graphics are missing. You might also be able to "re-use" some of your iPhone graphics for the iPad (for example you could use the iPhone #2x graphics for the iPad non-retina). But again, depends on your graphics design.
I don't know how you use this images, but
If you want reduce the size of your app there are, for me, two solution.
Check if the size of your images are not too big (the size of your UIImageView x2 will be enough).
Get the images by downloading the right image and store it in the device.
No, you have to store iPhone 5,6,6+ startup images just to disable scaling.
Remove redundant orientations from startup images.
Try to use ImageOptim to minimise png images. It uses lossless optimisations.
Try to use lossy optimisations for images if they are still too big.
If you use clean background in your app, save startup images with only background colour without UI, and make sure that app start fast. It will look OK.
I'm creating an iOS app with some preloaded data which includes images, it will have between 150 and 200 images. This images are not downloaded from a server, since the app won't connect to the internet.
I'm wondering about if saving the images locally can cause any problem, what is the max size that I can use to store them? Can this affect the app's performance? Anything else that I should be aware of?
Thanks in advance!
Over the air cellular maximum download is now 100MB since the iOS 7 launch.
Your maximum app size is 2GB with a maximum binary size of 60MB. With 200 images I don't think you'll hit the 2GB mark, so long as you use the proper compression techniques.
The only thing that would affect your app's performance is the way the images are presented. If they're really large images, 10+ MB you'll most likely hit memory problems in older devices and if you go larger, memory problems in newer devices. There's plenty of techniques like tiling in a scroll view to get around these problems but it requires you splice up your images and create multiple resolution versions of the image.
If your app is greater than 50MB (at the time of writing) because of the images being included then users will need WiFi to install it.
Other than that, your performance concerns should be around how many of the images you will have loaded into memory at any one time and how you can reduce that number.
I've been experimenting with createjs to convert some flash as3 animations to HTML5. everything works fine in desktop browsers, but on an i-pad the animation are considerably slower. Where there are complex vector objects they are so slow as to be unusable. I can speed things up by caching the objects, but the quality of the resulting graphics is poor. Are there any solutions to this problem?
Thanks in advance
Pete
take a look on canvas size. after a centain size the mobile vídeo boards cannot accelerate the graphics like pc does.
Tip #4. Watch The Size of Your Canvas
Obviously, the larger the canvas the more costly the drawing
operation, but if you’re targeting mobile devices, there are some size
limits you must keep in mind.
From Safari Web Content Guide:
The maximum size for a canvas element is 3 megapixels for devices with
less than 256 MB RAM and 5 megapixels for devices with greater or
equal than 256 MB RAM
So if you want to support Apple’s older hardware, the size of your
canvas cannot exceed 2048×1464.
But that’s not all! Even with smaller sizes, you have to keep your
canvas’s aspect ratio between ~3/4 and ~4/3. If you step outside those
boundaries, webkit seems to switch to a totally different rendering
mode splitting the canvas into multiple fixed-size areas and rendering
them separately with a noticeable delay between them.
There doesn’t seem to be any documentation on this but I have
confirmed this happens on both Chrome and Safari on iOS versions 6.0.1
and 5.1.1.
source http://blog.toggl.com/2013/05/6-performance-tips-for-html-canvas-and-createjs/
I am developing an iphone application and i am using a background picture for my app. I know that before iphone 4 , the resolution of the screen was 480x320 and after 960x640. I read that i should use 2 images like : MyImage.png and MyImage#2x.png with the 2 different resolutions and the app will know which one to choose according to the phone. My question is very simple. If i just use the 960x480 , whats the difference? I am developing on an iphone 3gs and i am using this resolution and everything works perfect. So why have a small resolution for these phones?
The difference, in my opinion, is the following: the phone is going to resize the doubled-resolution to half the size, and this will lead to (1) the final image is not as smooth as if you would have exported it from a image application like Illustrator or Photoshop - at least from my own experience, when I export both resolutions, in non retina devices, the images don't look as good if I had exported the normal resolution. Also (2) the device will waste time/performance to make this conversion, although I don't know how much it is significant. And (3) finally, you may overload memory with no need, considering that the doubled sized images are bigger files, and you could use smaller files instead.
If you don't mind about this issues, you can go ahead. Try yourself.
If nothing else, the high-resolution images will tax the memory much more. One full-screen image at 320✕480 is around 600K in memory, whereas the 640✕960 is almost 2.5M, four times as much. On the older devices the memory is much more scarce than on the new ones and you might run into problems later in the development cycle, when there are more resources in play.
Even if you are able to test the app on all older supported devices and you can guarantee that there are no immediate performance problems or visual glitches, the app will take more memory, forcing the OS to kill other apps more frequently (= worse overall user experience).
if you use one version of image, (960x640) , there will be a memory overhead when the app run on non-retina. you dont need to display the high res in non-retina, only in retina display, making two versions of images .png and #2x.png will tell ios which image version it should load, depends on what device is currently in use.