Software

Does App Size Affect Downloads? How to Shrink Your APK and IPA

Talha Aslan 18 min read 2 views

Short answer

Does app size affect downloads?

App size is the size of the package a user downloads from the store and the space the app takes on the device after installation. Yes, it affects downloads. Google's Android developer documentation states plainly that users often avoid apps that seem too large, and that a bigger app can hurt install success and increase uninstalls.

Keep reading for the full details and examples

So how do you put that to work? At Talha Aslan and team, we treat size as a product metric in every mobile app development project we ship. This guide shows how to shrink your APK (the Android package) and your IPA (the iOS app archive). Start with this short checklist:

  1. Measure the real download size in Play Console and App Store Connect.
  2. Make sure you publish to Google Play with an Android App Bundle.
  3. Pull images, fonts and videos out of the package and compress them.
  4. Remove libraries and SDKs you no longer use.
  5. Move large optional content out of the first install.
  6. Measure again on every release and compare it with the previous one.

What is the difference between download size and install size?

Mixing up these two numbers is the most common reason teams optimize the wrong thing. Apple's App Store Connect help page defines download size as the compressed size of the app that travels over the air, on cellular or Wi-Fi. Install size, on the other hand, is the disk space the app consumes on the device. It also appears in the Information section of your product page.

In other words, users meet two numbers at two different moments. At download time they think about their data plan and the wait. After installation they think about storage. Apple also notes that approved apps get encrypted with DRM and recompressed. As a result, the final size can be larger than the binary you uploaded, and nobody can predict it exactly in advance.

  • Download size: The thinned, compressed package that travels over the network.
  • Install size: The total space left on the device after unpacking. It is usually larger.
  • Update size: What existing users download for a new version. We cover it separately below.

In short, you need to track all three numbers on their own.

What do Google and Apple officially say about app size?

On the Google side, the clearest statement sits in the Android guide to reducing app size. It says users avoid apps that seem too large, especially in emerging markets with spotty connections or limited data plans. It also says the size of your package affects how fast the app loads, how much memory it uses and how much power it consumes.

Apple talks about size mostly through technical limits and warnings. The App Store product page shows an install size that depends on the device viewing it. So an iPhone user does not see a generic number; they see the number for their own model. That turns every unnecessary asset into a visible cost on every device.

That said, neither platform publishes a formula such as "every extra megabyte costs you this many installs." For that reason, we do not quote one either. Instead, we recommend that you track size changes and store conversion rate together in your own app. The measurement section below walks through this step by step.

What warnings appear when users download over cellular?

The most concrete effect of size on downloads is the warning a cellular user sees. The Play Console Help page on size limits says that above a certain size, users installing on mobile data see a non-blocking dialog. At the time of writing, the page puts that threshold at 200 MB.

On Apple's side, App Store Connect shows a yellow warning icon next to the build when any device variant exceeds the over-the-air download limit. Apple also sends the developer an email. The help page defines that limit as 200 MB as well. However, both platforms can change these thresholds over time, so always check the current value on the official pages.

Why does the warning matter? Because users decide to install in the moment: on a bus, in a store or right after tapping an ad. When the store offers to wait for Wi-Fi, postponing becomes easy. As a result, some of those postponed installs never finish. If you acquire users through paid ads, that loss shows up directly in your acquisition cost.

How sensitive is your audience to app size?

Size does not hit every audience equally. People with new phones, plenty of storage and steady Wi-Fi may not notice a few extra megabytes. In contrast, users with entry-level devices, small data plans or constant storage warnings are far more sensitive.

Instead of guessing, look at the data. Play Console shows the share of active devices with low free storage, which tells you how many of your users are short on space. In addition, the country and device breakdowns in both store consoles reveal how much weight low-end devices carry in your audience.

  • High sensitivity: Mass-market shopping, delivery, loyalty and public service apps.
  • Medium sensitivity: Booking and appointment apps for a defined customer group.
  • Lower sensitivity: Internal company apps where installation is mandatory.

Put simply, the broader your audience, the more every megabyte counts.

What bloats app size the most?

In the packages our team audits, bloat rarely comes from one place. Usually several small habits stack up. The list below shows the items we check first when we start a size audit:

  • Uncompressed images: Large PNG exports straight from the design file, plus density variants nobody uses.
  • Embedded videos and animations: A single onboarding video can take up a large share of the package.
  • Font families: Shipping the full family when the app uses only two weights.
  • Third-party libraries: Heavy libraries added for one function, and SDKs that do the same job twice.
  • Native libraries: Separate copies for each CPU architecture, often with debug symbols still inside.
  • Generated code: Google's guide warns that generated code, such as protocol buffer output, can grow the app substantially.
  • Language resources: Translation files from libraries for languages you do not support.

