/SOPKATHON-iOS

๋„ˆ. ๐Ÿ‘ˆ๐Ÿป ๋ณ€ ๐Ÿ’ฉ ํ–ˆ์–ด โ“

Primary LanguageSwiftMIT LicenseMIT

๋ผ์ดํ‘ธ ๋‹ค์ด์–ด๋ฆฌ

๋„ˆ. ๐Ÿ‘ˆ๐Ÿป ๋ณ€ ๐Ÿ’ฉ ํ–ˆ์–ด โ“


โœจ ์„œ๋น„์Šค ์ด๋ฆ„๊ณผ ์†Œ๊ฐœ

์„œ๋น„์Šค๋ช… ์„œ๋น„์Šค ์†Œ๊ฐœ
๋ผ์ดํ‘ธ ๋‹ค์ด์–ด๋ฆฌ ๋‚˜์˜ ๋ณ€์˜ ์ƒํƒœ๋ฅผ ์ฒดํฌํ•˜๊ณ , ์นœ๊ตฌ์—๊ฒŒ ๋ฐฐ๋ณ€ ํ™œ๋™์„ ์‘์›๋ฐ›๊ณ , ๋ณ€์˜ ๋ณ€ํ™”๋ฅผ ์ฃผ๊ฐ„ ๋ฆฌํฌํŠธ๋กœ ํ™•์ธํ•˜์ž

๐Ÿš€ iOS-Developers

์œค์ˆ˜๋นˆ ์ด์Šนํ—Œ ๋ฐ•์˜์„œ ๊น€์ธ์˜

๐Ÿ”ซ ๊ฐœ๋ฐœ ๋‹ด๋‹น ๋ถ€๋ถ„

๋‹ด๋‹น ๋ทฐ ๋‹ด๋‹น์ž ๊ตฌํ˜„ ๊ธฐ๋Šฅ ์„ค๋ช…
Main - RecordPopUpView ์œค์ˆ˜๋นˆ ํ”„๋กœ์ ํŠธ ์„ธํŒ…, ๋งˆ์ดํ‘ธ ๊ธฐ๋ก ๋ชจ๋‹ฌ ๋ทฐ, ๋„คํŠธ์›Œํฌ ์„ธํŒ… ๋ฐ ์—ฐ๊ฒฐ
MainView ์ด์Šนํ—Œ ๋ฉ”์ธ ๋ทฐ, ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ
FriendsView ๋ฐ•์˜์„œ ์นœ๊ตฌ ์‘์›ํ•˜๊ธฐ ๋ทฐ, ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ
ReportView ๊น€์ธ์˜ ๋งˆ์ดํ‘ธ ๋ฆฌํฌํŠธ ๋ทฐ

๐Ÿชง Library

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ ๋ชฉ์  Version Management Tool
SnapKit UI Layout 5.6.0 SPM
Then UI ์„ ์–ธ 3.0.0 SPM
Moya ์„œ๋ฒ„ ํ†ต์‹  15.0.3 SPM

๐ŸŽˆ Convention

โœจ Git Branch Convention

  • Branch Naming Rule
    • Issue ์ž‘์„ฑ ํ›„ ์ƒ์„ฑ๋˜๋Š” ๋ฒˆํ˜ธ์™€ Issue์˜ ๊ฐ„๋žตํ•œ ์„ค๋ช… ๋“ฑ์„ ์กฐํ•ฉํ•˜์—ฌ Branch ์ด๋ฆ„ ๊ฒฐ์ •
    • <Prefix>/<#IssueNumber>-<Description>
  • Commit Message Rule
    • [Prefix] : <Description>

โœจ Git Flow

1. ์ž‘์—… ๋‹จ์œ„๋ณ„ Issue ์ƒ์„ฑ : ๋‹ด๋‹น์ž, ๋ผ๋ฒจ, ํ”„๋กœ์ ํŠธ ์—ฐ๊ฒฐ 

2. Fork ๋ฐ›์€ ๋กœ์ปฌ ๋ ˆํฌ์—์„œ develop ๋ธŒ๋žœ์น˜ ์ตœ์‹ ํ™” : git pull (origin develop) 

