Skip to content

Code Convention

Hyeongmin Kim edited this page Oct 20, 2022 · 3 revisions

View

View 선언

  • 더이상 상속하지 않는 뷰 관련 클래스는 final으로 선언한다.
    • 컴파일의 효율을 위해
final class ExampleView: UIViewController {
    // code
}
  • UIView를 선언할 때는 private lazy var으로 선언한다.
    • 호출될 때 인스턴스가 생성되어 컴파일의 효율을 위해
private lazy var ExampleView: UIView! = {
    let view = UIView()
    // code
    return view
}()

Auto Layout

  • 오토 레이아웃에 관련된 코드는 extention으로 맨 아랫쪽으로 뺀다.
  • 오토레이아웃을 통해 뷰를 그리는 함수 명은 setUpLayout()으로 통일한다.
  • Snapkit으로 설정한 오토 레이아웃 클로저에는 파라미터를 표시하지않고 $0으로 통일해서 작업한다.
  • 테이블(컬렉션)뷰 등의 하위 뷰를 위한 코드는 익스텐션으로 빼서 다른 파일을 생성해서 작업한다.
    (단, 다른 로직의 클로저에서는 가독성을 위해 파라미터 표기가 필요할 수 있다.)
  • view.addsubView()는 각 뷰의 스냅킷 코드 위에 명시하고 주석으로 어떤 뷰인지 간략하게 설명한다.
private func setUpLayout() {
    // myView의 상하좌우 패딩값
    view.addSubview(myView)
    myView.snp.makeConstraints {
        $0.top.equalToSuperview().offset(100)
        $0.left.equalToSuperview().offset(100)
        $0.right.equalToSuperview().offset(-100)
        $0.bottom.equalToSuperview().offset(-100)
    }
}

----- 추후 논의 후 계속 추가 -----