clarkkent - a remote reporting library for android apps

9
ClarkKent ‘A mild-mannered reporter’ library for android Gaurav Lochan Little Eye Labs Friday 6 December 13

Upload: gaurav-lochan

Post on 18-Jan-2015

443 views

Category:

Technology


0 download

DESCRIPTION

Any android app with over 10K users is bound to face errors that are hard to debug remotely. Event getting the logcat is often not enough. ClarkKent ('a mild-mannered reporter') is a library tries to solve this problem by enabling an app to report failures, events, and latencies to a service. The nice part is that the remote service is configurable, and can easily be switched - today it supports Parse, Crittercism, Crashlytics and will support Google Analytics soon. It also includes a nice Logging abstraction library.

TRANSCRIPT

Page 1: ClarkKent - A remote reporting library for android apps

ClarkKent‘A mild-mannered reporter’ library for android

Gaurav LochanLittle Eye Labs

Friday 6 December 13

Page 2: ClarkKent - A remote reporting library for android apps

Problem

Getting info from a production app

Important Events / Logs

Failures (not just crashes)

Latencies

Very useful for debugging issues, understanding app usage, and optimizing for different devices

Friday 6 December 13

Page 3: ClarkKent - A remote reporting library for android apps

Related Services

Crash Reporting - Crittercism, Crashlytics, Bugsense

Analytics - Flurry, Google Analytics, Omniture

BaaS: Parse, StackMob, etc

Provide good queries, flexible

Friday 6 December 13

Page 4: ClarkKent - A remote reporting library for android apps

Where would you see these?

Critter-cism Parse Flurry New

Relic

Errors Y Y Y N

Events N Y Y N

Latency Y Y N Y

Friday 6 December 13

Page 5: ClarkKent - A remote reporting library for android apps

ClarkKentProvides simple abstraction for ‘reportable’ objects:

Event

Failure

Latency

Configure which service to report to

Append key info for each report (deviceID, userID, timestamp, etc)

Optimized: Batch network calls, offline mode

Friday 6 December 13

Page 6: ClarkKent - A remote reporting library for android apps

Sample Code

Friday 6 December 13

Page 7: ClarkKent - A remote reporting library for android apps

RoadmapClient

Implement different reporters (Crittercism, Parse, Flurry etc)

Implement offline mode

Use Java annotations for reportables

Server

Implement a custom UI on top of Parse - better queries

Friday 6 December 13

Page 8: ClarkKent - A remote reporting library for android apps

Logger

Much more lightweight than log4j / slf4j

Wraps around android.util.log. Change log level with runtime flag

Write log to a file, support uploading log

Use varargs to prevent unnecessary string construction

Friday 6 December 13