Rather than guessing which of these dominates in your app, measure it. The next section explains how.

How do you measure your real app size?

Start with the store consoles, because they produce the number users actually see. According to Play Console Help, the App size page under Android vitals shows your download size, a comparison with peers, trends over time and the share of active devices with less than 2 GB of free storage. That last figure is gold for understanding your audience.

On iOS, open the build metadata tab in App Store Connect to reach the App File Sizes table. Specifically, it lists download and install size for each device variant. Before release, the App Thinning Size Report in Xcode gives you estimated per-device numbers straight from your archive.

  1. Write down the download and install size of the current version from the store console.
  2. Open the package folder by folder with APK Analyzer in Android Studio.
  3. List the ten largest files and the five largest libraries in a spreadsheet.
  4. Repeat the same measurement after every optimization and record the difference.

For example, a sheet with the columns "version, download size, install size, largest item" is enough to start.

How does the Android App Bundle reduce app size?

The official Android App Bundle documentation describes it as a publishing format that includes all your compiled code and resources and defers APK generation and signing to Google Play. Google Play then generates optimized APKs for each device configuration. As a result, each device downloads only the code and resources it needs.

In practice, a high-density phone skips low-density images, and a device set to English skips Japanese resources. The same logic applies to native libraries built for specific CPU architectures. Instead of one giant APK, every user gets a package cut to fit their device.

Google Play requires the App Bundle format for new apps. Still, we regularly see older projects that publish with APKs. Play Console Help notes that apps still publishing APKs stay under older, tighter size limits. So if you inherit an older project, check the publishing format first.

What do R8 and resource shrinking remove on Android?

R8 is the Android build tool that strips unused code, shortens class and method names and optimizes what remains. According to Google's guide, when you enable code shrinking for release builds, R8 removes unused code first. Then the Android Gradle plugin removes resources that only that dead code referenced.

These two steps pay off in projects with many dependencies. Even if you use only a small part of a library, the whole library ships when shrinking is off. However, shrinking can cause runtime crashes, because classes your app calls through reflection may disappear by mistake.

  • Turn shrinking on in a test track first, never straight in production.
  • Add every keep rule your libraries recommend.
  • Test payment, login and notification flows on the shrunk build.
  • Keep the mapping file so crash reports stay readable.

If you want to see how we set up crash monitoring, our article on app crash rate and store thresholds covers that step in detail.

How do images inflate app size, and how do you fix it?

Images are the item our audits flag most often, and they are also the quickest to fix. Google's guide recommends converting images to WebP. WebP supports lossy and lossless compression as well as transparency. Android Studio can also convert BMP, JPG, PNG and static GIF files to WebP for you.

The second step is vectors. For icons and simple illustrations, vector drawables remove the need to store a separate PNG for every density. However, the guide also notes that vectors render more slowly for large images. So keep them for small graphics.

The third step is to ask whether the image needs to live in the package at all. Campaign banners, product photos and blog images change often. Loading them from a server shrinks the package and lets you swap images without shipping a new release. The core principles of compression match the web; our image optimization guide explains them in depth.

How much space do libraries and SDKs take?

Each SDK looks small on its own, yet the total can surprise you. Analytics, ads, payments, chat, maps and crash reporting all bring their own dependencies. Moreover, those dependencies often overlap or duplicate the same work.

Example scenario: imagine an ecommerce app with two analytics SDKs, two image loading libraries and a chat module nobody uses. In that case, your first job is an inventory. Write down which team added each SDK, and why. Then remove what nobody needs.

Google's guide also recommends removing unnecessary library code and choosing lighter, mobile-friendly alternatives. It points out that newer Android versions include a built-in image decoder, so you may not need a separate library just to decode GIF or WebP. In addition, a clear tracking plan makes it easier to drop redundant analytics SDKs. Our guide on which events to track with Firebase Analytics can help here.

Why do native libraries make an app bigger?

Native libraries are files written in C or C++ and compiled separately for each CPU architecture. Game engines, image processing and some security libraries include them. Because each architecture needs its own copy, a single universal APK can multiply their footprint.

The App Bundle solves most of this by sending only the matching architecture. Beyond that, Google's guide suggests two more steps. First, strip debug symbols from release builds. Second, package native libraries uncompressed. That way the system does not need to copy them during installation, and updates get smaller too.

Also, question which architectures you really need to support. Keeping builds for old devices that barely exist in your audience adds maintenance work. Still, base that decision on measured data. Do not drop real users just to save space.

