Dev.YoungKyu
YoungKyu's Devlog
전체 방문자
오늘
어제
  • 분류 전체보기
    • 부스트캠프
    • visionOS
    • iOS
    • 알고리즘
    • CS
    • Git
    • Python
    • 끄적끄적

블로그 메뉴

  • 홈
  • 🌝 티스토리 홈
  • ⭐️ 깃허브
  • 태그

공지사항

인기 글

최근 댓글

최근 글

태그

  • jekyll
  • 모듈화
  • ios
  • Swift5.7
  • 소프트웨어 공학
  • image
  • Animation
  • if let
  • ImageResource
  • 소프트웨어공학
  • 오블완
  • Concurrency
  • guard
  • avaudiosessionportdescription
  • AVAudioSession
  • Python
  • 소프트웨어 테스트
  • SwiftUI
  • MVC
  • constraint
  • Git
  • boj
  • Optional
  • CS
  • AutoLayout
  • 부스트캠프
  • swift
  • 티스토리챌린지
  • 백준
  • 알고리즘

티스토리

hELLO · Designed By 정상우.
Dev.YoungKyu
[iOS][Swift] 코딩 컨벤션
iOS

[iOS][Swift] 코딩 컨벤션

2022. 9. 11. 15:16
  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가 발생하지 않은 경우 error handling 을 추가합니다. 문제가 발생했을 때 확인할 수 있습니다.
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
    
// 소스파일 이름 (프로토콜 또는 기능 추가 시)
// 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/

'iOS' 카테고리의 다른 글

[iOS][Swift] 프로토콜 vs 인터페이스 차이점  (1) 2022.09.11
[iOS][Swift] guard 문  (0) 2022.09.11
[iOS][Swift] Class 와 Struct  (1) 2022.09.11
[iOS][Swift] 투두리스트 앱 만들기 - UI 구성 AutoLayout Constraint 걸기  (0) 2022.09.11
[iOS][Swift] 오토레이아웃 개념잡기  (0) 2022.09.11
    'iOS' 카테고리의 다른 글
    • [iOS][Swift] 프로토콜 vs 인터페이스 차이점
    • [iOS][Swift] guard 문
    • [iOS][Swift] Class 와 Struct
    • [iOS][Swift] 투두리스트 앱 만들기 - UI 구성 AutoLayout Constraint 걸기
    Dev.YoungKyu
    Dev.YoungKyu
    iOS를 공부하고 있습니다

    티스토리툴바