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!

Enjoy the show 👨‍🍳

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

Show links

Posted: