Engineering

Shrinking React Native Binaries: ProGuard, R8, Assets, and Hermes Bytecode

John Hambardzumian · Full Stack & Mobile Developer | Node.js, React Native, PHP, Laravel | 7+ Years Building Scalable Web & Mobile AppsApr 11, 20265 min read
Share
Shrinking React Native Binaries: ProGuard, R8, Assets, and Hermes Bytecode

Binary size affects install conversion, update churn, and storage-constrained devices. React Native apps bundle JavaScript, Hermes bytecode, native libraries, and assets—each layer offers optimization levers governed by Google Play and App Store packaging rules.



Android: R8, shrinking, and keep rules


Enable R8 full mode with carefully maintained ProGuard keep rules for reflection-heavy SDKs. Misconfigured shrinking causes NoSuchMethodError at runtime—validate release builds on minimal hardware. Use Android App Bundle for split APKs by ABI and density.



iOS: bitcode (historical), stripping, and linker flags


Follow Xcode recommendations for dead code stripping and link-time optimization where supported. Audit embedded frameworks for duplicate symbols and version skew.



JavaScript and Hermes


Hermes bytecode reduces parse cost; still audit Metro bundle composition for duplicate dependencies. Enable inline requires where compatible to defer module evaluation.



Media diet


Serve vector graphics, compress PNGs, adopt WebP or AVIF where decoders exist. Remove unused fonts and localize large video assets via CDN download post-install when appropriate.



Dynamic delivery


Consider Play Feature Delivery or modularization for seldom-used features—balance with cold start complexity and QA surface.



Conclusion


Track download size and installed size as product metrics. Regressions should trigger the same scrutiny as crash spikes.

John Hambardzumian

Written by John Hambardzumian

Full Stack & Mobile Developer | Node.js, React Native, PHP, Laravel | 7+ Years Building Scalable Web & Mobile Apps. Focused on React Native and full-stack development.

Ready to build something extraordinary?

I'm currently accepting new projects. Let's discuss your vision and turn it into reality.

schedule24h Response Time
verifiedVerified Professional