[Library] 코딩 컨벤션을 자동으로 도와주는, SwiftLint 적용방법

2021. 10. 2. 15:25Framework, Library

나다 릴리즈를 준비하면서, 현규 선배의 도움으로 SwiftLint라는 것을 처음 접해보았다.

SwiftLint코딩 컨벤션을 자동으로 확인해주는 도구이다.
프로젝트에 SwiftLint를 적용시켜 코딩을 하면, 협업을 진행하더라도 모든 개발자가 일관된 코드를 작성할 수 있게 도와주게 된다.
*어떤 규칙을 안지키면 Warning이 발생하고, 어떤 규칙을 안지키면 Error가 발생해 빌드 자체를 막는 형태로 컨벤션을 지키도록 도와준다

물론 스스로 공부를 할 때, 일관된 코딩 컨벤션을 사용할 때도 마찬가지이다.

예전에 코딩 컨벤션에 대해 다룬 글도 있으니, 궁금하면 읽고 오자.

 

[iOS] 내가 보려고 정리하는 Coding Convention (feat. Style Share)

개발자로서 협업을 하게 되면, 같은 팀원들끼리 필수로 정해야 하는 규칙들이 있다. 개발을 할 때 지켜야 하는 Coding Convention, 깃을 사용하는 방법인 Git branch 전략, 모두가 알아볼 수 있도록 기록

mini-min-dev.tistory.com

 

1️⃣ 적용방법


1. podfile에 pod 'SwiftLint'를 추가한 후, pod install을 해주기

 

GitHub - realm/SwiftLint: A tool to enforce Swift style and conventions.

A tool to enforce Swift style and conventions. Contribute to realm/SwiftLint development by creating an account on GitHub.

github.com

 

2. TARGETS -> Build Phases -> +버튼 -> New Run Script Phase 클릭

 

3. Run Script에 ${PODS_ROOT}/SwiftLint/swiftlint 코드 추가

 

여기까지 완료하면, 정상적으로 SwiftLint가 잘 적용된다.

하지만, 여기서 끝나면 엄청난 Warning과 Error의 늪에 빠진 내 프로젝트를 확인할 수 있다.
이거를 언제 다 해결해주나....

548 issues....후덜덜..

 

2️⃣ 예외처리 규칙, 파일 지정하기

 


프로젝트 아래 .swiftlint 라는 파일을 생성해주면,
이 파일에서 제외할 규칙과, SwiftLint를 적용하지 않을 파일을 설정해줄 수 있다!

 

보이는 것처럼 프로젝트 바로 아래에 Empty -> .swiftlint.yml 라는 이름의 파일을 하나 만들어주자.

 

그러면 아래와 같이이 작성을 해서 자유롭게 설정을 해주면 된다!

  • disabled_rules : SwiftLint에 있는 규칙 중 프로젝트에서 포함시키지 않을 컨벤션을 지정한다.
  • included : 기존 규칙에 적용 안되고 있던 파일을 컨벤션 적용하고 싶을 때 사용
  • exclided : 기존 규칙에 영향 받던 파일을 컨벤션과 무관하게 적용하고 싶을 때 사용

 

추가로, Lint의 규칙은 아래의 문서에서 찾아보면 된다.
제외하고 싶은 규칙의 identifier값을 disabled_rules 밑에 "-" 뒤에 써서 추가해주자. (예시 - line_length (코드 라인 길이와 관련된 컨벤션))

 

Rule Directory Reference

 

realm.github.io

+ Swiftlint를 적용해주면서 발생하는 에러 내용과 해결법은 아래 링크에서 잘 정리해두고 있다.

 

SwiftLint를 적용하면서 수정한 것들🙀

🐥입사 전에는 프로젝트를 할 때, 항상 SwiftLint를 적용하며 개발했었다. 입사 후, 회사 프로젝트에서는 린트가 적용되어 있지 않았고, 그 필요성을 느껴 린트 적용을 제안했다. 작성되어 있던 코

pilvi.tistory.com