ClarkKent - A remote reporting library for android apps

Preview:

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.

Citation preview

ClarkKent‘A mild-mannered reporter’ library for android

Gaurav LochanLittle Eye Labs

Friday 6 December 13

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

Related Services

Crash Reporting - Crittercism, Crashlytics, Bugsense

Analytics - Flurry, Google Analytics, Omniture

BaaS: Parse, StackMob, etc

Provide good queries, flexible

Friday 6 December 13

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

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

Sample Code

Friday 6 December 13

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

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