Now let’s explore 🕵️‍♂️ what are the options available today.

Overview:

Flipper is a library from Facebook that is not limited to monitoring network calls; it also offers a lot of other debugging tools, such as viewing databases in the app, shared preferences, checking the XML layout, and much more. However, for today, we’ll focus only on its capabilities in monitoring API calls.

How to use:

To get started, begin by adding the following dependencies into your build.gradle file:

Note the release implementation is a no-op and it should be there so we don’t have to initialize Flipper only in debug builds.

Then we need to initialize Flipper library and let it know in which plugins (features of Flipper) we are interested in.

This initialization is done in the Application class to make sure it is done only once (as this might slow down the start-up time of the application one could move this to a later step after onCreate() )

FlipperModule is an object class for simplifying Dependency Injection

Note that In a real world example this would be a module providing the dependency using Dagger, Koin or Anvil.

Now we need to add an interceptor to instance of OkHttpClient:

We need to create an instance of FlipperOkhttpInterceptor and add it as an interceptor to OkHttpClient. FlipperOkhttpInterceptor needs an instance of NetworkFlipperPlugin which we created above (Note that same instance needs to be passed!)

That’s it! Now we need to head to and download a Flipper client matching our system, After downloading it we need to set it up and help it to find where adb is in our system. after doing so if you run the app on a emulator or a device we can see the following in the Flipper client:

Demonstrating Flipper’s network plugin

Now we can:

  • Inspect all properties of a request and response
  • Share cURL command with the backend team
  • Copy the response to be used for unit tests
  • And much more!

✅ Request and responses can deeply be inspected. Since this is happening on your machine, it’s easier to navigate, debug and copy/paste headers, etc.

✅ Could also be used in an iOS application

❌ An external app is needed for inspection

❌ Setting up Flipper can be cumbersome sometimes (especially on Windows machines)

❌ Flipper libraries add several KB to the application size in debug mode

For more information check Flipper’s Github page:

Source link