Список фишек Android Studio для ускорения разработки

3377bbc29c6eb326ddb1f4146da63bd3.jpeg

Привет! Меня зовут Стефан, я занимаюсь Android-разработкой в KTS.

Android-разработчики каждый день сталкиваются с своим основным инструментом — Android Studio. 

Это очень удобный инструмент с большим спектром возможностей, но зачастую разработчики не используют их все. В этой статье я попытаюсь это исправить и расскажу об интересных фишках этой IDE, которые сам использую каждый день. Не обо всех, но зато самых базовых, которые позволят увеличить вашу продуктивность. 

❗️ Обратите внимание: большинство советов универсальны и не завязаны именно на AS. Их могут использовать бэкендеры в PyCharm, фронтендеры на WebStorm, иосеры на AppCode.

Опытные разработчики, скорее всего, знают о некоторых из этих возможностей:

Хоткеи 

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

Важно понимать, что хоткеи зависят от раскладки студии (keymap). Я просто покажу вам, как настроить каждый, а на любое сочетание клавиш найдётся свой любитель. 

❗️ Обратите внимание: хоткеи различаются в зависимости от OS, поэтому важнее знать, где их посмотреть и настроить. Это делается в этом окне:

Preferences → вводим в поиск Preferences → вводим в поиск «keymap»

Общие действия

Открыть настройки студии

d9922e31aa473e094398ded852d938c4.png

Открыть недавние файлы

153f76842acbdd898f90b9315ef51f20.png

Сохранить изменения в файлах

c604d55422624b741fb7c110be0029d7.png

Вставка с учетом буфера обмена

2f34303e23d0fed489923409971d3a6f.png

Оптимизировать импорты

03f211c29ef60e5bb9142880450147ad.png

Удаляет неиспользуемые импорты, сортирует импорты в соответствии code-style проекта. 

Установить его можно в настройках студии:
Preferences → Editor → Code Style → Выбираем конкретный язык → Шестерёнка ⚙️ возле поля Scheme → Import Scheme

39674e46355374bac5ac79e9a6ac822e.png

Собрать проект и запустить на устройстве

3d5f7eed361c5b8b13d009443eccd312.png

Собрать проект и запустить в debug-режиме на устройстве

a4e22046eaf422a6571405cc556702d3.png

Зааттачить debugger к уже запущенному процессу

55b3a4c87e86d9f9fbeb6831b5297b42.png

Просто собрать проект

3bb44bf7a6cf92a0a659fff9f9ca8b0f.png

Закрыть текущую вкладку с файлом:

43c1a72ba3772b28c8ed86da19722573.png

Закрыть активное окно с инструментами

f15635b6701b67794a3e58380a6339b5.png

Позволяет закрыть активное окно, аналогично клику на кнопку «свернуть» в окне. Я, к примеру, так закрываю Logcat:

ca0e6397ef1f0427d8dc2e998209a19a.png

Навигация

Навигация по изменениям в индексе Git

cbcf8182a764b96029d0e8b73b391846.png5e44ba3d42c98d71ce2d4fb890c7d2bc.png

Позволяет навигироваться на те строчки кода, которые попали в индекс Git в рамках файла. Также помимо навигации показывает дифф:

58b85a8796848f36eff7fce0fffe3e7c.png

Навигация по методам в файле

1ed4ad615a9f5f0b0965acc0f745db18.png8f9ea287c77ebe3798e87acb220fa463.png

Навигация по файлам

6f2a242a496515c12867fa549af6446b.png30ce4b52f6179db0af5dcb7f0492e2c9.png

Позволяет навигироваться по последним открытым файлам, как вперёд, так и назад. Так вам не приходится переключать одну руку на мышку/трекпад, руки остаются на клавиатуре

Поиск по всем действиям:

e82752104e7f07b2752cffcec1a97635.png

Позволяет искать по названиям файлов, классов, действиям, Git — по commit-хэшу, названиям веток, тэгам и commit message:

64e69eab600c11b337ed5c4dc3d122c1.png

Навигация по вкладкам

На предыдущую вкладку

88d4a16ac8d28ab7143ec7811b0f817f.png

На следующую вкладку

b14589764fb4155e4045df464132c924.png

Показать файл в…

7cc99e9da37fea50d1952816fd5f42d7.png

Очень мощный шорткат, использую его в KMM/KMP проектах, позволяет:

  • Показать файл в:

  • Показать структуру файла

  • Navigation bar

  • Открыть в Finder/Проводнике

  • Показать структуру проекта

615c92fb4170793e6805e86b64af61dd.jpg

Работа с кодом

