image


Будучи поклонником терминала, я давно хотел написать об этой теме. Кроме того, знание того, как использовать терминал, значительно ускоряет работу.


Моя цель в этой статье — поделиться с вами тем, как я использую терминал при разработке под Android.


iTerm2


Поскольку мы собираемся проводить много времени в командной строке, давайте установим терминал получше, нежели стандартный. Предлагаю вашему вниманию iTerm2.


ITerm2 — современный терминал с функциями, которые вы так давно желали видеть. Например, разбиение панели, пользовательские цветовые схемы, история, контроль над горячими клавиша��и, а также множество других удобных настроек, которые вы найдете полезными.


oh-my-zsh


Когда вы запускаете терминал, он запускает оболочку под названием Bash. Bash на сегодняшний день является самой популярной оболочкой и поставляется с почти каждой операционной системой на базе UNIX. Однако есть альтернативы Bash, которые делают использование терминала более быстрым и удобным для разработчиков.


По умолчанию oh-my-zsh поставляется с плагином, который предоставляет множество полезных функций.


Автозаполнение


Zsh-autosuggestions — это быстрые/ненавязчивые предложения для вставки в zsh. Он предлагает команды по мере ввода на основе истории команд:


image


Обратный умный поиск


Вы можете нажать Control + R, чтобы выполнить обратный умный поиск в истории команд. Начните вводить команду, и оболочка будет автозаполнена с ранее введенными командами.


Затем вы можете либо нажать Enter, чтобы выполнить предложенную команду, либо используйте стрелки влево/вправо, чтобы отредактировать команду, или продолжайте нажимать Control + R для переключения между другими возможными командами.


image


DryRun


Вы наткнулись на классную библиотеку github, но что вам нужно сделать, чтобы протестить ее на вашем телефоне?


  • Нажать кнопку Скачать zip
  • Извлечь zip-файл
  • Открыть Android Studio
  • Импортировать скачанный проект
  • Sync gradle
  • Запустить проект
  • Выбрать устройство
  • Опробовать
  • Удалить папку проекта и zip-файл, когда вам это более не требуется.

Или...


Вы можете использовать dryrun:


dryrun REMOTE_GIT_URL

image


Билдим проект быстрее/без сети


Флаг --offline говорит gradle всегда использовать модули зависимостей из кеша, независимо от того, должны ли они быть проверены. При работе в автономном режиме, gradle никогда не попытается получить доступ к сети для выполнения разрешения зависимостей. Если требуемые модули отсутствуют в кэше зависимостей, выполнение сборки завершится с ошибкой.


Сборка на полной скорости:


./gradlew assembleDevelopDebug --offline

Выполнение ваших модульных тестов на полной скорости:


./gradlew test --offline

В качестве альтернативы, в Android Studio вы можете сделать gradle build полностью офлайн, активировав эту опцию:


Settings -> Build, Execution, Deployment -> Build tools -> Gradle


image


alfi


Как Android-разработчик, вы, вероятно, используете Android Studio с Gradle. Одним из замечательных преимуществ является управление зависимостями, которое автоматически загружает артефакты из репозитория и делает их доступными для вашего пр��ложения. В принципе, вы просто добавляете одну строку в файл build.gradle, и ваша библиотека включена. Довольно легко, правда?


Но вы точно знаете эту строку?


Для этого существует ALFI:


  1. Введите: alfi NAME_OF_THE_LIBRARY
  2. Скопируйте нужную библиотеку
  3. Вставьте в build.gradle

Не требуется взаимодействие с пользовательским интерфейсом и до 20 результатов сразу!


alfi picasso

image


Понимание gradle задач


Если вы запустите ./gradlew tasks, вы получите список доступных функций gradle. То, что не указано в списке, это короткие версии команд, так что вот небольшой список допущений, которые вы можете сделать,


  • iDD == installDevelopmentDebug
  • aDD == assembleDevelopmentDebug
  • cC == connectedCheck
  • etc.

Вы можете начать делать следующим образом:


./gradlew :App:iDD 

Так гораздо компактнее.


Android Rocket Launcher


Это gradle плагин, который добавляет задачи к вашим модулям Android для установки и запуска всех вариантов, поэтому нет необходимости запускать ./gradlew installDebug и переходить на телефон, находить приложение среди 50 приложений, которые вы установили, и запускать нужное.


image


Все, что вам нужно сделать, это добавить 2 строки в build.gradle


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


Вывод юнит-тестов на консоль


Небольшой трюк, который позволяет увидеть результаты тестирования устройств Android.


android {
  ...
  testOptions.unitTests.all {
    testLogging {
      events 'passed', 'skipped', 'failed', 'standardOut', 'standardError'
      outputs.upToDateWhen { false }
      showStandardStreams = true
    }
  }
}

Теперь, когда вы запускаете свои тесты, они выводят что-то вроде этого:


image


Удобные logcats


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


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


pidcat github.cesarferreira.helloworld

image


Итог


  • Установите iterm2, более функциональный терминал, чем стандартный
  • Используйте оболочку oh-my-zsh для автозаполнения
  • Не забывайте про компактные команды ./gradlew iDD
  • Выполняйте команды быстрее, используя флаг --offline
  • Не открывайте приложение на телефоне вручную после установки, используйте этот плагин для автоматизации процесса
  • Присоедините процесс отладки без перезапуска приложения
  • Наслаждайтесь более удобным вывод logcat с pidcat.