Skip to content
Wonseok Lee edited this page Dec 5, 2021 · 7 revisions

Cherish Convention

폴더ꡬ쑰

πŸ—‚ Global
    - AppModels πŸ—‚
    - Font πŸ—‚
    - View πŸ—‚
    - Extension πŸ—‚
    - Class πŸ—‚
    - Gif πŸ—‚

πŸ—‚ Network
    - APIModels πŸ—‚
    - APIServices πŸ—‚

πŸ—‚ Screens
    - AddUser πŸ—‚
        - Cells πŸ—‚
        - Controller πŸ—‚
        - Storyboards πŸ—‚
    - ...

πŸ—‚ Supports
    - info.plist
    - GoogleService-Info.plist
    - AppDelegate.swift
    - SceneDelegate.swift
    - Assets.xcassets

Commit Messge Rules

λ°˜μ˜μ‚¬ν•­μ„ λ°”λ‘œ 확인할 수 μžˆλ„λ‘ μž‘μ€ κΈ°λŠ₯ ν•˜λ‚˜λΌλ„ κ΅¬ν˜„λ˜λ©΄ 컀밋을 ꢌμž₯ν•©λ‹ˆλ‹€.
컀밋할 땐 iOS μŠ¬λž™μ— λ…Έν‹°ν•©λ‹ˆλ‹€.
κΈ°λŠ₯ κ΅¬ν˜„μ΄ μ™„λ²½ν•˜μ§€ μ•Šμ„ 땐, 각자 λΈŒλžœμΉ˜μ— 컀밋을 ν•΄μ£Όμ„Έμš”.

컀밋 λ©”μ‹œμ§€ λͺ…λ Ήμ–΄ λͺ¨μŒ

  • - feat    : κΈ°λŠ₯ (μƒˆλ‘œμš΄ κΈ°λŠ₯)
    - fix     : 버그 (버그 μˆ˜μ •)
    - refactor: λ¦¬νŒ©ν† λ§
    - style   : μŠ€νƒ€μΌ (μ½”λ“œ ν˜•μ‹, μ„Έλ―Έμ½œλ‘  μΆ”κ°€: λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ— λ³€κ²½ μ—†μŒ)
    - docs    : λ¬Έμ„œ (λ¬Έμ„œ μΆ”κ°€, μˆ˜μ •, μ‚­μ œ)
    - test    : ν…ŒμŠ€νŠΈ (ν…ŒμŠ€νŠΈ μ½”λ“œ μΆ”κ°€, μˆ˜μ •, μ‚­μ œ: λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ— λ³€κ²½ μ—†μŒ)
    - chore   : 기타 변경사항 (λΉŒλ“œ 슀크립트 μˆ˜μ • λ“±)
    

컀밋 메세지 ν˜•μ‹

  • [컀밋메세지] μ„€λͺ… ν˜•μ‹μœΌλ‘œ 컀밋 λ©”μ‹œμ§€λ₯Ό μž‘μ„±ν•©λ‹ˆλ‹€.

  • 컀밋 λ©”μ‹œμ§€λŠ” μ˜μ–΄ μ‚¬μš©μ„ ꢌμž₯ν•©λ‹ˆλ‹€.
    쒋은 예

    [feat] fetchcontacts!
    

    λ‚˜μœ 예

    μ—°λ½μ²˜ 동기화 κΈ°λŠ₯ μΆ”κ°€
    

Git Flow

  • 컀밋 λ©”μ„Έμ§€λŠ” λ‹€λ₯Έ μ‚¬λžŒλ“€μ΄ 봐도 이해할 수 있게 μ¨μ£Όμ„Έμš”.
  • ν’€λ¦¬ν€˜μŠ€νŠΈλ₯Ό 톡해 μ½”λ“œ 리뷰λ₯Ό ν•΄λ³΄μ•„μš”.
- main
- dev
- feat
  - #1
  - #2

PR Rule

  • 1개 μ΄μƒμ˜ Approveκ°€ 일어났을 경우 λ¨Έμ§€ν•΄μ£Όμ„Έμš”. [μ„€λͺ…]
  • main - dev κ°„ 머지: Rebase and Merge
  • dev - feat κ°„ 머지: Squash and Merge
    image

넀이밍

