Git, CocoaPods, Xcode, Shell

[iOS - swift] swiftformat (SwiftFormat, Swift Format, 스위프트 포멧, SwiftLint)

jake-kim 2023. 11. 1. 01:11

swiftlint와 swift-foramt 차이

  • swiftlint는 코드 스타일을 검사하여 .yml파일에 개발자가 미리 정의한 규칙을 사용하여 스타일을 준수하지 못하면 warning이나 error를 보여주는 것
    • 구체적인 swiftlint 사용 방법은 이전 포스팅 글 참고
  • swift-format은 warning, error를 보여주지 않고, 특정 명령어를 수행하면 자동으로 코드가 포멧팅되는 것
  • 즉, 개발할 때 에러가 나거나 warning을 보여지게 하고싶다면 swiftlint를 사용하고, 자동으로 코드를 포멧팅 시켜주려면 swift-fotmat을 사용

swift-foramt 사용 방법

  • 설치
$ brew install swift-format
  • Xcode를 여고 포멧팅이 필요한 코드를 준비
    • someFunc 함수의 포멧팅이 필요
import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
    }
    
func someFunc( a:  Int, b: String) {
    let abc: Int = 0
    print(   abc)
}

}
  • swiftformat 명령어 실행
$ swift-format ViewController.swift

# or

$ swift-format *.swift

(실행하면 terminal창에 포멧팅된 내용이 표출) 

  • 주의) ViewController.swift 파일의 내용이 변하지는 않음 

  • swift-format 명령어에 -i를 추가하면 코드에 바로 적용이 가능
swift-format -i *.swift

규칙 설정하기 (.json 파일)

  • 포멧팅 규칙 설정 파일 획득 
    • 이 파일에서 포멧팅 규칙 설정이 가능
swift-format dump-configuration > .swift-format.json

* 참고

https://github.com/nicklockwood/SwiftFormat

https://nshipster.com/swift-format/