Android App Compatibility: the Complete K-to-P Guide [Video]

More Information
  • Prepare your developer station for Android development
  • Use AppCompat and its compatibility widgets to compare different Android versions
  • Build applications using material design components
  • Import and use vector graphics
  • Schedule background tasks in a compatible way
  • Build compatible notifications
  • Apply Crashlytics (Fabric) and Firebase Crashlytics
  • Use Firebase A/B Testing to experiment with compatibility fixes on specific devices audience

Android fragmentation is the most horrible thing in an Android developer's life. A new version is released each year and year after new release gains less than a 5% market share. Though Google is doing great work in providing Android developers with support libraries, there are still lots of compatibility issues.

This course will help you to make your Android apps backward-compatible and we cover common issues faced by developers in Android. We develop in Java using all its support libraries to show what they are and how they allow us to fight most compatibility issues. We build a simple application that will allow us to track car fill-ups and review gas stations.

During this course, we take a closer look at uses for compatibility libraries, walk through its most popular pivots, and skillfully resolve them. Lastly, we explore a few tools for a more effective market understanding and investigate crashes and A/B testing.

The code bundle for this video course is available at:

Style and Approach

The goal of this course is to teach software developers to be successful Android Developers. My intention is to introduce future developers to Android APIs that are actually used by real Android developers to create apps, in addition to supporting Android Lollipop (most Android support libraries actually support all the way back to Android 14 Jelly Bean). This is a Java-based course. I recommend viewers should be comfortable with the Java programming language but any knowledge in an object-oriented language and familiarity with a C-style language are also suitable. In this course we build a gas-tracking app. The app will store locations of gas stations, as well as fill-up dates, gas prices, and track the total amount of gas purchased throughout a given month. By the end of this course, students should have a reasonable understanding of Android's Data Binding, and Room Persistence Libraries will be able to access a device's location in real time.

  • Work with compatibility libraries to allow your applications to function regardless of Android versions and device specifics
  • Collect data on your applications usage, market share, and crashes to your hand on the pulse of your application
  • Use A/B testing to solve compatibility problems for specific Android versions or devices
Course Length 5 hours 20 minutes
ISBN 9781788991353
Date Of Publication 30 Nov 2018


Jonathan Davis

Jonathan Davis was first introduced to Android development during the Fall of 2013, where he took an introductory course in Mobile Device Programming at the University of Cincinnati. In this course, he learned the barebones of Android, all the way from Activities to Intents. He went on to take an Advanced Android Development course at UC.
In the spring of 2014, he performed his first real world Android development, when he co-op'd at a local engineering company in Blue Ash Ohio. Here, he began to hone his programming skills and deepen his understanding of various Android frameworks.
In the summer of 2016, he was hired full-time at the same company and took on full responsibility as both an iOS and Android developer. In addition to his day job, he also builds Android apps in his free time to teach himself various APIs, and frameworks that he doesn't get the pleasure to use during work hours. He's also a member of GDG Cincinnati and regularly attends their monthly Android dev. lectures.
He graduated in the spring of 2017, with a Bachelor's of Science degree in Information Technology. More focus was in Software Development. He also has some experience with desktop and web development.