[iOS] Swiftlint를 적용하여 코드 컨벤션 유지하기

홍승현·2022년 8월 20일
0

SwiftLint

목록 보기
1/2
post-thumbnail

VSCode에서는 Format On Save 라는 간편한 기능으로 저장하는 즉시 코드를 포매팅할 수 있다. 근데 웬걸, Xcode에서 포매팅에 대한 걸 찾아봤는데 스코프에 맞춰 탭해주는 기능밖에 없었다.

세상에, 그러면 협업할 때 코드 컨벤션을 유지하기가 쉽지 않을텐데 이를 어떻게 해결하면 좋을까?

다행히 Realm에서 SwiftLint라는 것을 제공해줘서 build할 때 설정된 컨벤션에 맞추어 warning이나 error를 표시해주고, 옵션에 따라 자동으로 수정해주는 기능까지 갖출 수 있다. 즉, VSCode에서의 Format On Save의 느낌을 줄 수 있는 것이다!

SwiftLint 적용법

SwiftLint 사이트로 들어가서 설명을 참고하면서 진행해나가보자. 이 글에서는 brew를 이용한다.

1. 설치

brew install swiftlint

2. 프로젝트에 swiftlint 적용하기

  1. 프로젝트를 누른다.
  2. Targets을 누른다.
  3. Build Phases를 누른다.
  4. + 기호를 누른다.
  5. New Run Script Phase를 누른다.

그 이후에는 스크립트를 작성하는 칸이 나오는데, 다음의 코드를 작성하면 된다.

if which swiftlint >/dev/null; then
  swiftlint
else
  echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
fi

하지만 필자처럼 homebrew로 설치하였으며, 애플 실리콘 모델의 mac이라면, 다음의 코드를 넣어야한다(단지 export 머시기 문장 하나만 추가된 코드이다).

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의 디폴트 포맷팅에 맞게 자동으로 수정될 수 있는 것을 적용하고 싶다면 swiftlint 대신에 swiftlint --fix && swiftlint를 작성하면된다.

그러면 오류 269 - 21 = 248개가 수정됐지만, git은 commit해야될 게 산더미같이 늘어나게되므로 되도록 프로젝트 시작할 때 Swiftlint를 적용하자. ^_^..

profile
블로그 이전: https://www.whitehyun.com

0개의 댓글