Continuous Delivery for Android Apps
Submitted by Leena S N (@snleena) on Tuesday, 26 July 2016
Crisp talk (15 minutes)
Continuous delivery is a software development discipline where you build software in such a way that it is releasable at any time. The idea is to integrate and deploy continuously so that you get early and frequent feedback.
Because of the approval process that exists for releasing Android apps, Continuous Delivery is not considered easy for Android apps as compared to web application deployments. And it’s also assumed that not much tools are available to enable Continuous Delivery.
Yes, its still not instant update to the app, but still things are better now than how it has been in the past. Google is making changes to the approval process and also started API support so that we can automate the release process end to end. Many tools also exist for creating a deployment pipeline for Android applications.
This talks gives an overview of tools and techniques that exists for continuous delivery/deployment of android applications through automated testing, deploying and releasing of the apps. The major concepts that are covered are:
- Unit Testing using Robolectric
- Techniques for Handling Feature Toggles
- Automated Testing using Appium
- Cross Device Testing using Amazon Device Farm, Testdroid, Firebase Testlab etc.
- Continuous Integration using Cloud Tools such as CircleCI or Wercker
- Beta/Alpha testing using Tools such as Beta, Google Private Test Groups
- Various tools from Fastlane including the tool for automated uploads to Playstore
- And the standard Java static analyzer tools such as PMD, Checkstyle, Findbugs etc to help the technical debt low