We are proud to say that ProGuard is the most popular optimizer for Java bytecode out there, shrinking Java applications by up to 90% and making them run up to 20% faster. ProGuard also provides basic protection against reverse engineering (while DexGuard, which is built on the ProGuard framework, offers complete, layered mobile app security).
More than one million developers worldwide use ProGuard to optimize, shrink, and add some obfuscation to their Android applications, desktop or embedded apps.
Today we are launching a new project, ProGuardCORE, and we’re also announcing full support for Kotlin applications. This is already offered in DexGuard, and has now been extended to ProGuard—making it easier than ever for Android developers to take full advantage of Kotlin’s functionality.
Here’s what you need to know about these evolutions and enhancements.
As you likely know, Kotlin is the fastest-growing coding language in terms of adoption and is Google’s preferred language for Android development. It is an innovative language that embraces modern paradigms, such as functional programming with lambdas and asynchronous programming with coroutines.
Kotlin applications contain a lot of information from the original source code in the form of metadata. This metadata is the foundation of the language’s most advanced functionality, but it also increases the size of applications and exposes sensitive information.
ProGuard’s latest release (7.0) introduces new functionality to fully support Kotlin applications. This allows Kotlin developers to shrink and optimize their applications while taking full advantage of the language’s most innovative features.
Other optimizers with obfuscation capabilities on the market, like Google’s R8, either leave the metadata untouched—risking data leakage—or remove the metadata entirely, which prevents app developers from using Kotlin’s advanced functionality to its full extent.
ProGuard 7.0 allows developers to have the best of both worlds. The latest version of ProGuard processes the Kotlin metadata, obfuscates the metadata in use and removes any unnecessary metadata. The goal here is to minimize overhead and eliminate unnecessary exposure of information. Developers can now take full advantage of Kotlin’s functionality while shrinking and optimizing their apps with ProGuard, as well as gaining some basic security protection.
Of course, as with all ProGuard updates, Kotlin support is fully built into our more robust Android mobile app security solution, DexGuard.
Guardsquare’s newest open source project, ProGuardCORE, gives developers the opportunity to integrate ProGuard’s powerful code parsing and code analysis capabilities into their own Java bytecode projects.
ProGuardCORE is an open source library that provides all of the functionality needed to read, write, modify and analyze Java class files. Some of its most powerful features are advanced instruction pattern matching and abstract evaluation, which enable in-depth analysis of the control flow and data flow of bytecode. All of ProGuardCORE’s functionality has been built, tested and perfected over the years as the foundation of ProGuard.
ProGuardCORE is available as a standalone, open source project and includes the documentation and samples needed to ensure effortless integration into any project.
To showcase the functionality of ProGuardCORE, take a look at these two projects we have put together:
ProGuard Assembler and Disassembler is available here.
Thank you for your years of dedication to using ProGuard. As a company, we're committed to our stewardship of the ProGuard and ProGuardCORE open source projects, and we hope these updates will help you build even more cutting-edge, creative apps.