3. Branch ์ƒ์„ฑ : git switch -c Prefix/#IssueNumber-description 
  > ์˜ˆ์‹œ) chore/#3-Project-Setting

4. ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ ์ž‘์—… ํ›„ Add -> Commit -> Push -> Pull Request์˜ ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค.
  
  Prefix์˜ ์˜๋ฏธ
  > [Feat] : ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๊ตฌํ˜„
  > [Chore] : ์ฝ”๋“œ ์ˆ˜์ •, ํŒจํ‚ค์ง€ ๊ตฌ์กฐ ๋ณ€๊ฒฝ, ํŒŒ์ผ ์ด๋™, ํŒŒ์ผ์ด๋ฆ„ ๋ณ€๊ฒฝ ๋“ฑ
  > [Add] : ์ฝ”๋“œ ๋ณ€๊ฒฝ ์—†๋Š” ๋‹จ์ˆœ ํŒŒ์ผ ์ถ”๊ฐ€, ์—์…‹ ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€
  > [Fix] : ๋ฒ„๊ทธ, ์˜ค๋ฅ˜ ํ•ด๊ฒฐ, ์ฝ”๋“œ ์ˆ˜์ •
  > [Docs] : README๋‚˜ WIKI ๋“ฑ์˜ ๋ฌธ์„œ ๊ฐœ์ •
  > [Refactor] : ์ „๋ฉด ์ˆ˜์ •
  > [Setting] : ํ”„๋กœ์ ํŠธ ์„ธํŒ…


5. Pull Request ์ž‘์„ฑ 
  - closed : #IssueNumber๋กœ ์ด์Šˆ ์—ฐ๊ฒฐ, ๋ฆฌ๋ทฐ์–ด ์ง€์ •

6. Code Review ์™„๋ฃŒ ํ›„ Pull Request ์ž‘์„ฑ์ž๊ฐ€ develop Branch๋กœ mergeํ•˜๊ธฐ
  - Develop Branch protection rules : Merge ์ „ ์ตœ์†Œ 1 Approve ํ•„์š”

7. ์ข…๋ฃŒ๋œ Issue์™€ Pull Request์˜ Label๊ณผ Project๋ฅผ ๊ด€๋ฆฌ

โœจ Naming & Code Convention

  • ํ•จ์ˆ˜, ๋ฉ”์„œ๋“œ : lowerCamelCase ์‚ฌ์šฉํ•˜๊ณ , ๋™์‚ฌ๋กœ ์‹œ์ž‘ํ•œ๋‹ค.
  • ๋ณ€์ˆ˜, ์ƒ์ˆ˜ : lowerCamelCase ์‚ฌ์šฉํ•œ๋‹ค.
  • ํด๋ž˜์Šค, ๊ตฌ์กฐ์ฒด, enum, extension ๋“ฑ : UpperCamelCase ์‚ฌ์šฉํ•œ๋‹ค.
  • ๊ธฐ๋ณธ MVC ํด๋”๋ง ๊ตฌ์กฐ์— ๋”ฐ๋ผ ํŒŒ์ผ์„ ๊ตฌ๋ถ„ํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค.
  • ํŒŒ์ผ, ๋ฉ”์„œ๋“œ, ํด๋ž˜์Šค ๋ช… ์•ฝ์–ด ์‚ฌ์šฉ ์ง€์–‘ํ•œ๋‹ค.
    • ์˜ˆ์‹œ) ViewController โ†’ VC (โŒ)
    • ์˜ˆ์‹œ) CollectionViewCell โ†’ CVC (โŒ)
    • ์˜ˆ์‹œ) loginButtonDidTap: UIButton -> loginBtnTapped (โŒ)
  • ์ด์™ธ ๊ธฐ๋ณธ ๋ช…๋ช…๊ทœ์น™์€ Swift Style Guide, API Design Guidelines , Swift Style Guide๋ฅผ ์ฐธ๊ณ ํ•œ๋‹ค.

โœจ Project Foldering

