스위프트의 코딩 스타일

개요


애플에서 공식적으로 이렇게 해라!는 아니지만

스위프트 개발자들 사이에서 코드의 가독성을 위해서 정해놓은 가이드와 애플 공식문서의 예시를 따라서 스위프트 코딩 스타일을 알아보겠다.




Naming


변수


lowerCamelCase를 사용한다.

1
var namingVar: String = "good"




상수


lowerCamelCase를 사용한다.

1
let namingLet: String = "good"




함수


lowerCamelCase를 사용한다.

get으로 시작하는 naming은 지양.

Action 함수의 네이밍은 ‘주어 + 동사 + 목적어’ 형태

Bool을 반환하는 함수에는 should~형태

1
2
3
func namingFunc(_ naming: String) -> String {
    ~~~
}




클래스


UpperCamelCase를 사용한다.

접두사를 붙이지 않는다.

1
2
3
class NamingClass {
    ~~~
}




구조체


UpperCamelCase를 사용한다.

1
2
3
struct NamingStruct: View {
    ~~~
}




열거형


UpperCamelCase를 사용한다.

각 Case들에는 lowerCamelCase를 사용한다.

1
2
3
enum NamingEnum {
    case good, bad
}




약어


약어로 시작하는 경우 소문자로 표기

그 외의 경우는 대문자로 표기.

1
2
var swiftUI
var UIkit




Code Layout


들여쓰기


tab 금지

Space 2개로




띄어쓰기


불필요한 띄어쓰기 금지

콜론 :의 경우에는 오른쪽에만




괄호


메소드의 괄호 및 기타 괄호등은 키워드 뒤에 공백과 함께 괄호

괄호 전 줄바꿈 금지

1
2
3
4
5
if condition == true {
  ~~~
} else {
  ~~~
}




줄바꿈


너무 길어져서 한줄에 표기가 힘들다면 파라메터 단위로 줄바꿈

1
2
3
4
5
6
func veryVeryLongLong(
  _ longLong Paramater one: String,
  _ longLong Paramater two: String
) -> String {
  ~~~
}




타입 추론


타입 추론은 강력한 기능

잘 활용하자

왠만하면 타입을 명시해주진 않음




import


알파벳 순으로 정렬




주석


///는 문서화에 필요한 주석




self


클래스와 구조체 내부에서는 self를 적음




웃음


:)가 아니라 :] 사용




상속


상속이 더이상 발생하지 않는 클래스는 final로 선언