SwiftLint — это статический анализатор Swift-кода, разработанный компанией Realm, который проверяет его на соответствие стилю и соглашениям принятым в сообществе разработчиков. Главным образом он базируется на Swift style guide от Github. Почему это важно? Наличие соглашений и стандартов всегда лучше их отсутствия: код написанный в едином стиле, проще читать при командной разработке, а также косвенно анализаторы кода способны улучшить и стабильность приложения, так как распознают заведомо плохие практики. Начинающим изучать Swift разбор ошибок и предупреждений анализатора поможет разобраться в особенностях языка, а также избежать использования устаревших конструкций, которые могли быть скопированы с сайтов вроде Stack Overflow.
Установка
SwiftLint является консольным приложением и устанавливается через Homebrew, поэтому достаточно ввести команду:
brew install swiftlint
Инструмент можно использовать отдельно, запуская команду swiftlint
в консоли, что не очень удобно, поэтому существует довольно простой способ интегрировать его с Xcode.
Интеграция с Xcode
Откройте проект, который вы разрабатываете, зайдите в его настройки, на вкладку Build Phases и добавьте новую фазу сборки с запуском скрипта.
В появившемся поле для ввода нужно добавить следующий код:
if which swiftlint >/dev/null; then
swiftlint autocorrect
swiftlint
else
echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
fi
Команда swiftlint autocorrect
автоматически исправляет простые недочеты вроде пустых строк с пробелами и т.п. Я всегда запускаю ее перед проверкой, чтобы не отвлекаться на тривиальные вещи. Данный скрипт будет выполняться при каждой сборке проекта, а все ошибки и предупреждения будут выводиться наряду со стандартными предупреждениями Xcode.
Настройка правил
Если какие-то из правил вам не подходят (например ограничение длины строки в 100 символов, или размер метода), их легко можно отключить, для этого в корне проекта создается файл под названием: .swiftlint.yml
. Например, чтобы отключить предупреждения о превышении допустимой длины строки, в него нужно добавить следующие строки:
disabled_rules:
- line_length
Названия правил, которые потребуется добавить в файл можно найти в скобках у соответствующего предупреждения. Это не единственные настройки, которые можно задать в конфигурационном файле, более подробно с ними можно ознакомиться в документации на странице проекта.