Site icon AppTractor

Упрощение отладки Android-приложений с помощью Flipper

Отладка — важнейший аспект разработки под Android. Хотя такие инструменты, как Logcat и Debugger, часто являются оптимальными вариантами, обмен логами или сетевыми вызовами с командой QA может быть затруднен. Что, если бы существовал более простой и эффективный способ подойти к этому процессу? Появился Flipper — инструмент, призванный упростить эти процессы и вывести отладку на новый уровень эффективности.

Flipper состоит из двух частей. Десктопное приложение, в котором можно увидеть всю отладочную информацию, и SDK, который вы включаете в свое приложение. Flipper использует систему плагинов для передачи данных из приложения на декстоп. Он позволяет писать собственные плагины или предлагает множество встроенных дополнений, в том числе:

Далее я покажу, как настроить Flipper на Android.

Загрузка приложения Flipper Desktop

Перейдите на официальный сайт, чтобы загрузить приложение Flipper. После установки не забудьте указать путь к Android SDK в настройках, иначе оно не будет работать :)

Настройки можно найти в меню More -> Settings.

В левой части интерфейса приложения вы найдете список плагинов. Они неактивны, но станут доступны после подключения приложения. Об этом расскажем в следующем разделе.

Включение Flipper в проект Android Studio

Начнем с того, что перейдем в файл build.gradle и включим в него зависимости Flipper:

implementation("com.facebook.flipper:flipper:0.210.0")
implementation("com.facebook.soloader:soloader:0.10.5")

Для простоты в этом руководстве я использовал ‘implementation’ как для отладочных, так и для релизных сборок. Однако для вашего производственного приложения следует выбрать ‘debugImplementation’ и разделить код инициализации Flipper для debug- и release-вариантов сборки. Таким образом, Flipper не будет включен в релизные сборки. Вот пример приложения, в котором можно проверить, как это реализовать.

Далее инициализируем Flipper в классе Application:

class MyApp : Application() {
  override fun onCreate() {
    super.onCreate()
    if (BuildConfig.DEBUG) {
      initFlipper()
    }
  }

  private fun initFlipper() {
    SoLoader.init(this, false)
    val client = AndroidFlipperClient.getInstance(this)
    client.start()
  }
}

После запуска приложения вы должны увидеть, что оно подключено к десктопному приложению и что плагин Logs Plugin включен и уже что-то выводит! Это происходит потому, что Logs Plugin включается автоматически, без дополнительной настройки.

Работа плагина в Flipper

И это все, что касается инициализации! Дальше я покажу пример добавления встроенного плагина.

Включение сетевого плагина

Плагины Flipper Plugins поставляются в виде отдельных зависимостей, поэтому мы должны добавить сетевой плагин в сборку gradle отдельно.

implementation("com.facebook.flipper:flipper-network-plugin:0.201.0")

Далее мы обновляем функцию initFlipper, чтобы включить в нее сетевой плагин:

private fun initFlipper() {
  SoLoader.init(this, false)
  val networkPlugin = NetworkFlipperPlugin()
  AndroidFlipperClient.getInstance(this).run {
    addPlugin(networkPlugin)
    start()
  }
}

На данный момент Flipper поддерживает только OkHttp и Retrofit. Для просмотра сетевых логов необходимо добавить FlipperOkhttpInterceptor к OkHttpClient.

Если вы используете другой HTTP-клиент, то для создания отчетов о сетевых вызовах можно напрямую использовать следующие функции плагина Network:

networkPlugin.reportRequest(RequestInfo)
networkPlugin.reportResponse(ResponseInfo)

На этом работа с Network Plugin завершена. Запустив приложение и выполнив несколько запросов с помощью HTTP-клиента, вы должны увидеть сетевые логи в десктопном приложении.

Аналогичным образом добавляются и другие встроенные плагины. Инструкции по плагину Crash Reporter и другим можно найти здесь.

Вот и все для сегодняшнего руководства по Flipper! Надеюсь, это руководство натолкнет вас на новые идеи по улучшению рабочих процессов отладки.

Источник

Exit mobile version