If you ever shipped an Android App to production, you probably know about ProGuard, a tool to optimize, shrink and obfuscate your Java/Kotlin code.
Today we have James Hamilton on stage, to tell us about how it works internally and why you should never forget to enable it in your builds.
If you’re wondering what are the differences between ProGuard, DexGuard and R8, make sure to don’t miss this episode!
Show Notes
00.11 Intro00.57 Episode Start01.31 James’s Introduction02.52 What is ProGuard?04.07 What is DexGuard?05.44 Is ProGuard obfuscation secure enough?06.58 Who is using DexGuard?08.23 ProGuard vs ProGuard-code10.31 ProGuard vs R813.46 How is the obfuscation working?15.42 Obfuscation and 3rd party libraries16.49 Deobfuscation18.03 Shrinking and Tree shaking19.02 How much space is ProGuard making us save?20.04 ProGuard & Reflection21.38 ProGuard and Runtime optimizations23.48 ProGuard Rules25.56 ProGuard Configuration Debugging27.17 ProGuard Playground28.19 Which language is used for Rules?29.20 Beyond Android30.46 Obfuscating Kotlin vs Java37.06 Kotlin Metadata and Playground38.19 Who is developing ProGuard?40.01 Which type of contributions do you normally receive?41.05 What’s up next in the future of ProGuard?43.33 Further reading44.40 Where to find James online?Resources
Guardsquare/proguard on Github Guardsquare/proguard-core on Github ProGuard Official WebsiteMentioned Resources: ProGuard Playground ProGuard Core Manual ProGuard Gradle Plugin Guardsquare Community AppSweep ProGuard 20th Anniversary Keep Rules in the Age of Kotlin - Droidcon London 2021Relevant Blogposts: Keep Rules in the Age of Kotlin Building a Log4Shell detector with ProGuardCORE More in-depth blog about data flow analysis with ProGuardCORE @mrjameshamilton on Github @jag_hamilton on Twitter James’ websiteShow links
Podcast Website The Developers’ Bakery on Spotify The Developers’ Bakery on Apple Podcasts The Developers’ Bakery on Google Podcasts @thebakerydev on Twitter @cortinico on Twitter