Facebook открыла исходный код инструмента отладки Sonar

Команда Facebook объявила об открытии исходного кода отладчика Sonar для Android и iOS приложений. Возможности кроссплатформенного инструмента расширяются при помощи дополнений и позволяют разработчикам обмениваться информацией о каждом модуле проекта.

Зачем нужен Sonar?

Facebook объяснила, что при разработке сложного приложения ни один сотрудник не знает, как работает каждый модуль. Разбросанность информации мешает команде добавлять новые функции, исследовать ошибки и оптимизировать работу для повышения производительности.

Новый отладчик позиционируется как средство объединения знаний о структуре приложений. На его создание команду Facebook вдохновил Stetho, входящий в состав средств разработки Chrome. Создатели Sonar снабдили новый продукт более понятным интерфейсом, поддержкой плагинов и платформ Android и iOS.

Интерфейс Sonar

Facebook выделила три полезные возможности Sonar:

  • наглядное отображение компонентов Litho и ComponentKit для более четкого понимания иерархии проекта;
  • наложение потока запросов GraphQ против необработанных сетевых событий;
  • анализ производительности в реальном времени для быстрого устранения проблем.

Как устроен отладчик?

Sonar состоит из двух частей: настольного клиента и мобильного SDK. Первый основан на open source проектах React.js, Flow, Metro, RSocket и Yarn, второй — на Folly и RSocket. Пользователи взаимодействуют с настольным клиентом, а SDK внедряется в разрабатываемое приложение и передает данные для отладки.

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

Плагины Sonar

Для расширения возможностей Sonar необходимо написать плагин для обеих частей. Клиентская часть требует только компонент React для связи с SDK. Мобильный плагин для iOS разрабатывается на языке Swift или Objective-C, а для Android — на Java или Kotlin. Он выполняет роль серверного приложения для обработки клиентских запросов: регистрирует набор обработчиков и определяет ответы для них.

Более подробную инструкцию по использованию Sonar можно найти в документации.

Facebook часто открывает для разработчиков новые инструменты. В марте 2018 года она представила программный интерфейс Games SDK для создания игр с поддержкой С++ и Unity.

Источник: блог Facebook Code