How do you reduce IPA size on iOS?

On iOS, the core mechanism is app thinning. The App Store sends each device only the architecture and resolution variants it needs. For thinning to work properly, keep your images in asset catalogs. Images dropped loosely into folders miss out on thinning.

  1. Move images into asset catalogs and define the right variant for each resolution.
  2. Generate per-device size estimates with the Xcode App Thinning Size Report.
  3. Remove unused Swift packages and frameworks from the project.
  4. Move bundled videos and large audio files to a server or to background assets.
  5. Check the variant table in App Store Connect for any warning icon.

Apple's maximum build file sizes page sets separate upper limits for the executable and for the uncompressed app. However, those limits are technical ceilings. The target that matters for user experience sits far lower. So benchmark against competing apps and your own previous release, not the ceiling.

How does on-demand content delivery work on Android?

Not every user needs every piece of content on day one. On Android, the official answer is Play Feature Delivery and Play Asset Delivery. According to the documentation, Play Feature Delivery lets you add feature modules that install under conditions you set, or that users download later at runtime.

Play Asset Delivery is Google's solution for delivering large amounts of assets, mainly for games, with flexible delivery modes. Play Console Help lists install-time, fast-follow and on-demand modes, each with its own size limits. Because those limits can change, we confirm the numbers on the official page for every project.

  • Good candidates: Rarely used admin screens, extra language packs, advanced game levels and high-resolution media.
  • Poor candidates: Login, checkout and the core flow every user needs in the first minute.

In short, think of the first install as the smallest package a user needs to open the app and see its value.

How do you split large content on Apple platforms?

For years, Apple offered On-Demand Resources for large content. However, the App Store Connect page on on-demand resource limits now says the technology has entered deprecation and recommends migrating to the Background Assets framework.

Background Assets lets you manage large content separately from your app bundle and download it in the background. Apple's build size page also points to this framework for hosting larger assets outside the build. As a result, users start with a small first package, and extra content arrives when they need it.

One caveat matters here. For apps that use these assets, Apple may show an "Up to" size on the product page that includes essential asset packs. In other words, moving required assets to the background does not magically shrink the number on the store. Instead, the real gain comes when you split out content that is truly optional.

Are cross-platform apps at a disadvantage on app size?

Frameworks such as React Native and Flutter ship their own runtime inside the package. Therefore a very simple cross-platform app can start larger than the same screen built natively. As the app grows, however, that starting gap becomes a smaller share of the total.

In our experience, the real difference comes from project discipline, not the framework. Unchecked packages, uncompressed images and extra fonts inflate size in any stack. So do not choose a technology on size alone.

If you want the broader pros and cons, our React Native guide and our article on whether Flutter suits a business app will help you decide. In both frameworks you can apply most of the shrinking steps above.

Does update size affect users too?

Yes, it does. A user downloads your app once but downloads updates many times. When every update is heavy, users may turn off auto-updates or hold updates until they reach Wi-Fi. Eventually, part of your audience stays on an old version.

Users on old versions miss bug fixes and new features alike. As a result, support load and crash rates go up. And when a critical fix must reach everyone, you need a forced update mechanism. We explain how to design one properly in our guide to forcing an app update.

To keep updates small, avoid regenerating large files that did not change. For example, a big data file rebuilt on every build can bloat the delta update even when its content stays the same. Google's advice to package native libraries uncompressed also aims to make updates smaller.

How do APK and IPA shrinking methods compare?

The table below summarizes the methods we use most in app size work, by platform, expected impact and effort. The impact column is a starting estimate based on field experience, not a guarantee. Always verify it by measuring your own project.

MethodPlatformWhat it shrinksExpected impactEffort
Publish with Android App BundleAndroidResources and architectures a device does not needHighLow
R8 and resource shrinkingAndroidUnused code and resourcesMedium to highMedium
WebP and vector drawablesAndroid, iOSImage filesMedium to highLow
Asset catalogs and thinningiOSImage variants a device cannot useMediumLow
SDK inventory and cleanupAndroid, iOSRedundant dependenciesMediumMedium
On-demand modules and assetsAndroid, iOSFirst install sizeHighHigh
Move media to a serverAndroid, iOSVideo, audio and campaign imagesHighMedium

As you can see, the fastest wins usually come from the low-effort rows. That is why we suggest starting there.

Which app size mistakes should you avoid?

Shrinking your app is a worthy goal. Done wrong, however, it can damage the app itself. These are the mistakes our team sees most often in inherited projects:

  • Shrinking without testing: Turning on code shrinking and shipping without testing payment or login.
  • Over-compression: Squeezing images until product photos blur and store screenshots look cheap.
  • Moving everything to a server: Even first-launch content waits for a download, so users stare at an empty screen.
  • One-off effort: Shrinking once and then ignoring size in later releases.
  • Watching one number: Cutting download size while install size or update size quietly grows.

For example, if you move welcome screen images to a server, users on a weak connection form their first impression from a blank screen. We cover the reasons behind early churn in our article on why users uninstall apps in the first 7 days.

How do you measure the effect of app size on downloads?

The only way to know whether a size change worked is a before and after comparison. Track store acquisition data, meaning the share of product page visitors who install, alongside your release dates.

  1. Record the product page conversion rate for the four weeks before the size work.
  2. Note the date you release the smaller build.
  3. Try to keep other variables steady, such as ad budget, store screenshots and description.
  4. Compare the next four weeks with the previous four.
  5. Watch uninstall rate and first week retention over the same period.

Also account for seasonality. Holidays, school terms and campaign weeks shift demand on their own and can hide the size effect. So pick comparison periods with similar calendar conditions. In addition, check the country breakdown. The effect may show up more clearly in markets where low-end devices dominate.

Example scenario: suppose you move the intro video out of the package and leave store screenshots untouched in the same period. In that case, you can link the change in conversion rate to size with more confidence. If you change several things at once, you cannot tell which step worked.

How does size optimization fit with app store optimization?

Size is not an isolated number on the store page. It is one of the signals users weigh before they decide. The title, icon, screenshots, rating and description spark interest. Size then shapes the question "install now or later?" Consequently, a strong store page can lose impact because of a needlessly heavy package.

That is why we treat size work as the technical side of app store optimization. We cover the text and visual side of the store page in our ASO guide. When you plan both together, more of the traffic you pay for turns into installs.

We also recommend checking size before you launch an ad campaign. Ads catch users at the moment they decide fastest. A cellular download warning at that moment can waste part of every click you pay for.

How do we handle app size in your project?

At Talha Aslan and team, we discuss size on day one, not at the end. When the tech stack, visual language, SDK list and server-side content are clear during design, the package that reaches the store stays light by default. We measure and report size on every release. When we see growth approaching a limit, we find the cause and fix it.

We build your app and we publish it to the stores. Android App Bundle, iOS thinning, on-demand content and measurement setup are a natural part of that process. If you are planning a new app, or if your current app size is holding back downloads, request a quote on our mobile app development page. Together we will define the scope and timeline for your project.

Frequently Asked Questions

What is a good app size in MB?
There is no single right number for every app. We set the target based on similar apps and your audience's devices, not on store ceilings. The App size page in Play Console compares you with peers. A practical rule: stay comfortably below the cellular warning threshold, and try not to grow from one release to the next.
Will switching to Android App Bundle break my app?
Not when you configure it correctly, but you must test after the switch. The App Bundle hands APK generation and signing to Google Play, so set up your signing key carefully. Then test critical flows such as login, payment and notifications on several devices in the internal test track before you go to production.
Why does the App Store show a larger size than the file I uploaded?
Apple encrypts approved apps with DRM and recompresses them. According to App Store Connect Help, the final size can therefore be larger than your uploaded binary, and nobody can determine it exactly in advance. The product page also shows an install size that depends on the device model viewing it.
Is moving images to a server always a good idea?
No, not always. Moving frequently changing campaign images and large media to a server shrinks the package. However, keep the images you need on first launch and for offline use inside the app. Otherwise users on a weak connection see an empty screen, and the first impression suffers. Serve the first experience from the package.
Does app size affect Google Play rankings?
Google does not officially say whether size is a direct ranking factor in the store. Still, the official Android documentation says a larger app can hurt install success and increase uninstalls. Because installs and retention shape your store performance, we recommend treating size as a serious indirect signal and tracking it on every release.
How long does an app size reduction project take?
It depends on the age and structure of the project. Switching to the App Bundle, compressing images and removing unused SDKs usually go quickly. Splitting the app into on-demand modules takes longer because it changes the architecture. We always measure first and start with the steps that offer the biggest gain at the lowest risk.
  • app size
  • APK size
  • IPA size
  • Android App Bundle
  • mobile app development
  • App Store
  • Google Play
Share:
Talha Aslan

Google Partner digital marketing expert. Hands-on with SEO, Google Ads, web design and e-commerce projects since 2012; every post here comes from that experience.

Next project

Get a quote for your project.

Your brief goes straight to Talha Aslan and team: strategy led by Talha, delivery by an experienced team. We reply the same day and send the scope, timeline and price as a written quote within 1 business day.