본문 바로가기

iOS

[iOS] SwiftLint 사용

 

프로젝트를 하기 앞서 모든 팀원들의 코딩 컨벤션 통일을 위해 SwiftLint 사용을 하기로 했습니다.

SwiftLint은 코드를 작성할 때 추천하는 코딩 스타일, 괜찮은 사례등을 모아 놓은 가이드라인 및 규칙들 입니다.

 

모든 파일들이 Swift 코드가 일관성을 유지하도록하면 새로운 개발자가 합류하거나 예전 코드를 읽을 때 도움이 되며 모든 코드가 일관적으로 보이기 때문에 신경이 분산되지 않습니다. 또한 팀들간의 코드도 팀에 새로 합류한 팀원들도 일관적으로 코드를 짤 수 있습니다.

 

SwiftLint를 실행 시켜 보자!! 

 

1. pod init

2. Podfile에 pod 'SwiftLint' 추가!! -> pod install

 

 

3. Targets의 Build Phases에 Run Script를 추가하고 스크립트에 ${PODS_ROOT}/SwiftLint/swiftlint 입력!

 

 

룰 규칙들 ..realm.github.io/SwiftLint/rule-directory.html 여기에 룰들이 가득.. 

 

수십개의 룰 중 하나인 Array Init을 보자 . 

Identifier는 yml파일에서 쓰입니다.

Enabled by default는 기본적으로 린트를 실행할때 Default로 rule을 포함할지 말지 알려줍니다.

Supports autocorrection auto 옵션을 해줬을 때 자동으로 수정해 줍니다.

 

 

기본 적으로 SwiftLint를 사용할 때 적용 되는 룰들이 아닌 룰들도 있습니다. 이를 .swiftlint.yml파일을 통해 사용자의 입맛대로 !!  적용 시킬 수 있습니다.

 

사용자 설정을 위해 .swiftlint.yml 파일을 작성해야 합니다. (숨긴파일 맞음)

CMD + N 으로 Other의 Empty파일을 만들고  ".swiftlint.yml" 파일을 만듭니다.

 

 

 

주로 쓰는 명령어 들입니다.

disabled_rules : 활성화 된 룰들을 비활성화 한다. - (rule's identifier)

included : 경로의 파일들을 lint에서 포함시켜버린다.  - (path)

excluded : 경로의 파일들을 lint에서 예외시켜버린다.  -(path)

 

 

마무리

 swift lint를 제대로 알기 전에는 42의 놈같은 형식을 세부적으로 사용자가 정하는 건줄 알았습니다. 그런데 실질적으로 공부하고 알게 된 것은 이미 swift 개발자들이 이렇게 하니까 보기 좋네!! 한것들이 모여 있는 규칙모음이었습니다. 여기서 디폴트로 실행 시키면 기존 룰 들의 디폴트 실행값에 맞게 실행 시키게됩니다.

 여기서 일단 제 생각은 swift lint default 값들을 그대로 쓰면서 정말 아니다 싶은 것들은 discussion을 통해 추려내보는 건 어떨 까 생각합니다.

 

 

참고

 

Swift Lint 사용해보기 !!

Swift Linter란 'Linter' 입니다. 'Linter란' 커뮤니티나 팀에서 정한 스타일 규칙을 따르지 않는 코드 부분을 식별하고 표시하는 것을 돕습니다. 왜 SwiftLint를 사용하나요? 개발자마다 코딩스타일은 다

hereismyblog.tistory.com

 

 

SwiftLint로 보다 명확하고 깔끔한 코드를 만들어 보세요!

코드를 간결하고 명료하게 유지하도록 도와주는 SwiftLint의 사용 방법을 알려 드립니다.

academy.realm.io

 

 

realm/SwiftLint

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

github.com

 

 

iOS ) 내 프로젝트에 SwiftLint를 적용해보자

안녕하세요 :) Zedd입니다. 오늘은 SwiftLint사용법~.~ 간단해요!!!!! 얼른 해봅시댜 근데 SwiftLint github가면 다 나와있어요 :) 그리고 코코아팟을 사용할 줄 안다는 가정하에 글을 쓰겠습니다. 코코아팟

zeddios.tistory.com