Skip to content

Latest commit

ย 

History

History
181 lines (137 loc) ยท 3.53 KB

CodingConventionRule.md

File metadata and controls

181 lines (137 loc) ยท 3.53 KB

CodingConventionRule Rule

ํŒŒ์ผ๋ช…

์Šคํ† ๋ฆฌ๋ณด๋“œ์ด๋ฆ„

  • Zeplin ์ด๋ฆ„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค๊ธฐ

ViewController

  • ์Šคํ† ๋ฆฌ๋ณด๋“œ ์ด๋ฆ„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค๊ธฐ

Cell ์ด๋ฆ„

  • CollectionViewCell ์ด๋ฆ„ : CVC
  • TableViewCell ์ด๋ฆ„ : TVC

์ฝ”๋“œ๋ ˆ์ด์•„์›ƒ

๋ทฐ์ปจํŠธ๋กค๋Ÿฌ ์ฝ”๋“œ ์ˆœ์„œ

์ด๊ฑฐ๋Š” MARK ์ฃผ์„์œผ๋กœ ๋งŒ๋“ค์–ด ๋ถ„๋ฅ˜ํ•ด์ฃผ๋ฉด ์ข‹์„๋“ฏ

  • IBOutlet ๋ณ€์ˆ˜
  • ์ž๊ธฐ๊ฐ€ ๋งŒ๋“œ๋Š” ๋ณ€์ˆ˜
  • ๋ผ์ดํ”„์‚ฌ์ดํด ๋ฉ”์†Œ๋“œ (viewDidLoad, viewWillAppear)
  • ์ž๊ธฐ๊ฐ€ ๋งŒ๋“œ๋Š” ๋ฉ”์†Œ๋“œ
  • @objc ๋ฉ”์†Œ๋“œ
  • IBAction ๋ฉ”์†Œ๋“œ
  • Extension
    • ํ”„๋กœํ† ์ฝœ ํ•˜๋‚˜๋‹น ํ•˜๋‚˜์”ฉ ๋งŒ๋“ค๊ธฐ
    • Extension ์•ˆ์—๋Š” ํ”„๋กœํ† ์ฝœ์— ํ•ด๋‹นํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋งŒ ๊ตฌํ˜„ํ•ด ๋†“๊ธฐ

์ตœ๋Œ€ ์ค„๊ธธ์ด

  • 99 ์ค„

์ค„๋ฐ”๊ฟˆ

  • ์ตœ๋Œ€ ๊ธธ์ด๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด
  • ํ•จ์ˆ˜ ์ •์˜
func animationController(
  forPresented presented: UIViewController,
  presenting: UIViewController,
  source: UIViewController
) -> UIViewControllerAnimatedTransitioning? {
  // doSomething()
}
  • ํ•จ์ˆ˜ ํ˜ธ์ถœ
let actionSheet = UIActionSheet(
  title: "์ •๋ง ๊ณ„์ •์„ ์‚ญ์ œํ•˜์‹ค ๊ฑด๊ฐ€์š”?",
  delegate: self,
  cancelButtonTitle: "์ทจ์†Œ",
  destructiveButtonTitle: "์‚ญ์ œํ•ด์ฃผ์„ธ์š”"
)
  • ํด๋กœ์ € 2๊ฐœ ์ด์ƒ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ๋ฌด์กฐ๊ฑด ๋‚ด๋ ค์“ฐ๊ธฐ
UIView.animate(
  withDuration: 0.25,
  animations: {
    // doSomething()
  },
  completion: { finished in
    // doSomething()
  }
)
  • guard let ๊ตฌ๋ฌธ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉ
guard let _  else {
	return
}

ํด๋กœ์ ธ

Alamofire.request(APIConstants.loginURL,
                          method: .post,
                          parameters: body,
                          encoding: JSONEncoding.default,
                          headers: header)
            .responseData { response in
                switch response.result {
                case .success:
                    guard let statusCode = response.response?.statusCode else {
                        return
                    }
                    guard let value = response.result.value else {
                        return
                    }
                    completion(self.isCorrectUser(statusCode: statusCode, data: value))
                case .failure(let err):
                    print(err.localizedDescription)
                    completion(.networkFail)
                }
        }
  • ํ›„ํ–‰ ํด๋กœ์ ธ ์˜ ๊ฒฝ์šฐ 'ํŒŒ๋ผ๋ฏธํ„ฐ in' ๊นŒ์ง€ ํ•˜๊ณ  ๋‹ค์Œ ์ค„ ๋„˜์–ด๊ฐ€์„œ ํ•˜๊ธฐ

๋„ค์ด๋ฐ

ํด๋ž˜์Šค

class Mongle{
}
์•ž์—๊ธ€์ž ๋Œ€๋ฌธ์ž(UpperCamelCase)

ํ•จ์ˆ˜

func mongleMongle(){
}
์•ž์—๊ธ€์ž ์†Œ๋ฌธ์ž(LowerCamelCase)

๋ณ€์ˆ˜

var mogleMongle
์•ž์—๊ธ€์ž ์†Œ๋ฌธ์ž(LowerCamelCase)

์—ด๊ฑฐํ˜•

enum Result {
  case .success
  case .failure
}
enum์˜ ๊ฐ case์—๋Š” lowerCamelCase๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
UpperCamalCase lowerCamelCase
ํด๋ž˜์Šค ํ•จ์ˆ˜
๊ตฌ์กฐ์ฒด ๋ฉ”์„œ๋“œ
์ต์Šคํ…์…˜ ์ธ์Šคํ„ด์Šค
ํ”„๋กœํ† ์ฝœ
์—ด๊ฑฐํ˜•

๊ทธ ์™ธ ์ •ํ•  ๊ฒƒ๋“ค

  • API URL
static let userProfile = BaseURL + **/user/profile**
  • Cell Identifier
static let identifier = ""

๋ฌด์ŠจCell.identifier <- ์ด๋Ÿฐ์‹์œผ๋ฃจ
  • UserDefault
enum UserDefaultKeys: String {
    case token="token"
    case autologinCheck="isAutoLoginChecked"
}

UserDefaultKeys.token.rawValue <- ์‚ฌ์šฉํ• ๋• ์ด๋Ÿฐ์‹์œผ๋ฃจ