Как стать автором
Обновить

Как добавить новый функционал в вашу любимую идеешку

Уровень сложностиСредний

Привет, Хабр! 

Хочу поведать о том, как я добавил новый функционал в Android Studio (спойлер, все то же самое работает в IntelliJ IDEA, PyCharm, CLion итд), и это ускорило мою жизнь в разы, а глаз почти что перестал дергаться.

Введение

Недавно, работая над одним из своих проектов в Android Studio, я осознал, что многие мои действия повторяются слишком часто.

Так, у меня была задача добавить новый UI элемент, который бы находился в самом конце списка. Соответственно, чтобы увидеть этот элемент, мне приходилось проматывать весь список вручную. А поскольку список был достаточно большим, мне приходилось тратить на это с десяток секунд. В какой-то момент мне это делать надоело.

Тогда я загуглил adb команду, которая делала бы это действие за меня.
Следующая команда помогла ускорить скролл вниз в несколько раз:

adb shell input swipe 500 1100 500 -30000

Численные параметры просто обозначают начальные и конечные точки по горизонтали и вертикали, по которым будет производиться скролл. 

И получается, на этом этапе я просто открываю терминал и вызываю эту команду для супер быстрого скролла вниз.

Спустя время я придумал еще несколько команд для разных задач.
И здесь пришла другая проблема - мне постоянно приходилось держать терминал открытым. К тому же помнить, какая команда для чего нужна, мне не хотелось (нажимать на клавишу ↑ в терминале мне тоже стало неудобно из-за количества используемых команд).

Тогда я подумал: а что, если добавить в студию новый функционал? Писать плагин для студии мне показалось слишком долгим. Но этого оказалось и не надо. Я нашел раздел настроек, где можно добавить новый функционал, не потратив почти никакого времени.

External Tools

Сперва, надо добавить external tool в настройках вашей идеешки. Как я уже упоминал ранее, это можно сделать в любой среде разработки от JetBrains.

Для этого идем в Settings → Tools → External Tools.
Здесь просто нажимаем на плюсик и добавляем свою программу для запуска. 
В моем случае - это adb. В качестве аргументов я прописываю shell input swipe 500 1100 500 -30000
Также можно добавить какое-нибудь имя, описание. 

Окно настроек External Tools
Окно настроек External Tools

Подробнее обо всех настройках можно почитать здесь.

Половина дела сделана.

Customize toolbars

Теперь можно добавить саму кнопку в студию. Мне понравилось место рядом с кнопкой выбора девайса. Где-нибудь на этом тулбаре тыкаем ПКМ → Customize Toolbar:

Верхний
Верхний Toolbar

Находим нужное место для вставки новой кнопки. Для удобства можно добавить сепаратор. Нажимаем на + → Add Action:

Кастомизация тулбара
Кастомизация тулбара

Вбиваем в поиск external tool и находим нашу новую тулу. Также можно выбрать иконку, чтобы не путаться среди добавленных кнопок. Нажимаем OK:

Добавление своей тулы
Добавление своей тулы

И вуаля: у нас в студии появилась новая кнопка. Теперь при нажатии на нее, на подключенном устройстве произойдет очень быстрый скролл вниз

Новая кнопка на тулбаре
Новая кнопка на тулбаре

Другие места вызова external tool

Если не хочется добавлять кнопки в студию, но все-таки хочется использовать сторонние скрипты, то есть следующие варианты использования.

Назначить комбинацию клавиш на новую тулу: Settings → Keymap

Добавление комбинации клавиш
Добавление комбинации клавиш

Запустить тулу через Tools menu:

Выбор тулы в Tools menu
Выбор тулы в Tools menu

Или прямо в редакторе можно нажать ПКМ:

Выбор тулы в редакторе
Выбор тулы в редакторе

Заключение

Таким образом в External Tools можно добавлять какие угодно скрипты / программы, например, помимо использования adb, я написал несколько python и batch скриптов. 

В целом можно придумать много случаев из жизни, которые хотелось бы оптимизировать, но руки никак не доходили.

Для рабочего проекта я добавил больше 10 новых кнопок, среди которых скролл вверх, очистка базы данных приложения, очистка файловой системы приложения, force stop приложения. Это ускорило мою разработку в разы, чему я несомненно рад

Как выглядит мой тулбар в рабочем проекта
Как выглядит мой тулбар в рабочем проекте

Надеюсь, эта статья оказалась для вас полезной, и вы модифицируете свою любимую идеешку под ваши нужды :)

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.