Отформатировать код

3abaa5af8ae419ea6918b21604d572a8.png

Отформатировать файл:

7577cf48f766e72d85f5925028bb9840.png

Почти тоже самое, что форматирование кода, только более гибкое, так как появляется контекстное меню, в котором можно задать параметры форматирования:

f3984d7f503853c54f0ce70ebbe01f76.png

Поменять строчки кода местами

d46201383d7436fc4ed43aec670b9cae.pnge680cef34f0777b3cfbbbd162e7240a9.png

Меняет строчки кода местами. Удобно, когда нужно поменять параметры функции/метода/конструктора.

Поменять выражения местами:

b3d99676aca7ed2e82f685d2a075634c.png88884e0df3777d95b021967c826b3780.png

В отличие от свапа строчек местами, этот хоткей позволяет менять местами тела целых методов, объявления классов и top-lvl переменных и функций, параметров функции/метода/конструктора —, но делает это умно и сам подставляет запятые в нужных местах. Также нельзя выйти за пределы сигнатуры метода, если меняете параметры метода местами.

Посмотреть быстрое объявление класса/метода/переменной

d7d8b96155ececd35fd301c23cd0487f.png9160e305d5d2bbae10e223cdb453d94d.png

Добавить/удалить каретку

d0e68e9df0d4f34686118e2ad5f5e76b.png

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

Переместить каретку к следующему/предыдущему слову:

7f5b9e98532f33ae98b2454769fb95ca.png9b172704d7fb02b1bf27d2991f06afa2.png

Выделить слово

ee7320abf63254283555b8874f18077c.png6a6c391d49c6e7362e5522770e8b93e0.png

Переместить каретку к началу/концу строки:

7279926de2005b733d8206ef449e9010.png3c8880d6e205f77cb9cf03e7a267b2ef.png

Выделить строку:

85c13970bdb1859dbb9338702f447fcf.pngdc3e39ef94d4c9d0657f386a77ddecf5.png

Расширить выделение текста

f5d46bbd152c71e3affd48ee79c5406d.png

Клонировать каретку над/под текущей кареткой:

6dedf0e02142726b8a6bb6a5b73252bb.png

Позволяет клонировать каретку над строчками выше/ниже текущей каретки. Это тоже удобно при копировании/перемещении параметров.

Работа с GIT

Rollback изменений (в этом примере будем использовать Git):

22e097d1098c98f5fcd5d28b6ef7f6b3.png

Позволяет откатить изменения в индексе Git.

Можно использовать как в файлах исходного кода, так и целиком на файлах в индексе VCS, которые находятся во вкладке Git → LocalChanges

1690530288af2160f1bae940e8d18f3e.png

Подтянуть изменения из удалённого репозитория

3dc754f65c94d60071a28da6a922ea6c.png

Сделать коммит

9cf7150d61eff96978c36f0014bc99fb.png

Запушить коммиты

d5a8733a58c80fa812388372f78bdfb9.png

Key Promoter X

В предыдущей главе я рассказал только о незначительной части хоткеев, которые можно установить в студии. Кто-то может возразить: «Что-то слишком их много, тяжело выучить все и запомнить пальцами будет тяжело». На что я могу вам ответить: «Используйте Key Promoter X».

Это плагин, позволяющий выучить хоткеи постепенно. Пока вы будете выполнять то или иное действие в студии при помощи мыши, плагин будет давать подсказки с хоткеями для этих действий. А если хоткея под это действие нет, посоветует вам его завести.

Найти плагин легко. Нужно ввести Key Promoter X в Preferences → Plugins → Marketplace:

0a0762bb6825360cf9967fe12d66109a.png

После установки перезапускаем студию и пользуемся!

b70bddf6b755f465c7f91c151c9d3c6f.gif

Подсказки выглядят так:

f3a101e1c989b18b0654685b3f46d2f0.png

В подсказке также будет написано, сколько раз вы вместо хоткея использовали мышку)

Подсказка появилась, когда я попытался навигировать в объявление метода через контекстное меню ПКМ-ом по методу:

fa70325df16197ce37e4d0f4b6c8fb9b.png

Также можно посмотреть общую статистику пропущенных хоткеев:

5feeaf3218ca7a23eb4ee16c72c561e4.png

Шаблоны кода

При разработке встречается много бойлерплейта/однотипного кода, например ViewModel-и или Fragment. Чтобы автоматизировать написание таких мест, ребята из hh.ru сделали очень приятный инструмент: набор плагинов для работы с Android Studio

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

Перед использованием плагинов сначала их нужно собрать (ручками

© Habrahabr.ru