TiConf NY - Xavier Lacot - May 10th, 2014
TiConf NY - Xavier Lacot - May 10th, 2014
It saved us and our clients lot of time and money
Running an app in a reliable way, always and accross all devices, is a hard job
Even with experience, you will sometimes forget about these rules.
How many customers use my apps?
Do the userbase inscrease or decrease in time?
How do the users behave?
Can I optimize it (and earn more money/sell more)?
Which parts of my app are slow?
Do some parts of my app crash (sometimes)?
At which frequency?
What are details about crashes?
var GA = require('analytics.google');
var tracker = GA.getTracker(token);
tracker.trackScreen('homepage');
tracker.trackScreen('news');
tracker.trackEvent({
category: 'user_account',
action: 'upload_profile',
label: 'success'
});
// enable Flurry analytics
var flurry = require('sg.flurry');
flurry.secureTransport(true);
flurry.logUncaughtExceptions(true);
flurry.crashReportingEnabled(true);
flurry.startSession('WVCDT3VDPJ6BRCJ6GJYS');
// usage
flurry.logEvent('hello', {world: 'TiConf'});
flurry.logError('unknown error', 'no crash');
// some report about the user
flurry.setUserID(user.id);
flurry.setAge(user.age);
// flurry.setGender(flurry.MALE);
// flurry.setLatitude(latitude, longitude);
flurry.logPageView();
Ti.App.Properties.setString('LookbackAppToken', 'your_app_token');
var Lookback = require('com.featherdirect.lookback');
Lookback.enableShakeToRecord();
Lookback.disableShakeToRecord();
// etc.
var newrelic = require('ti.newrelic');
newrelic.start(newrelicToken);
var startNewRelic = function(newrelicToken) {
var version = Titanium.Platform.version.split(".");
var major = parseInt(version[0], 10);
if (!OS_IOS || major >= 7) {
var newrelic = require('ti.newrelic');
newrelic.start(newrelicToken);
}
};
var crittercism = require("in.shivakumars.crittercism");
crittercism.initializeCrittercism({
apiKey : "HERE_YOUR_KEY",
includeVersionName : false,
includeVersionCode : false,
userName : "xavier"
});
Basic | Professional | Pro Plus | |
---|---|---|---|
Price | Free | $1200/year | $6000/year |
Crash details | |||
Live graphs | |||
Basic perf summary | |||
Crash trends | |||
Alerts | |||
Geolocation | |||
Data retention (perf / errors) | 1 / 30 days | 7 / 90 days | unlimited |
* Limited to 10K active users/month. Larger plans → Price increase
var bugsense = require('com.droisys.bugsense');
bugsense.setup(bugsenseKey);
[INFO] TiApplication: (main) [0,0] checkpoint, app created.
[INFO] TiApplication: (main) [79,79] Titanium 3.2.2 (2014/03/05 12:22 96e9a07)
[INFO] TiRootActivity: (main) [0,0] checkpoint, on root activity create, savedInstanceState: null
[INFO] BugSenseHandler: Registering default exceptions handler
[INFO] homepage
How to reduce the bug-report / new delivery process?
How to allow testers to be efficient?
var hockeyapp = require('nl.rebelic.hockeyapp');
hockeyapp.start('');