.
├── Application
│ ├── AppDelegate.swift
│ └── SceneDelegate.swift
├── Network
│ ├── API
│ ├── Base
│ │ ├── Encodable+.swift
│ │ ├── Enviroment.swift
│ │ ├── GeneralResponse.swift
│ │ ├── NetworkConstant.swift
│ │ ├── NetworkResult.swift
│ │ └── URLConstant.swift
│ ├── DataModel
│ │ └── ScreenModel
│ ├── Plugin
│ │ └── NetworkLoggerPlugin.swift
│ └── Service
├── Presentation
│ └── Scene
│ ├── Cells
│ └── ViewController
├── Resource
│ ├── Base.lproj
│ │ └── LaunchScreen.storyboard
│ ├── Color.xcassets
│ ├── Font
│ ├── Image.xcassets
│ │ ├── AccentColor.colorset
│ │ │ └── Contents.json
│ │ ├── AppIcon.appiconset
│ │ │ └── Contents.json
│ │ └── Contents.json
│ └── Info.plist
└── Utils
├── Constant
└── Extension
함수와 변수에는 lowerCamelCase를 사용합니다.
모든 IBOutlet에는 해당 클래스명을 뒤에 붙입니다.
@IBOutlet weak var settingImageView: UIImageView!
@IBOutlet weak var blankButton: UIButton!
@IBOutlet weak var blankLabel
기본 클래스 파일을 생성하거나 컴포넌트를 생성할 때는 약어를 사용하지 않습니다.
예시
TableView
TableViewCell
CollectionView
CollectionView Cell
ViewController
setUI() : 컴포넌트 속성 설정
initCell() : 셀 데이터 초기화
setData() : 배열 항목 세팅. 컬렉션뷰 에서 리스트 초기 세팅할때
setLayout() : 레이아웃 관련 코드
registerXib() : 셀 xib 등록.
setCollectionView() : 컬렉션뷰 관련 세팅
setTableView() : 테이블뷰 관련 세팅
setDelegate() : delegate, datasource 모음
setAddTarget() : addtarget 모음
setNotification() : NotificationCenter addObserver 모음
collectionView.isPaging
헷갈린다? set을 쓰세요 ^^
- pop, push, present, dismiss
- 동사 + To + 목적지 뷰 (다음에 보일 뷰)
- dismiss는 dismiss + 현재 뷰
- register + 목적어 ex) registerXib
ex) registerCell()