Skip to content

Mobile Delivery - Patrick Debois - VelocityConf NYC 2015

talks 3 min read

After five years of doing apps for live TV shows – where the tech has to work during that one broadcast hour like Formula One pit stops – this is everything I learned about applying DevOps thinking to mobile delivery. My DevOps model has four phases: extend delivery to production, get monitoring and metrics flowing back, build meta-knowledge about why things work, and feed business insights into new decisions.

The mobile CI pipeline starts with finding a Mac (you cannot compile iOS anywhere else). Circle CI and Travis CI offer hosted Mac support if you do not want to manage hardware. Automating Xcode installation, including the license agreement button, is scripted. iOS code signing requires keychain management on CI – creating a keychain, importing certificates, preventing timeout locks. Build configurations (development, staging, production, App Store) switch API endpoints per environment, with visual cues so testers know which build they are running. Android has equivalent build flavors.

Distribution is where mobile diverges from web. iOS cannot sideload binaries – you need a distribution service like Crashlytics Beta that emails testers install links. Apple limits non-App Store builds to 100 device UDIDs per account. Provisioning profiles are XML files containing developer certificates and authorized devices. Developers instinctively click “Fix Certificates” in Xcode, which invalidates everything – you have to manage this centrally. The “shake to send feedback” pattern captures bug reports with full device context without forcing users through email.

Testing on real devices matters more than simulators because form factor diversity on Android is enormous. Device farms (AWS Device Farm, Sauce Labs) run your test suites across real hardware but cost $1000+ for a few hours. Calabash and Appium let you write cross-platform tests using accessibility labels rather than brittle UI element indices. Network throttling via Charles Proxy simulates slow connections during testing.

Post-launch monitoring requires three layers: real-time download tracking (Fabric, Google Analytics, AWS Mobile Analytics), on-device performance monitoring (New Relic plugin showing API timings, memory usage, and third-party service issues from the device perspective), and crash reporting with full stack traces, device state, and battery information. Device logging can be enabled per-user for deep debugging. App Store reviews get piped to Slack, but the real feedback channel is in-app live chat (Freshdesk) that captures device context automatically and lets you resolve issues before they become one-star reviews.

The elephant in the room: Apple’s 6-7 day review cycle. We mitigated this through remote configuration for settings and localizations, web views for updateable UI, PhoneGap bridges for adding functionality without code changes, and even runtime method swizzling for emergency patches. The goal: minimize the number of binary submissions while keeping the app fresh.

Watch on YouTube โ€” available on the jedi4ever channel

This summary was generated using AI based on the auto-generated transcript.

Navigate with