Class & Struct

  • 클래슀/ꡬ쑰체 이름은 UpperCamelCaseλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

  • 클래슀 μ΄λ¦„μ—λŠ” 접두사λ₯Ό 뢙이지 μ•ŠμŠ΅λ‹ˆλ‹€.

    쒋은 예

    class CherishTVC: UITableViewCell

    λ‚˜μœ 예

    struct cherishCVCInfo { }

ν•¨μˆ˜, λ³€μˆ˜, μƒμˆ˜

  • ν•¨μˆ˜μ™€ λ³€μˆ˜μ—λŠ” lowerCamelCaseλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

  • λ²„νŠΌλͺ…μ—λŠ” Btn μ•½μžλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

  • λͺ¨λ“  IBOutletμ—λŠ” ν•΄λ‹Ή 클래슀λͺ…을 뒀에 λΆ™μž…λ‹ˆλ‹€.

    • ~~ImageView, ~~Label, ~~TextField와 같이 속성값을 λΆ™μ—¬μ€λ‹ˆλ‹€.
  • ν…Œμ΄λΈ” λ·°λŠ” TV, μ»¬λ ‰μ…˜λ·°λŠ” CV둜 μ€„μ—¬μ„œ λ„€μ΄λ°ν•©λ‹ˆλ‹€.

  • ν…Œμ΄λΈ” λ·° 셀은 TVC, μ»¬λ ‰μ…˜λ·° 셀은 CVC둜 μ€„μ—¬μ„œ λ„€μ΄λ°ν•©λ‹ˆλ‹€.

    쒋은 예

    @IBOutlet weak var wateringBtn: UIButton!
    @IBOutlet weak var cherishMainView: UIView!
    @IBOutlet weak var cherishTV: UITableView!

    λ‚˜μœ 예

    @IBOutlet weak var ScrollView: UIScrollView!
    @IBOutlet weak var cherishcollectionview: UICollectionView!
    @IBOutlet weak var tagcollectionview: UICollectionView!
    @IBOutlet weak var tableview: UITableView!

주석

  • λ‹€μˆ˜μ˜ 행이라면 /* */λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.
  • // MARK: λ₯Ό μ‚¬μš©ν•΄μ„œ μ—°κ΄€λœ μ½”λ“œλ₯Ό λ§ˆν¬μ—… ν•˜μ—¬ κ΅¬λΆ„μ§“μŠ΅λ‹ˆλ‹€.
    • λ§ˆν¬μ—… 주석을 ν™œμš©ν•˜λ©΄ μ½”λ“œ μƒλ‹¨μ˜ 경둜 λ°”λ₯Ό ν†΅ν•΄μ„œ 이동이 κ°€λŠ₯ν•©λ‹ˆλ‹€. [μ„€λͺ…]
  • /// λŠ” Quick Help μ£Όμ„μž…λ‹ˆλ‹€. 뢀가적인 μ„€λͺ…을 λ‚¨κΉλ‹ˆλ‹€. [μ„€λͺ…]

기타

  • viewDidLoad() λ‚΄μ—λŠ” Function만 μœ„μΉ˜μ‹œν‚΅λ‹ˆλ‹€.
  • μ€‘λ³΅λ˜λŠ” 뢀뢄듀은 Extension으둜 λ§Œλ“€μ–΄ ν™œμš©ν•©λ‹ˆλ‹€.
  • λ©”μΈμ»¬λŸ¬μ™€ 같이 자주 μ“°μ΄λŠ” μ»¬λŸ¬λ“€μ€ Asset에 Color Set을 λ§Œλ“€μ–΄μ„œ μ‚¬μš©ν•©λ‹ˆλ‹€.
  • , 뒀에 λ°˜λ“œμ‹œ 띄어쓰기λ₯Ό ν•©λ‹ˆλ‹€.
  • ν•¨μˆ˜λΌλ¦¬ 1쀄 κ°œν–‰ν•©λ‹ˆλ‹€.
  • μ€‘κ΄„ν˜ΈλŠ” μ•„λž˜μ™€ 같은 ν˜•μ‹μœΌλ‘œ μ‚¬μš©ν•©λ‹ˆλ‹€.
if (condition) {
  /*
  Statements
  */
}