The Android operating system has several built-in security features to protect application users from attackers i.e. network sniffers, malicious app writers, device thieves, and more! It is important for Android application developers to understand what protections these features provide but also where they can fall short in protecting users. It is the responsibility of the Android application developer to practice defensive programming to protect the users of their application from the common attacks which attackers use to compromise applications and their data. This course teaches important information about the Android platform but also focuses on these defensive programming techniques which developers must know in order to write secure apps.