Rushikesh
Rushikesh

Reputation: 117

React Native Android App size is much big

I have developing apps for customers which can be run smoothly on their devices.My current app size is 5 MB. Now, I want to change technology to react-native but due to app size I unable to start with react native. As I cannot gave app size greater than 20 MB to customers. Is there any way to reduce react-native app size less than 10 MB for all CPU architecture??

Upvotes: 2

Views: 2340

Answers (3)

Viktor Belashov
Viktor Belashov

Reputation: 411

Facebook has released Hermes last year. Hermes is an open-source JavaScript engine optimized for running React Native apps on Android. For many apps, enabling Hermes will result in improved start-up time, decreased memory usage, and smaller app size. At this time Hermes is an opt-in React Native feature, and this guide explains how to enable it.

And also, you will able to reduce the app size by changing android/app/build.gradle file.

def enableSeparateBuildPerCPUArchitecture = true

if you set this to true, it will be able to create two separate apks(ARM, x86).

def enableProguardInReleaseBuilds = true

It run Proguard to shrink the Java Bytecode in release builds

project.ext.react = [
    entryFile: "index.js",
    enableHermes: true
]

If set this to true, Javascript will be compiled to Hermes Bytecode.

Actually, my app size has been smaller from 35M to 12M, utilizing above ways.

Upvotes: 3

Aditya Shende
Aditya Shende

Reputation: 107

So to reduce your app size there are multiple ways but i m going to tell you the simplest way . There are multiple step that you can follow to reduce your app size and make it compatible also for all architecture.

So the steps are :

1.Open android/app/build.gradle

2.Now make def enableSeparateBuildPerCPUArchitecture = true

Two device architecture supported by android are armebi and x86. And RN builds the native libraries for both(default).

So now in build folder you got two apk after setting the last function and upload it to the Playstore And everything will be taken care by Google like distributing the app to the correct architectures.

Version number is generated for both apk using the split generator(auto-generated).

So now you are good to go your apk size is reduced because of the split.

Upvotes: 1

Yoel
Yoel

Reputation: 7975

There are a couple of techniques in order to reduce your APK size:

  • Generate Separate Builds:

In your app/build.gradle set

def enableSeparateBuildPerCPUArchitecture = true
  • Enabling Proguard:

edit android/app/build.gradle:

def enableProguardInReleaseBuilds = true
  • Remove x86 from abi filters.
    splits {
            abi {
                reset()
                enable true
                universalApk false
                include "armeabi-v7a", "x86"
            }
        }
  • Generate different APK's for different architecture
    def enableSeparateBuildPerCPUArchitecture = true

You can also get here tips on how to reduce the size of your packages

Upvotes: 2

Related Questions