Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Continuous Delivery in Mobile

Continuous Delivery in Mobile

Continuous Delivery in Mobile has always been a challenge in the Past, between the strict regulations of Apple's AppStore and the build tools lagging behind.

This is a look at how quickly mobile is catching up to web for continuous delivery and how you can get your team to smooth frequent releases.

I presented this talk at Houston TechFest 2016

Venkat Palivela

November 02, 2016
Tweet

More Decks by Venkat Palivela

Other Decks in Programming

Transcript

  1. Copyright 2016 by Venkat Palivela Venkat Palivela
 @venkatpalivela - Consultant

    @ ThoughtWorks - Focused on Mobile - Used to work on .NET ABOUT ME
  2. Copyright 2016 by Venkat Palivela • What is CD in

    Mobile? • How is CD Implemented? • Practical lessons learned • Where are we headed? OVERVIEW
  3. Copyright 2016 by Venkat Palivela HISTORY 1994 2001 2004 2008

    Continuous Integration Continuous Delivery Continuous Deployment Mobile Development
  4. Copyright 2016 by Venkat Palivela submit for review push 


    code App Store Dashboard iOS & Android 
 Simulators Mac Mini Mac Mini Mac Mini Mac Mini build on push test on push Device Lab CI Machines Internal Distribution Beta Testers QA Testing collect 
 feedback git ! ! ! ! ! ! ! !
  5. Copyright 2016 by Venkat Palivela BRANCHING MODELS trunk / master

    time Release 
 1.0.0 Release 
 1.0.1 Bug fixes Trunk Based Development
  6. Copyright 2016 by Venkat Palivela iOS & Android 
 CI

    Machines Exploratory Unit Tests of single methods without dependencies Integration Tests of multiple integrated method UI closer to the user closer to the developer TESTING IN MOBILE * Torsten Leibrich & Birgitta Boeckeler
  7. Copyright 2016 by Venkat Palivela iOS & Android 
 CI

    Machines Exploratory Unit Tests of single methods without dependencies Integration Tests of multiple integrated method UI $$$ slower & fewer $ faster & more closer to the user closer to the developer TESTING IN MOBILE * Torsten Leibrich & Birgitta Boeckeler
  8. Copyright 2016 by Venkat Palivela iOS & Android 
 Mac

    Mini CI Machines Unit Tests Mobile Boundary Remote Boundary Consumer (API 2) Pact (Validate) Service Provider (Customer Data) Stub! Consumer (API 3) Consumer (API 1) Mobile Boundary Remote Boundary Consumer (Billing) Pact (Validate) Service Provider (Customer Data) Consumer (Billing) Consumer (Billing) Simulate! Simulate! Simulate! API TESTING Contract 
 Tests
  9. Copyright 2016 by Venkat Palivela iOS & Android 
 Mac

    Mini CI Machines UI TESTING Cross Platform Tools: • Calabash • Appium Android Tools: • Espresso iOS Tools: • UI Automation
  10. Copyright 2016 by Venkat Palivela submit for review App Store

    test o Internal Distribution Beta Testers QA Testing collect 
 feedback ! ! ! ! DISTRIBUTION
  11. Copyright 2016 by Venkat Palivela Use feature toggles Attempt A/B

    testing Dog-food features Release daily submit for review App Store test o Internal Distribution Beta Testers QA Testing collect 
 feedback ! ! ! !
  12. Copyright 2016 by Venkat Palivela App Store iOS & Android

    
 Simulators Device Lab eta Testers QA Testing PRODUCTION SUPPORT
  13. Copyright 2016 by Venkat Palivela App Store iOS & Android

    
 Simulators Device Lab eta Testers QA Testing ANALYTICS
  14. Copyright 2016 by Venkat Palivela submit for review push 


    code App Store Dashboard iOS & Android 
 Simulators Mac Mini Mac Mini Mac Mini Mac Mini build on push test on push Device Lab CI Machines Internal Distribution Beta Testers QA Testing collect 
 feedback git ! ! ! ! ! ! ! !
  15. submit for review App Store Mac Mini Mac Mini build

    on push test on push Device Lab Beta Testers ! ! ! ! ! ! ! ! Copyright 2016 by Venkat Palivela
  16. Copyright 2016 by Venkat Palivela HURDLES Not all deploys 


    are the same “Oh, lets upgrade the networking framework” Risk hedging 
 is common “We use toggles to a lot and
 tend to keep them longer than we need to” Conventions are 
 everywhere “I know this framework does it, but I want something smaller so we’ll write one” * Richard Cook, Velocity Conference 2016