티스토리 뷰

반응형

안녕하세요 :) Zedd입니다.

오늘은 SwiftLint사용법~.~

간단해요!!!!!

얼른 해봅시댜

근데 SwiftLint github가면 다 나와있어요 :)

그리고 코코아팟을 사용할 줄 안다는 가정하에 글을 쓰겠습니다. 코코아팟을 사용할 줄 모르신다면, <왕초보를 위한 코코아팟 사용법>글을 읽고와주세요 :)



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



1. 적용하고 싶은 프로젝트를 가져온다. 저는 새로 만들게요.


2. Podfile에 pod 'SwiftLint'추가한 뒤 pod install


3. Target > build phase > + > new run script phase





${PODS_ROOT}/SwiftLint/swiftlint


Run script에 위 코드를 추가해주시고, 빌드하면...




멀쩡히 워닝만 간간히 몇개만 내던 프로젝트가......에러까지 나면서 실행이 안됩니다 ㅎㅎ

이렇게 나왔으면 SwiftLint가 성공적으로 내 프로젝트에 적용이 됐다는 것을 알 수 있죠!!

이제부터는 "규칙"을 보셔야 하는데요, SwiftLint의 Rule에 가면, 엄청나게 많은 규칙들이 나오게 되는데, 





이렇게 어떤건 Disabled고, 어떤건 Enabled인 것을 볼 수 있어요.

위에 Enabled by default라고 하죠????그러니까 디폴트로 적용되는 Rule인 거에요 :) 

그리고




이렇게 Supports autocorrection이라는 건, autocorrection을 해주냐 안해주냐인겁니다.

네 그렇습니다.. Yes라고 표시된거는 빌드시에 자동으로 고쳐주는 것들이에요 :)



이렇게 아까 Run Script에 autocorrect만 붙혀서 빌드 다시 한번 하면..!!



ㅋ.....



아..잘 안보이네요..ㅎㅎ...

별에별 경고가 다뜹니다 ㄹㅇ



당신...한 라인에 너무 많은 코드를..넣었어....

심지어 이거는 Alamofire쪽 코드임..



여기는 AppDelegate쪽 코드...주석도 길면 예외없음 ㅋ_ㅋ

에러까지야..............너무하자너...


이까지만 보시면 SwiftLint가 아주 나쁜넘이라고 생각하실 수도 있어요. 

하지만..!!! 이 Rule들을 컨트롤 할 수 있다면?!!!!!

그렇다면?!?!?!?!?!?!?

네..그렇습니다..컨트롤이 가능합니다.

일단 음...다양한 방법이 있는데, ㅎㅎ 간단한 방법을 알려드릴게요!


새로운 파일을 만드는데, Empty로 만들어주세요.



이름은 무조건 .swiftlint.yml


 

이러고 확인을 누르면



이러한 경고창?같은게 뜰텐데, Use "."을 눌러주세요. .앞에 붙히면 숨김파일 되는데..괜찮겠니 너?라고 물어보는 겁니다.



깔-끔


저는..음...그냥



딱 3개가.....제일 기본?적이라고 생각해서 말씀드려효

SwiftLint가셔서 꼭 확인해보시고, 자신에게 필요한걸 추가해주세요.

일단

disabled_rules를 봅시다. 

뭔가....규칙들을 할 수 없게 한다!?!?!? 같죠?

맞습니다. 

위에서 디폴트로 적용되는 규칙들을 여기에 추가하면, 이건 disable상태로 만들어주는 것이죠. 

나는 이럴 수 있겠죠.




아니...아니 뭔 라인 길이까지 제한을;;;;;;넘나;;;;;당황;;;;;

그렇다면 이걸 disable만들어보겠습니다.


Rules.md에 가셔서 Line Length를 가주시면..!



이렇게 identifier가 나옵니다.

이걸 복사해서. 



disabled_rules에 추가해주면..!

즉, 아 이 규칙은 기본적으로 적용되는거지만, 나는 disable시켜줄래. 라는 작업을 해주면



Line length에 대한 경고가 모두 사라진 것을 볼 수 있습니다..!!! 갸앙

그리고 included와 excluded를 설명드릴텐데요,

뜻에서 볼 수 있듯이 포함시킬거냐 안시킬거냐 입니다.


일단 제외(excluded)를 먼저 볼까요?

저는 코코아팟으로 추가한 라이브러리들은 검사하고 싶지 않아요. 그쵸?



얘네는 다 내가 짠게 아니고..Alamofire가 짠건데...왜..나한테..경고를....라면..!!!



excluded에 Pods를 넣어주시면..!



이제 코코아팟 라이브러리들에서 나는 에러와 경고는 모두 SwiftLint가 검사하지 않게 됩니다.

또, 이럴 수 있겠죠.



아..특정 파일에서 경고가 나네..이 파일만 제외 시키고 싶은뎅 ㅠ 하고 싶을 수도 있죠? 또는 특정 폴더를 제외시키고 싶을 수도 있겠죠.

또 방법이 있습니다.



이런식으로 exclouded에 특정 파일을 넣어주면..!



이렇게 에러가 사라지게 된답니다.

저렇게 넣어준 이유는



Attribute+.swift파일이 30DoC의 Common폴더 안에 있기 때문이죠.

ㅎ_ㅎ

이제 included를 해야ㅕ하는데... included는 포함시켜줄 것이죠? 그래서 자기가 원하는..암거나 추가시켜주면 됩니다. 



갑자기 똑같은거 넣어주면 어떻게 될까? 하고 넣어봤는데



이러한 에러가 나니까 이런짓은 하지말자. XD

암튼 취향에 맞게, 규칙들을 추가하고 빼면서 하시면 됩니다.


SwiftLint를 적용시키는데 도움이 되었으면 좋겠어요 :)

궁금한 점은 댓글이나 PC화면 오른쪽 하단에 있는 채널서비스를 이용해서 메세지주세요!!!!

 

주의 : yml파일을 반드시 프로젝트에서 추가해주세요. 프로젝트 > 앱이름 폴더 안에 만들지 마시고. 


반응형