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