SwiftLint와 SwiftFormat 적용하기

SwiftLint와 SwiftFormat이란?

  • SwiftLintSwiftFormat은 둘 다 Swift 코드 스타일을 좋게 유지하기 위해 도와주는 툴입니다.
  • 다만, SwiftLint는 linting에 SwiftFormat은 formatting에 조금 더 초점을 맞췄습니다.
  • Linting은 코드 스타일의 정해진 규칙을 어길시 warning 혹은 error를 띄워줍니다.
  • Formatting은 warning과 error 대신 코드를 수정합니다.

Homebrew로 설치

  • SwiftLint와 SwiftFormat 둘 다, 사용하기 위해서는 맥에 설치를 해야합니다.
  • 둘 다 Homebrew를 지원하므로 다음 명령어를 터미널에서 실행해 설치합니다.
brew install swiftlint
brew install swiftformat
  • 다음 명령어를 통해 잘 설치 되었는지 확인하고 넘어갑니다.
brew list

SwiftLint 설정

  • 이제 Xcode에서 설정을 진행해야 합니다.
  • Target 프로젝트의 Build Phase로 이동하여 New Run Script Phase를 눌러 추가합니다.
swift-lint-swift-format
  • 추가된 Script 이름을 SwiftLint로 변경해주고 다른 설정은 그대로 나두고 script를 작성해줍니다.
swift-lint-swift-format
  • 다음과 같이 작성해주면 되는데, 해당 PATH는 Apple Silicon 맥 기준입니다.
# Type a script or drag a script file from your workspace to insert its path.
export PATH="$PATH:/opt/homebrew/bin"
if which swiftlint > /dev/null; then
  swiftlint
else
  echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
fi
  • 프로젝트의 디렉토리에 .swiftlint.yml 파일을 생성해서 여기에 커스텀 룰을 설정합니다.
  • 룰에 대한 자세한 설명은 SwiftLint 레포의 Rules에 있습니다.
swift-lint-swift-format

SwiftFormat 설정

  • SwiftLint를 설정했듯이 New Run Script Phase를 추가해 script를 작성합니다.
swift-lint-swift-format
  • 다음과 같이 script를 작성하면 되고, 이 역시 Apple Silicon 맥 기준입니다.
# Type a script or drag a script file from your workspace to insert its path.
export PATH="$PATH:/opt/homebrew/bin"
if which swiftformat > /dev/null; then
  swiftformat .
else
  echo "warning: SwiftFormat not installed, download from https://github.com/nicklockwood/SwiftFormat"
fi
  • 프로젝트의 디렉토리에 .swiftformat 파일을 생성해서 여기에 커스텀 룰을 설정합니다.
  • 룰에 대한 자세한 설명은 SwiftFormat 레포의 Rules에 있습니다.
swift-lint-swift-format

Build 하기

  • Build Phase를 최종적으로 다음과 같이 정렬합니다.
swift-lint-swift-format
  • 그리고 빌드해보면 formatting과 linting이 컴파일 전에 진행됩니다.