2021. 10. 14. 20:21ㆍiOS/iOS memo
안녕하세요 bannavi입니다^ㅅ^
저는 요즘 코테 준비도 조금씩 하고, 애플 리젝 대응도 하고, 만들어놓은 프로젝트 리팩토링도 하면서
유의미한 나날을 보내고 있습니다.
저같이 혼자 독학으로 iOS를 공부하시는 분들의 가장 큰 고충은 코드리뷰의 부재라고 할 수 있겠는데요,
그래도 혼자 더 나은 코드를 위해 조금이라도 노력하는 자세는 중요하다고 생각합니다.
오늘은 그래서 self코드리뷰가 가능한 library, SwiftLint를 사용해보려고 합니다.
SwiftLint
가끔 it기업 블로그를 종종 볼때마다 등장한 녀석이었어요 SwiftLint...!
아래 link는 readme를 읽어보고 싶으시다면 참고해보세요. 아래 링크에서 따로 다운받을것은 없습니다ㅎㅎ
https://github.com/realm/SwiftLint
readme보시면서 오옹...SwiftLint가 이런것이군..! 대략 감을 잡으셨다면?
프로젝트에 SwiftLint설치 방법을 알려드릴게요!
프로젝트 폴더 내부에 생성해둔 Podfile에
아래와 같이 pod 'SwiftLint'를 추가하고 저장!
그리고 pod install만 입력하면 설치는 끝이에요(짱쉽다!)
그다음엔 SwiftLint를 적용하려는 프로젝트를 열어주세요.
pod install하셨으니까 ~.xcodeproj말구 ~.xcworkspace로 끝나는 프로젝트로 열어야합니다!
그런 다음 프로젝트클릭 -> Target클릭 -> Build Phases클릭
그리고 왼쪽 상단의 플러스 버튼을 클릭하고 New Run Script Phase를 눌러주세요
그리고 아래의 빨간 화살표 안에 아래의 코드를 넣어줍니다(String형식으로 그대로 복붙해주세요! 큰따옴표 생략절대금지)
"${PODS_ROOT}/SwiftLint/swiftlint"
죠기 화살표 친 부분에 넣어주세요
그리고 프로젝트 파일 바로 아래에 파일을 추가해줄거에요
프로젝트 우클릭 - New File - Other - Empty
파일이름은 .swiftlint.yml (복붙하세요)
좀 독특한 이름이네요. 오케이 하면 경고창 뜨는데 무시하고 ㄱㄱ해주세요 숨김파일로 처리될건데 괜찮냐고 물어보는거에요
저는 .swiftlint.yml파일 안에 아래와 같이 입력해줬어요.
요건 자기 입맛에 맞게 또는 회사에서 요구하는 convention에 맞춰서 수정하면됩니다.(저는 연습용이니까 최대한 간단히 해줬어요)
disabled_rules:
- line_length
included:
excluded:
- Pods
빌드 성공!
+
스택오버플로우요정에게 안 사실
"Trailing whitespace violation doesn't mean that there is an empty line, but rather that there is some unnecessary whitespace (not linebreaks, but tabs/spaces)."
-> Trailing whitespace violation은 빈줄을 의미하는게 아니라 탭이나 스페이스같이 불필요한 whitespace를 의미함
Xcode - Preferences - Text Editing - Editing - 아래 체크로 해결
+
그리고 만약에 엥 굳이 이런것까지 고쳐야돼..? 난 안고치고 싶은데 왜 경고뜨고 난리야..! 싶은것들이 있으면 또 방법이 있지요
예를들면 아래의 경고 문구에서 콜론 앞부분을 command + c로 복사한뒤,
https://realm.github.io/SwiftLint/rule-directory.html
여기에서 command + f로 검색. 그럼 아래와 같이 떠요
그럼 아래의 identifier를 command + c로 복사!
그리고 프로젝트에 있는 .swiftlint.yml파일을 열고 disabled_rules:아래에 아래와같은 형식으로 identifier를 넣어준 뒤 buil해주세요
그럼 방금떴던 오류가 사라지는것을 확인하실 수 있습니다.
좋네요 SwiftLint! 300개 가까이됐던 경고문구를 16개로 줄이니 속이 다 시원합니다.
'iOS > iOS memo' 카테고리의 다른 글
애플로그인 시, 애플 로그인 fullname이 설정창에 보여지지 않는 이슈 (0) | 2021.10.25 |
---|---|
LLDB)야무진 디버깅을 위해 LLDB 기초를 배워보자 (0) | 2021.10.17 |
리젝처리를 받고 애플 담당자와 겨뤄야 할때가 왔다...면?(feat. Resolution Center) (0) | 2021.10.14 |
앱 심사제출 완료. 2021.10.12 11:39PM (2) | 2021.10.13 |
앱 배포를 하던중 App Store Connect Operation Error를 발견했을때(feat.launch storyborad file) (0) | 2021.10.12 |