the operational side of mobile apps
TRANSCRIPT
![Page 1: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/1.jpg)
The operational side of Mobile Continuous Delivery
@patrickdebois
![Page 2: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/2.jpg)
LIVE RESULTSINTERACTION MODERATIONSTUDIO CONTROLPART OF THE SHOW
![Page 3: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/3.jpg)
OPSDEV
http://www.jedi.be/blog/2012/05/12/codifying-devops-area-practices/
4 areas of improvement
![Page 4: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/4.jpg)
CI Pipeline
![Page 5: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/5.jpg)
OPSDEV
Area 1: Extend delivery to production
http://www.jedi.be/blog/2012/05/12/codifying-devops-area-practices/
![Page 6: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/6.jpg)
Going Live
![Page 7: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/7.jpg)
METRICScustomer focused
![Page 8: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/8.jpg)
APP METRICS
https://fabric.io/
![Page 9: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/9.jpg)
NETWORK ERRORSQuisque fringilla est eget arcu tindidunt
http://newrelic.com/mobile-monitoring/features
![Page 10: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/10.jpg)
MOBILE MONITORINGit’s just another device
![Page 11: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/11.jpg)
LOG ERRORios, android , web , backend, …
![Page 12: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/12.jpg)
LOG DEBUGtagging log lines
![Page 13: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/13.jpg)
LOGGING IOS != NSLOG
![Page 14: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/14.jpg)
READ IOS LOGS
https://developer.apple.com/library/ios/documentation/System/Conceptual/ManPages_iPhoneOS/man3/asl.3.html
![Page 15: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/15.jpg)
READ LOGS ANDROID
http://stackoverflow.com/questions/12692103/read-logcat-programmatically-within-application
![Page 16: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/16.jpg)
TWITTER FEEDBACKwatch social media
![Page 17: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/17.jpg)
RATINGSuser feedback android
![Page 18: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/18.jpg)
APPSTOREautomated feedback
https://launchkit.io/reviews
![Page 19: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/19.jpg)
CAPTURE FEEDBACKbefore they tell it in the App Store
![Page 20: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/20.jpg)
FRESHDESK
http://freshdesk.com/
![Page 21: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/21.jpg)
CONVERSATIONbecause email sucks
![Page 22: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/22.jpg)
NOTIFICATIONSinform the users
https://appbot.co/appbotx/getstarted
![Page 23: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/23.jpg)
SUPPORT FAQdon’t repeat yourself
![Page 24: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/24.jpg)
REVIEW PROMPTShappy customer reviews
![Page 25: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/25.jpg)
INTERACTIVE DEVICE
![Page 26: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/26.jpg)
VERSION DRIFT
https://github.com/ArtSabintsev/Harpy
![Page 27: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/27.jpg)
TEAM CHANNEL ++communicate all the things
![Page 28: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/28.jpg)
END USER
APP APPSTORE
Social Media
SUPPORT
AnonymousPublic
User LoginNo device details
User LoginAll device details
Logging
BACKEND
FEEDBACK
FAQ/Ticket system
Record both App & Backend Activity
Correlate JSON Logs using e-mail, device-id, customer-id
CONFIG
FF_ENABLE_DEBUG(enable debug if needed)
IN APPFeedback
FF_RECORD_SESSION(capture more visual feedback)
FF_USE_STATIC_FAQ(switch to just a faq page)
'Live'-Chat
Re-directHappy Customers
Fetch Settings(per user/group/device)
+- Low Memory- API Errors- Warnings- Device Logs
FF_DEBUG_LEVEL(increase debug if needed)
Metrics
Crash Reports
WEBSITE
![Page 29: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/29.jpg)
OPSDEV
Area 2: Extend operations feedback to project
Area 1: Extend delivery to production
http://www.jedi.be/blog/2012/05/12/codifying-devops-area-practices/
![Page 30: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/30.jpg)
AppstoreApproval
![Page 31: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/31.jpg)
REVIEW TIMES
![Page 32: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/32.jpg)
EXPEDITEuse with care https://developer.apple.com/contact/app-store/?topic=expedite
![Page 33: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/33.jpg)
IOSAPP
USEFEATURE FLAGS
No submit needed(if it does not change the app purpose drastically)
SWIZZLINGREMOTE NSBUNDLEUSE WEBVIEW
Pre-defined behaviorchange
Dynamic behaviorchange
= hooking into functionsand it's response
Download Contentto local Documents
Load Assets from Local Bundle
ImagesLocalesSettings
XIB/NIBS
Also possible to embedCordova Webview
Use bridge to communicatewith native
REMOTECONTENT
Expect internet connectivity
Cache Image Assets
OpenGL issues
Notify users of newapp version
TO SUBMIT OR NOT TO SUBMIT
Submit(code changes & extended new app behaviour)
![Page 34: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/34.jpg)
![Page 35: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/35.jpg)
REMOTE CONFIGchange settings with new submit to App Store
https://github.com/gangverk/Android-RemoteConfighttps://github.com/mattt/GroundControl
![Page 37: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/37.jpg)
UI CONTROLcontrol all text & images from the backend
![Page 38: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/38.jpg)
CROSSWALKQuisque fringilla est eget arcu tindidunt
https://crosswalk-project.org/
![Page 39: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/39.jpg)
JOCKEY.JS https://github.com/tcoulter/jockeyjs
![Page 40: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/40.jpg)
CORDOVA/PHONEGAP
http://docs.phonegap.com/en/3.5.0/guide_platforms_ios_webview.md.html#iOS%20WebViews
![Page 41: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/41.jpg)
https://facebook.github.io/react-native/
![Page 42: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/42.jpg)
REMOTE BUNDLEhttps://github.com/sirnicolaz/NMRemoteBundle
Compile Xib & Storyboard
Image from Remote Bundle
Storyboard from Remote Bundle
XIB from Remote Bundle
![Page 43: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/43.jpg)
DETAIL CRASH
![Page 44: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/44.jpg)
CRASH REPORTSlink to user ID
![Page 45: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/45.jpg)
LIVE PATCHswizzling
https://www.rollout.io/http://nshipster.com/method-swizzling/
![Page 46: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/46.jpg)
ALL CHANNELSgo where your users are
https://www.appboy.com/products
![Page 47: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/47.jpg)
OPSDEV
Area 2: Extend operations feedback to project
Area 1: Extend delivery to production
Area 3: Embed Projectknowledge into Operations
http://www.jedi.be/blog/2012/05/12/codifying-devops-area-practices/
![Page 50: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/50.jpg)
FLIGHTRECORDER
http://flightrecorder.io/
![Page 51: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/51.jpg)
FLOWsee what features are used
![Page 52: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/52.jpg)
RANKINGkeep track
https://www.appannie.com/
![Page 53: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/53.jpg)
RETENTIONwho returns?
![Page 54: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/54.jpg)
APP FIGURES
![Page 55: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/55.jpg)
A/B TESTINGscience not gut feeling
http://apptimize.com/product
![Page 56: The operational side of Mobile Apps](https://reader031.vdocuments.mx/reader031/viewer/2022022412/58f0c3271a28ab4d0b8b45d9/html5/thumbnails/56.jpg)
OPSDEV
Area 4: Embed Operations knowledge into Project
Area 2: Extend operations feedback to project
Area 1: Extend delivery to production
Area 3: Embed Projectknowledge into Operations
http://www.jedi.be/blog/2012/05/12/codifying-devops-area-practices/