The operational side of Mobile Apps
-
Upload
mobile-delivery-days -
Category
Technology
-
view
211 -
download
0
Transcript of The operational side of Mobile Apps
The operational side of Mobile Continuous Delivery
@patrickdebois
LIVE RESULTSINTERACTION MODERATIONSTUDIO CONTROLPART OF THE SHOW
OPSDEV
http://www.jedi.be/blog/2012/05/12/codifying-devops-area-practices/
4 areas of improvement
CI Pipeline
OPSDEV
Area 1: Extend delivery to production
http://www.jedi.be/blog/2012/05/12/codifying-devops-area-practices/
Going Live
METRICScustomer focused
APP METRICS
https://fabric.io/
NETWORK ERRORSQuisque fringilla est eget arcu tindidunt
http://newrelic.com/mobile-monitoring/features
MOBILE MONITORINGit’s just another device
LOG ERRORios, android , web , backend, …
LOG DEBUGtagging log lines
LOGGING IOS != NSLOG
READ IOS LOGS
https://developer.apple.com/library/ios/documentation/System/Conceptual/ManPages_iPhoneOS/man3/asl.3.html
READ LOGS ANDROID
http://stackoverflow.com/questions/12692103/read-logcat-programmatically-within-application
TWITTER FEEDBACKwatch social media
RATINGSuser feedback android
APPSTOREautomated feedback
https://launchkit.io/reviews
CAPTURE FEEDBACKbefore they tell it in the App Store
FRESHDESK
http://freshdesk.com/
CONVERSATIONbecause email sucks
NOTIFICATIONSinform the users
https://appbot.co/appbotx/getstarted
SUPPORT FAQdon’t repeat yourself
REVIEW PROMPTShappy customer reviews
INTERACTIVE DEVICE
VERSION DRIFT
https://github.com/ArtSabintsev/Harpy
TEAM CHANNEL ++communicate all the things
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
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/
AppstoreApproval
REVIEW TIMES
EXPEDITEuse with care https://developer.apple.com/contact/app-store/?topic=expedite
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)
REMOTE CONFIGchange settings with new submit to App Store
https://github.com/gangverk/Android-RemoteConfighttps://github.com/mattt/GroundControl
UI CONTROLcontrol all text & images from the backend
CROSSWALKQuisque fringilla est eget arcu tindidunt
https://crosswalk-project.org/
JOCKEY.JS https://github.com/tcoulter/jockeyjs
CORDOVA/PHONEGAP
http://docs.phonegap.com/en/3.5.0/guide_platforms_ios_webview.md.html#iOS%20WebViews
https://facebook.github.io/react-native/
REMOTE BUNDLEhttps://github.com/sirnicolaz/NMRemoteBundle
Compile Xib & Storyboard
Image from Remote Bundle
Storyboard from Remote Bundle
XIB from Remote Bundle
DETAIL CRASH
CRASH REPORTSlink to user ID
LIVE PATCHswizzling
https://www.rollout.io/http://nshipster.com/method-swizzling/
ALL CHANNELSgo where your users are
https://www.appboy.com/products
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/
FLIGHTRECORDER
http://flightrecorder.io/
FLOWsee what features are used
RANKINGkeep track
https://www.appannie.com/
RETENTIONwho returns?
APP FIGURES
A/B TESTINGscience not gut feeling
http://apptimize.com/product
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/