+ All Categories
Home > Mobile > Effortless network response logging on Android

Effortless network response logging on Android

Date post: 14-Apr-2017
Category:
Upload: simon-percic
View: 73 times
Download: 0 times
Share this document with a friend
18
Effortless network response logging on Android Simon Perčič, senior Android developer Thursday, April 21st, 2016 @ 17:00
Transcript
Page 1: Effortless network response logging on Android

Effortless network response logging on Android

Simon Perčič, senior Android developer

Thursday, April 21st, 2016 @ 17:00

Page 2: Effortless network response logging on Android

http://square.github.io/okhttp/

Networking on Android

http://square.github.io/retrofit/

Page 3: Effortless network response logging on Android

Retrofit 1

Page 4: Effortless network response logging on Android

Retrofit 2

Page 5: Effortless network response logging on Android

Retrofit 2

Logging: Retrofit → OkHttp’s interceptors

Page 6: Effortless network response logging on Android

Retrofit 2

Page 7: Effortless network response logging on Android

How does the log output look like?

JSON formatter / JSON viewer

Page 8: Effortless network response logging on Android

OkLog

https://github.com/simonpercic/OkLog

Page 9: Effortless network response logging on Android

OkLog

Page 10: Effortless network response logging on Android

OkLog

Share url with coworkers.

(Usually REST API developers)

“OkLog is like git blame, but for network requests”

Page 11: Effortless network response logging on Android

How does it work?

Response string from OkHttp via application-level interceptor

gzip

Base64 encode

Create url and write string to log (w/ Timber if present)

OkLog

Get string from url param

Base64 decode

un-gzip

Return string to browser, pretty-print if JSON

ResponseEcho

Page 12: Effortless network response logging on Android

Ok, how do I use it?

1.

2.

3.

Page 13: Effortless network response logging on Android

Known limitations

- Android’s logging system: limited line length ~4k chars

- on some very long responses, 4k chars is not enough, even if gzipped

- if using Timber, url is split into multiple lines

...everything works fine for the majority of cases

Page 14: Effortless network response logging on Android

Non-logging approaches

Facebook’s Stetho

http://facebook.github.io/stetho/

Page 15: Effortless network response logging on Android

Non-logging approaches

Charles Proxy

https://www.charlesproxy.com

Page 16: Effortless network response logging on Android

Which one should you use?

- No silver bullet that would cover all cases

- Use side-by-side, depending on the use case you want to cover

Page 17: Effortless network response logging on Android

Logging in production

“every time you log in production, a puppy dies.”- Jake Wharton, Timber readme

(https://github.com/JakeWharton/timber)

http://developer.android.com/tools/publishing/preparing.html#publishing-configure

Page 18: Effortless network response logging on Android

Questions?

@simonpercic @simonpercicsimonpercic


Recommended