-
Notifications
You must be signed in to change notification settings - Fork 5
Code Convention
도찡 edited this page Nov 1, 2021
·
2 revisions
StyleShare Swift style guid를 참조했습니다.
- 들여쓰기는 tab (space 4개) 사용합니다.
- 함수 정의 후
{
는 공백 한칸을 두고 사용합니다.
func foo() {
//do something
}
- 함수를 정의,호출하는 코드가 최대 길이를 초과하는 경우에는 파라미터 이름을 기준으로 줄바꿈합니다.
let actionSheet = UIActionSheet(
title: "정말 계정을 삭제하실 건가요?",
delegate: self,
cancelButtonTitle: "취소",
destructiveButtonTitle: "삭제해주세요"
)
- if let 구문이 길 경우에는 줄바꿈하고 한 칸 들여씁니다.
if let user = self.veryLongFunctionNameWhichReturnsOptionalUser(),
let name = user.veryLongFunctionNameWhichReturnsOptionalName(),
user.gender == .female {
// ...
}
- guard let 구문이 길 경우에는 줄바꿈하고 한 칸 들여씁니다. else는 guard와 같은 들여쓰기를 적용합니다.
guard let user = self.veryLongFunctionNameWhichReturnsOptionalUser(),
let name = user.veryLongFunctionNameWhichReturnsOptionalName(),
user.gender == .female
else {
return
}
- 최대 줄 길이는 145로 합니다.
- 모듈 임포트는 알파벳 순으로 정렬합니다. 내장 프레임워크를 먼저 임포트하고, 빈 줄로 구분하여 서드파티 프레임워크를 임포트합니다.
import UIKit
import SwiftyColor
import SwiftyImage
import Then
import URLNavigator
-
Static Properties
:CellIdentifier
등 -
Subviews
: ViewController/View에 자식으로 들어가게 될 View들
보여지는 순서대로?
-
Public Properties
: UILabel로 치면 title 같은 것 Private Properties
Constant
먼저 쓰고 개행 후Variable
을 작성해준다.
-
Initializers
: 생성자 -
Lifecycle Methods
:viewDidLoad
,viewWillAppear
등 라이프사이클 -
Helpers
: Configure, bind 메소드들 -
Private Methods
: 내부에서 호출하게 되는 함수 e.g.buttonTapped()
-
Public Methods
: 외부에서 호출하게 되는 함수 e.gsetTitle()
-
FIXME
: 이후에 고쳐져야하는 것들에 대한 표시
-
self
는 다 쓰기 -
final
은 상속이 필요하지 않은 class에 모두 명시하기 - 프로토콜을 적용할 때에는
extension
을 만들어서 관련된 메서드 - 컬러의 경우
Assets.xcassetes
에 넣고,UIColor
의extension
으로 관리한다.
-
Action 함수의 네이밍은 '주어 + 동사 + 목적어' 형태를 사용합니다.
- Tap(눌렀다 뗌) 은 UIControlEvents의 .touchUpInside에 대응하고, Press(누름) 는 .touchDown에 대응합니다.
- will
은 특정 행위가 일어나기 직전이고, did는 특정 행위가 일어난 직후입니다. - should~는 일반적으로 Bool을 반환하는 함수에 사용됩니다.
func backButtonDidTap() { // ... }
S007 김민주 | S017 박세원 | S027 양승훈 | S053 정지승 |
---|---|---|---|
@minglely | @ehWld | @yabby1997 | @JungJiSeung |