[iOS][Swift] 코딩 컨벤션

Youngkyu·2021년 8월 24일
0
post-thumbnail
  1. Class 는 Pascal Casing을 사용한다.
class ApplicationManager
class SoftwareSetting
  1. 로컬 변수, 함수, 함수 파라미터는 camel Casing을 사용한다.
func openFunction(someParameter: Int) {
	let someNumber: Int = 0
}
  1. 상수의 경우 대문자와 밑줄을 사용한다.
let CONST_NUMBER = 100
  1. 변수이름 앞에 접두사를 붙인다.
//멤버 변수 (m)
let mAge: Int = 24

//Bool 타입 (b)
let bClicked: Bool = false
let mbClicked: Bool = false

//enum 타입 (e)
enum eDirection { case North. South }
  1. 리턴 값이 있는 메소드는 리턴되는 값을 설명하는 이름을 붙인다.
func getAge() -> Int { 
	let age = 24
	return age
}
func getWelcomeString(personName: String) -> String {
	let welcomeString = "안녕하세요, " + "personName" + "님 반갑습니다."
	return welcomeString
}
  1. Struct안에 함수를 넣지 않는다. Struct는 순수한 데이터 뭉치

  2. switch 사용 중 case가 발생하지 않은 경우 assert(false)를 추가합니다. 문제가 발생했을 때 확인할 수 있습니다.

switch(type) {
	case 1: break
	default:
		assert(false, "unknown type")
		break
}
  1. 재귀함수 사용 시 함수이름에 재귀함수임을 명시합니다.
func fibonacciRecursive() {
}
  1. 클래스가 여러 파일에 걸쳐 있으면 이 파일 이름은 클래스 이름으로 시작하고 밑줄과 하위 섹션 이름을 붙입니다.
class RenderWorld;
RenderWorld_load.swift
RenderWorld_demo.swift
RenderWorld_portals.swift
Event.storyboard
Event_main.swift
Event_detail.swift
  1. 소스파일 이름 (프로토콜 또는 기능 추가 시)
    MyViewController.swift 라는 파일이 있을 때, 프로토콜 또는 기능이 추가 될 시 더하기(+) 기호로 프로토콜 명과 결합합니다.
MyViewController+MyProtocol.swift
MyViewController+MyAdditions.swift
  1. 함수 만들 때 규칙
  • 3번 이상 호출 되지 않으면 함수를 만들지 않는다.
  • 너무 간단한 한 줄짜리 코드를 함수로 만들지 않는다.
  • 내부에서만 도는 함수는 fileprivate or private로 정의한다.
  • 예외로 함수가 너무 길어진다면 잘라서 함수 호출을 할 수 있고, 아니면 주석 처리로 단위를 나눌 수 있다.
  • 전제 조건으로 함수는 nil을 받지 않는다. 다만 nil을 받을 경우 함수 이름에 orNil을 붙여준다. 반환 값도 마찬가지
  • Swift에는 옵셔널이 있지만 github에서 문맥 상 알기 어렵다.
  • 이와 비슷한 맥락으로 함수형 프로그래밍이 있다.

코딩 컨벤션은 하나의 약속이기 때문에 그룹마다 정하기 나름이고 자료가 방대하기 때문에 다른 부분이 있을 수 있습니다 !

이제 막 Swift 를 접할 때 참고만 하시길 바랍니다 !

참고 링크

https://bugkingk.github.io/2019-09-23-post-18/
https://google.github.io/swift/

profile
iOS를 공부하고 있는 대학생입니다.

0개의 댓글