The ProGuard Story: 20 Years of Innovation in Java Optimization
As we mentioned in our last post, ProGuard is celebrating its 20th anniversary this year. We’re planning a lot of fun community activities that involve giveaways. Equally as fun as celebrating the milestone is recognizing how we got here
You may be familiar with some of ProGuard’s story over the past two decades, but we’re guessing you’ll learn something new today. Read on to learn how ProGuard has grown from a small hobby project to a leading open source Java optimization tool used by millions. You’ll also discover how ProGuard helped create Guardsquare.
It All Began in the Early 2000’s
When Eric Lafortune made his first commit to the ProGuard code repository on May 1 2002, he hardly expected his new creation to gain the traction it has. “ProGuard was just a hobby project by itself,” he said, “although I do take my hobbies seriously.”
Shortly thereafter, the first public version of ProGuard was released, which covered desktop, server, and early mobile devices using J2ME. This was before the Android mobile platform even existed (but more on Android later). ProGuard started with just shrinking (commonly referred to as tree-shaking) and name obfuscation functionality, and by August 2004 bytecode optimization was added.
“After the initial release, I saw a few downloads every month. That number only increased very slowly, but steadily. There were many alternative obfuscators, both commercial and open source, but most of them were poorly maintained and eventually abandoned. ” - Eric Lafortune, Creator of ProGuard
ProGuard Joins the Android SDK and Helps Launch a Company to Revolutionize App Security
By December 2010, with close to half a million downloads, ProGuard had gained enough recognition to be integrated directly into the Android SDK. The Android 2.3 Gingerbread release made ProGuard readily available to Android developers worldwide.
“Google chose ProGuard for Android development, which had a huge impact,” Lafortune explained. “At that point, it was downloaded thousands of times every day, millions of times overall.”
In 2012, DexGuard was born. It was built upon the foundational principles found in ProGuard and quickly became the preferred choice for Android developers wishing to further optimize and explicitly harden the security of their mobile applications. ProGuard remains a highly regarded and widely used open source option while DexGuard provides a commercial solution to push the bounds of multi-layered application security. In fact, DexGuard’s 10th anniversary is coming up this year, too!
Just two years later, Guardsquare was founded, acting as a corporate steward for ProGuard, and also focusing on improving the tools developers have for application security. Guardsquare’s portfolio of security solutions – DexGuard, iXGuard, AppSweep, and ThreatCast – offer the broadest coverage in the market, with mobile-first solutions that provide app testing, protection, and real-time threat monitoring for more than 4 billion app users globally.
ProGuardCORE Launches to Power New Developer Tools
In 2020, after reaching more than a million downloads, the ProGuard source code was moved from Sourceforge to GitHub. Around the same time, ProGuard and Guardsquare developers worked to build additional open source and free tools: ProGuardCORE, the Kotlin Metadata Printer, and the ProGuard Playground.
ProGuardCORE is a free, open source library to read, analyze, modify, and write Java class files. With ProGuardCORE, developers can easily use the same core tools developed over nearly two decades to perform code analysis and bytecode manipulation in ProGuard and DexGuard. At Guardsquare, we leverage the code analysis capabilities of ProGuardCORE to power AppSweep, a free security scanning tool for Android.
Guardsquare’s engineers also created ProGuard Playground – an interactive visualization tool for creating, managing, and sharing ProGuard keep rules. Since its launch, over 3,000 playgrounds have been created and more than 20,000 configurations have been evaluated.
Then, in 2021, our open source Kotlin Metadata Printer was integrated into the ProGuard Playground to highlight the potential size, optimization, and security challenges in the Age of Kotlin.
“There should be something useful for all ProGuard users and Android developers,” Lafortune said. “The Guardsquare Community for questions and updates, the ProGuard Playground to instantly see the impact of non-trivial configuration, and AppSweep to get very quick and efficient feedback on security issues in apps.”
Launching the Guardsquare Community & Celebrating 20 Years of ProGuard
The Guardsquare Community was created in late 2020, providing an environment where Guardsquare and ProGuard users can discuss the latest developments in app optimization and security. The Community has been crucial for guiding the continual improvements of ProGuard and related tools as well as helping users make the most of ProGuard with their own projects.
While we’ve already accomplished 20 years of innovation in Java app optimization with ProGuard, it’s only just the beginning. There’s an exciting future for the open source tool that’s surrounded by a strong community of ProGuard users, app developers, security professionals, and more.
“ProGuard will follow the technology, supporting every new version of Java, Kotlin and Android,” Lafortune concluded, “Continuity is essential.”
Click here to watch our video highlighting the history of ProGuard from the early 2000s until today, or read our previous blog post to learn how to get involved with the 20th-anniversary celebrations.