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 Intro
00.57 Episode Start
01.31 James’s Introduction
02.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-code
10.31 ProGuard vs R8
13.46 How is the obfuscation working?
15.42 Obfuscation and 3rd party libraries
16.49 Deobfuscation
18.03 Shrinking and Tree shaking
19.02 How much space is ProGuard making us save?
20.04 ProGuard & Reflection
21.38 ProGuard and Runtime optimizations
23.48 ProGuard Rules
25.56 ProGuard Configuration Debugging
27.17 ProGuard Playground
28.19 Which language is used for Rules?
29.20 Beyond Android
30.46 Obfuscating Kotlin vs Java
37.06 Kotlin Metadata and Playground
38.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 reading
44.40 Where to find James online?Resources
Guardsquare/proguard on Github
Guardsquare/proguard-core on Github
ProGuard Official Website
Mentioned Resources:
ProGuard Playground
ProGuard Core Manual
ProGuard Gradle Plugin
Guardsquare Community
AppSweep
ProGuard 20th Anniversary
Keep Rules in the Age of Kotlin - Droidcon London 2021
Relevant 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