BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News Patrick Debois Shares His Experiences On Mobile Continuous Delivery

Patrick Debois Shares His Experiences On Mobile Continuous Delivery

Patrick Debois, founder of the DevOpsDays conferences and leading light of the DevOps movement, has been working on the "mobile continuous delivery" space for the past year. He recently shared what he has been learning at the Velocity Europe conference.

The presentation is full of tools, applications and services that touch every aspect of the software development cycle. Debois broke down the talk into four parts: building a continuous integration pipeline; going live; App Store approval; and improve the business.

Mobile continuous integration (CI) has the same goal as its web counterpart - reliably build and test an application - but offers specific challenges, such as app signing or testing on hundreds of different devices. Debois shared tips and tricks as well as scripts and tools for a complete CI pipeline. Going live was all about logging, metrics, crash reports, managing app reviews and handling production issues. App Store approval is arguably the most challenging aspect of mobile development, from a continuous delivery perspective. Debois listed several techniques and supporting tools to avoid resubmitting an app as much as possible. Loading remote content, extensive use of feature flags, hybrid apps and method swizzling - to enable live patching - should all be part of the mobile developer's arsenal. Finally, improving the business means learning from real usage patterns to understand how users use your apps, monitoring user adoption and doing extensive A/B testing.

InfoQ talked with Debois to learn more about his experiences.

InfoQ: Your talk is a treasure trove of apps and tools! How long did it take for you to build a Mobile Continuous Delivery pipeline?

Patrick Debois: Thank you for the kind feedback! We've started with the pipeline in Q3 of 2014.

InfoQ: What were the main difficulties you had in building the pipeline?

Patrick Debois: A lot of the mobile documentation on the web is focused on the development side. This totally makes sense because a lot of the coding is done by independent developers, who typically work alone. Typically they live in their IDE and can easily upload their final artifact to the stores. The result is that the parts that the IDE takes care of is not that well documented as it gets abstracted away. When building the pipeline you search for the automated counterparts and typically that requires you to see under the hood. Often these interfaces are undocumented and even worse, not meant for public use.

InfoQ: Between the iOS and Android ecosystems, which one presents the most hurdles to Continuous Delivery? Is it possible to build pipelines with the same quality for both?

Patrick Debois: Initially iOS was harder to setup because of above mentioned lack of clear documentation. But once you get the correct tools in place (which took me over a year to collect for all the smaller issues), the quality achieved can be of the same level. The hardest part of Continuous Delivery is the testing part on real devices. There are now many services that take care of this, but it's still a slow process. Because the eco-system of Android is so diverse (screen sizes, brand differences, capabilities), we found it takes a factor 1.5 compared iOS for testing. Many issues stabilized once we started bundling our own version of Chrome with the Hybrid apps.

A significant pain of course is the gated release by the Apple App Store. During the test phase we have no issues with that because we use ad hoc builds and are able to get the fast feedback. We found that a lot of the architectural work on iOS is to work around this manual labor process: we log & monitor the app itself on the devices too and use feature flags, webviews and techniques like swizzling to allow us to a) get more visibility and b) react much faster to issues in production.

InfoQ: If you had to choose the most important tools, which ones would you choose and why?

Patrick Debois: I think the toolset from Twitter/Fabric has been really instrumental: they make it easy to distribute your app to a test audience and give you real-time insights with Analytics. For me it shows that Fabric is committed to the space because they recently joined up with OSS project https://fastlane.tools/. This project has been a tremendous help to the iOS automation community by taking care of many undocumented APIs.

InfoQ: What is you advice for those of us who are starting a Continuous Delivery initiative for mobile?

Patrick Debois: Start small: we found it was more important to have the latest versions to the product owners vs having internal tests. The fact that everybody can see the latest state on each commit has provided us an insight if we were building the right thing and not just the right way.

Also don't focus on the app CI pipeline only ; integrating logging & metrics in the app gets you an insight on how it behaves in a real world, not just on simulators. As Doug Sillars pointed out at Velocityconf - nothing can get your users more frustrated as a bad response time and battery drain.

Rate this Article

Adoption
Style

BT