MyPooDiary
โ”ฃ Network
โ”ƒ โ”ฃ Base
โ”ƒ โ”ƒ โ”ฃ APIConstants
โ”ƒ โ”ƒ โ”ฃ Encodable+
โ”ƒ โ”ƒ โ”ฃ NetworkLoggerPlugin
โ”ƒ โ”ฃ Router
โ”ƒ โ”ฃ DTO
โ”ฃ Global
โ”ƒ โ”ฃ Extension
โ”ƒ โ”ฃ Supports
โ”ƒ โ”ƒ โ”ฃ AppDelegate.swift
โ”ƒ โ”ƒ โ”— SceneDelegate.swift
โ”ƒ โ”— Literals
โ”ƒ โ”— Utils
โ”ƒ โ”— Resource
โ”ƒ โ”ƒ โ”ฃ Assets
โ”ฃ Screens
โ”ƒ โ”ฃ Main
โ”ƒ โ”ƒ โ”ฃ Model
โ”ƒ โ”ƒ โ”ฃ View
โ”ƒ โ”ƒ โ”— Controller
โ”ƒ โ”ฃ Friends
โ”ƒ โ”ƒ โ”ฃ Model
โ”ƒ โ”ƒ โ”ฃ View
โ”ƒ โ”ƒ โ”— Controller
โ”ƒ โ”ฃ Report
โ”ƒ โ”ƒ โ”ฃ Model
โ”ƒ โ”ƒ โ”ฃ View
โ”ƒ โ”ƒ โ”— Controller
โ”— Info.plist

๐ŸŽจ UI Sketch

์ ‘๊ธฐ/ํŽผ์น˜๊ธฐ

์™€์ดํ”„๋ ˆ์ž„

  • ํ™”๋ฉด ์ „ํ™˜ ํ”Œ๋กœ์šฐ
แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2022-11-20 02 26 37
  • ์ˆ˜๋นˆ
แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2022-11-20 02 11 24
  • ์Šนํ—Œ
KakaoTalk_Photo_2022-11-20-02-21-14
  • ์˜์„œ
KakaoTalk_Photo_2022-11-20-02-09-41
  • ์ธ์˜
KakaoTalk_Photo_2022-11-20-02-27-55

๐ŸŒ€ ๋ฑ…๊ทธ๋ฅด๋ฅด ์šฐ๋ฆฌ์˜ ์‚ฌ์ง„ ใ…‹

์ ‘๊ธฐ/ํŽผ์น˜๊ธฐ

์•… ! ํšŒ์˜ค๋ฆฌ๋‹ค !

์Šคํฌ๋ฆฐ์ƒท 2022-11-20 02 26 37

โ™จ๏ธ ๊ตฌํ˜„ ์‹œ ๊ฐ€์žฅ ์–ด๋ ค์› ๋˜ ๋ฐฉ๋ฒ•

์ ‘๊ธฐ/ํŽผ์น˜๊ธฐ

๊ทธ๋“ค์˜ ์Šคํ† ๋ฆฌ..

  • ๊นƒ ์ปจํ”Œ๋ฆญํŠธ๊ฐ€ ์–ด๋ ค์› ๋‹ค.
    ํŠนํžˆ ์—์…‹์— ๊ด€๋ จํ•ด์„œ ์ž๊พธ ์—๋Ÿฌ๊ฐ€ ๋– ์„œ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์„ ๋ชฐ๋ผ ์ผ๋‹จ develop์— ์ œ๋Œ€๋กœ ๋˜์–ด์žˆ๋Š” ์ฝ”๋“œ๋กœ< br> ํด๋ก ์„ ๋‹ค์‹œ ๋ฐ›์•„์„œ ์—์…‹์„ ๋‹ค์‹œ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๊ฒฐํ•˜์˜€๋‹ค.
    ๋ทฐ ์—ฐ๊ฒฐ ์ž‘์—…์ด ๋Šฆ์–ด์ ธ ์„œ๋ฒ„ ์—ฐ๊ฒฐ์„ ์ œ๋Œ€๋กœ ๋ถ™์ด์ง€ ๋ชปํ•ด์„œ ์•„์‰ฝ๋‹ค.

๐ŸŽฅ ์‹œ์—ฐ ์˜์ƒ

์ ‘๊ธฐ/ํŽผ์น˜๊ธฐ

^^

Simulator Screen Recording - iPhone 14 Pro - 2022-11-20 at 08 41 49