Skip to content

๐Ÿงžโ€โ™‚๏ธ๐Ÿงšโ€โ™€๏ธย โ’นโ“กโ“”โ“โ“œโ“ข โ’ธโ“žโ“œโ“” โ“‰โ“กโ“คโ“” ๐Ÿงšโ€โ™€๏ธ๐Ÿงžโ€โ™‚๏ธ

Notifications You must be signed in to change notification settings

TeamNado-Sunbae/NadoSunbae-iOS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ™‹๐Ÿปโ€โ™€๏ธ๋‚˜๋„์„ ๋ฐฐ iOS

image

์•„๋Š” ์„ ๋ฐฐ ์—†์–ด๋„ ๊ดœ์ฐฎ์•„! ์šฐ๋ฆฌ ๊ฐ™์ด ์„œ๋กœ์˜ ์„ ๋ฐฐ๊ฐ€ ๋˜์–ด์ฃผ์ž!
์ œ2์ „๊ณต์ƒ์„ ์œ„ํ•œ ํ•™๊ณผํ›„๊ธฐ, ์ „๊ณต์ •๋ณด ๊ณต์œ  ํ”Œ๋žซํผ - ๋‚˜๋„์„ ๋ฐฐ

29th WE SOPT APPJAM ์ตœ์šฐ์ˆ˜์ƒ ๐Ÿ†
ํ•ด์ปคํ†ค ๊ธฐ๊ฐ„ : 2022.01.02 ~ 2022.01.22
์•ฑ์Šคํ† ์–ด ์ถœ์‹œ : 2022.03.12
์‚ฌ์šฉ์„ฑ ๊ฐœ์„  ๋ฐ ๊ธฐ๋Šฅ ํ™•์žฅ ์—…๋ฐ์ดํŠธ : 2022.11.05


๐ŸŽ ๋‚˜๋„์„ ๋ฐฐ iOS Developers

๐ŸŽ ์ง€์€์„ ๋ฐฐ ๐ŸŽ ๐ŸŽ ์ •๋นˆ์„ ๋ฐฐ ๐ŸŽ ๐ŸŽ ์€์ฃผ์„ ๋ฐฐ ๐ŸŽ
@hwangJi-dev @dev-madilyn @jane1choi

๐Ÿ› ๏ธ Development Environment


๐Ÿ“š Library

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(Library) ๋ฒ„์ „(Version) ์‚ฌ์šฉ๋ชฉ์ (Purpose)
SnapKit 5.0.0 Layout
Then 3.0.0 Layout
Moya 15.0.0 ์„œ๋ฒ„ ํ†ต์‹ 
RxSwift 6.5.0 ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ
RxCocoa 6.5.0 ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ
ReactorKit 3.2.0 MVVM ์•„ํ‚คํ…์ฒ˜ ํ™œ์šฉ
Firebase/Analytics 9.0.0 ์•ฑ ๋ฐ์ดํ„ฐ ๋ถ„์„
Firebase/Messaging 8.12.0 ํ‘ธ์‹œ ์•Œ๋ฆผ

โš™๏ธ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

๐Ÿ›๏ธ Architecture: ReactorKit์„ ํ™œ์šฉํ•œ MVVM

ReactorKit-MVVM

๐Ÿ—‚๏ธ Foldering

NadoSunbae-iOS
    โ”œโ”€โ”€๐Ÿ“ Global
    โ”‚   โ”œโ”€โ”€ LaunchScreen.storyboard
    โ”‚   โ”œโ”€โ”€ PublicData  
    โ”‚   โ”œโ”€โ”€ Factory 
    โ”‚   โ”œโ”€โ”€ Class
    โ”‚   โ”œโ”€โ”€ Struct
    โ”‚   โ”œโ”€โ”€ Extension
    โ”‚   โ”œโ”€โ”€ Protocol
    โ”‚   โ”œโ”€โ”€ Font
    โ”‚   โ””โ”€โ”€ UIComponent
    โ”‚       โ”œโ”€โ”€ Class
    โ”‚       โ””โ”€โ”€ Xib
    โ”œโ”€โ”€๐Ÿ“ Network
    โ”‚   โ”œโ”€โ”€ APIEssentials
    โ”‚   โ”œโ”€โ”€ APIModels
    โ”‚   โ”œโ”€โ”€ APIManagers
    โ”‚   โ”œโ”€โ”€ MoyaTarget
    โ”‚   โ””โ”€โ”€ NetworkLoggerPlugin.swift
    โ”œโ”€โ”€๐Ÿ“ Screen
    โ”‚   โ””โ”€โ”€ Classroom
    โ”‚       โ”œโ”€โ”€ Reactor
    โ”‚       โ”œโ”€โ”€ SB
    โ”‚       โ”œโ”€โ”€ VC
    โ”‚       โ””โ”€โ”€ Cell
    โ””โ”€โ”€๐Ÿ“ Support
        โ”œโ”€โ”€ AppDelegate.swift
        โ”œโ”€โ”€ SceneDelegate.swift
        โ”œโ”€โ”€ Assets.xcassets
        โ”œโ”€โ”€ Colorsets.xcassets
        โ”œโ”€โ”€ Info.plist
        โ””โ”€โ”€ Configuration
            โ”œโ”€โ”€ Development
            โ”œโ”€โ”€ QA
            โ””โ”€โ”€ Release

๐ŸŽฏ ์ฃผ์š” ๊ธฐ๋Šฅ

ํ™ˆ

๐Ÿ’ก ์ตœ์‹ ๊ธ€์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ํ™ˆ ํƒญ

  • ์„œ๋น„์Šค ๋‚ด์—์„œ ์ƒˆ๋กœ ์˜ฌ๋ผ์˜จ ๋ชจ๋“  ๊ธ€๋“ค(ํ›„๊ธฐ, 1:1 ์งˆ๋ฌธ, ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ธ€)์„ ํ•œ๋ˆˆ์— ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์„ ๋ฐฐ๋žญํ‚น์„ ํ†ตํ•ด ๋‚˜๋„์„ ๋ฐฐ ์„œ๋น„์Šค์—์„œ ์—ด์ •์ ์œผ๋กœ ํ™œ๋™ํ•ด์ฃผ๋Š” ์„ ๋ฐฐ๋“ค์„ ํ•œ๋ˆˆ์— ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

แ„’แ…ฉใ…


๊ณผ๋ฐฉ

๐Ÿ’กย ํ•™๊ณผ๋ณ„ ํ›„๊ธฐ๋ฅผ ์—ด๋žŒํ•˜๊ณ  ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ํ›„๊ธฐ ํƒญ

  • ๋ณธ์ธ์˜ ํ•™๊ณผ ๋ฐ ๊ด€์‹ฌ์žˆ๋Š” ํƒ€ํ•™๊ณผ์˜ ํ›„๊ธฐ๊ธ€์„ ์—ด๋žŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ƒ๋‹จ ํ† ๊ธ€ ๋ฒ„ํŠผ์„ ํ†ตํ•ด ํ•™๊ณผ ํ•„ํ„ฐ ๋ฐ”ํ…€์‹œํŠธ๋ฅผ ๋ถˆ๋Ÿฌ์™€ ์—ด๋žŒ ํ•™๊ณผ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ณธ์ธ์˜ ํ•™๊ณผ ํ›„๊ธฐ๋ฅผ ์ตœ์†Œ 1ํšŒ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค!
    • ํ•™๊ณผ ํ›„๊ธฐ ์ž‘์„ฑ ํ•ญ๋ชฉ
      • ํ•„์ˆ˜: ํ•™๊ณผ์˜ ํ•œ์ค„ํ‰, ์žฅ๋‹จ์ 
      • ์„ ํƒ: ๋ฐฐ์šฐ๋Š” ๊ณผ๋ชฉ, ์ถ”์ฒœ ์ˆ˜์—…, ํž˜๋“  ์ˆ˜์—…, ํ–ฅํ›„ ์ง„๋กœ, ๊ฟ€ํŒ (์ตœ์†Œ 1๊ฐœ ์ด์ƒ ์ž‘์„ฑ)

แ„’แ…ฎแ„€แ…ต


๐Ÿ’กย ํ›„๊ธฐ ์ž‘์„ฑ์ž์™€ 1:1 ์งˆ๋ฌธ์„ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋Š” 1:1 ์งˆ๋ฌธ ํƒญ

  • ๊ด€์‹ฌ์žˆ๋Š” ํ•™๊ณผ์˜ ํ›„๊ธฐ๋ฅผ ์ธ์ƒ์ ์œผ๋กœ ์ฝ์€ ํ›„ ์ถ”๊ฐ€์ ์œผ๋กœ ๋‚˜๋ˆ„๊ณ  ์‹ถ์€ ์งˆ๋ฌธ์ด ์žˆ๋‹ค๋ฉด 1:1 ์งˆ๋ฌธ ๊ธฐ๋Šฅ์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์„ ๋ฐฐ์˜ 1:1 ์งˆ๋ฌธ ๋ชฉ๋ก์„ ๋ณด๊ฑฐ๋‚˜ ์ƒˆ ์งˆ๋ฌธ์„ ๋‚จ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์งˆ๋ฌธ ๊ธฐ๋Šฅ์„ ์ฑ„ํŒ… ์Šค๋ ˆ๋“œ๋กœ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ค๋กœ์ง€ ์งˆ๋ฌธ์ž์™€, ์งˆ๋ฌธ์„ ๋ฐ›์€ ์‚ฌ์šฉ์ž๋งŒ ๋ฉ”์‹œ์ง€๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ผ๋ฐ˜ ์œ ์ €๋“ค์€ ๊ธ€ ์—ด๋žŒ๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. (๋‹ต๊ธ€ ์ž‘์„ฑ ๋ถˆ๊ฐ€)
  • ๋ถ€์ ์ ˆํ•œ ์งˆ๋ฌธ ๋ฐ ๋‹ต๊ธ€์€ ์‹ ๊ณ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์œ ์ €๋ฅผ ์ฐจ๋‹จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (์ฐจ๋‹จ๋œ ์œ ์ €์˜ ๊ธ€์€ ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.)

11


์ปค๋ฎค๋‹ˆํ‹ฐ

๐Ÿ’กย ์ž์œ ๋กœ์šด ๊ธ€์„ ๋‚จ๊ธฐ๊ณ  ์†Œํ†ตํ•  ์ˆ˜ ์žˆ๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ ํƒญ

  • ์ปค๋ฎค๋‹ˆํ‹ฐ ํƒญ์—์„œ๋Š” ์ข€ ๋” ์ž์œ ๋กญ๊ฒŒ ์œ ์ €๋“ค๊ฐ„์— ์†Œํ†ต์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์งˆ๋ฌธ/์ •๋ณด/์ž์œ  ๊ธ€์„ ์ž‘์„ฑํ•˜๊ณ  ์†Œํ†ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ํŠน์ •ํ•™๊ณผ์˜ ์ „๊ณต์ƒ ์ „์ฒด์—๊ฒŒ ํ˜น์€ ์ „์ฒดํ•™๊ณผ์˜ ํ•™์ƒ๋“ค์—๊ฒŒ ์งˆ๋ฌธํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ์งˆ๋ฌธ ๊ธฐ๋Šฅ์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์งˆ๋ฌธ๊ธ€์„ ์ž‘์„ฑํ•  ๋•Œ ํŠน์ • ํ•™๊ณผ๋ฅผ ์ง€์ •ํ•˜๋ฉด, ํ•ด๋‹น ํ•™๊ณผ์˜ ๋ณธ์ „๊ณต, ์ œ2์ „๊ณต์ƒ ๋ชจ๋‘์—๊ฒŒ ์•Œ๋ฆผ์ด ๊ฐ‘๋‹ˆ๋‹ค.
  • ํ•™๊ณผ ํ•„ํ„ฐ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ํŠน์ • ํ•™๊ณผ์˜ ๊ธ€๋งŒ์„ ์—ด๋žŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด ๊ฒŒ์‹œ๊ธ€์„ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ปค๋ฎค


์•Œ๋ฆผ

๐Ÿ’กย ๋‚˜์—๊ฒŒ ์˜จ ์•Œ๋ฆผ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์•Œ๋ฆผ ํƒญ

1:1 ์งˆ๋ฌธ

  1. ํ›„๋ฐฐ๊ฐ€ 1:1์งˆ๋ฌธ๊ธ€ ์ฒ˜์Œ ์ž‘์„ฑ์‹œ โ†’ ์„ ๋ฐฐ์—๊ฒŒ ์•Œ๋ฆผ
  2. ์ž‘์„ฑํ–ˆ๋˜ 1:1 ์งˆ๋ฌธ๊ธ€์— ์„ ๋ฐฐ๊ฐ€ ๋‹ต๊ธ€ ๋‹ฌ์•„์คฌ์„์‹œ. โ†’ ํ›„๋ฐฐ์—๊ฒŒ ์•Œ๋ฆผ
  3. ํ›„๋ฐฐ๊ฐ€ ๋ณธ์ธ์ด ์ž‘์„ฑํ•œ 1:1์งˆ๋ฌธ๊ธ€์— ์ถ”๊ฐ€ ๋Œ“๊ธ€์„ ๋‹ค๋Š” ๊ฒฝ์šฐ โ†’ ์„ ๋ฐฐ์—๊ฒŒ ์•Œ๋ฆผ

์ปค๋ฎค๋‹ˆํ‹ฐ

  1. ๋ณธ์ธ์ด ์ž‘์„ฑํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ๊ธ€์— ๋Œ“๊ธ€์ด ๋‹ฌ๋ฆฐ๊ฒฝ์šฐ ์•Œ๋ฆผ
  2. ๋‹ต๊ธ€์„ ์ž‘์„ฑํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ธ€์— ๋‹ต๊ธ€์ด ๋‹ฌ๋ฆฐ ๊ฒฝ์šฐ ์•Œ๋ฆผ
  3. ํŠน์ •ํ•™๊ณผ๋Œ€์ƒ ์งˆ๋ฌธ๊ธ€์ด ์˜ฌ๋ผ์˜จ ๊ฒฝ์šฐ ์•Œ๋ฆผ

์•Œ๋ฆผ


๋งˆ์ดํŽ˜์ด์ง€

  • 1:1 ์งˆ๋ฌธ ์ž‘์„ฑ ์‹œ ์„ ๋ฐฐ์˜ ๋งˆ์ดํŽ˜์ด์ง€์— ์งˆ๋ฌธ ๊ธ€์ด ๊ฒŒ์‹œ๋ฉ๋‹ˆ๋‹ค.
  • ์„ ๋ฐฐ์˜ ๋งˆ์ดํŽ˜์ด์ง€์—์„œ๋Š” ์„ ๋ฐฐ์˜ ๋ณธ์ „๊ณต, ์ œ2์ „๊ณต, ํ•œ์ค„์†Œ๊ฐœ, ์งˆ๋ฌธ ์‘๋‹ต๋ฅ  ๋“ฑ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ณธ์ธ์˜ ๋งˆ์ดํŽ˜์ด์ง€์ธ ๊ฒฝ์šฐ, ํ”„๋กœํ•„์„ ์ˆ˜์ •ํ•˜๊ณ  ํ•œ ์ค„ ์†Œ๊ฐœ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋‚ด๊ฐ€ ์“ด ๊ธ€, ๋‹ต๊ธ€, ํ›„๊ธฐ, ์ข‹์•„์š” ๋ชฉ๋ก์„ ๋ชจ์•„๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์ด


๐Ÿ’ป Coding Convention

๐Ÿ–‹ ๋„ค์ด๋ฐ

Class & Struct

  • ํด๋ž˜์Šค/๊ตฌ์กฐ์ฒด ์ด๋ฆ„์€ UpperCamelCase๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

ํ•จ์ˆ˜, ๋ณ€์ˆ˜, ์ƒ์ˆ˜

  • ํ•จ์ˆ˜์™€ ๋ณ€์ˆ˜์—๋Š” lowerCamelCase๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • ๋ฒ„ํŠผ๋ช…์—๋Š” Btn ์•ฝ์ž๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • ์•ฝ์–ด๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, ์•ฝ์–ด๋Š” ๋Œ€๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    • ์˜ˆ์‹œ

      password -> pw -> PW

      userid -> userID

  • ๋ชจ๋“  IBOutlet์—๋Š” ํ•ด๋‹น ํด๋ž˜์Šค๋ช…์„ ๋’ค์— ๋ถ™์ž…๋‹ˆ๋‹ค.

    ์˜ˆ์™ธ Image๋Š” ํ•ญ์ƒ Img๋กœ ์ค„์—ฌ์„œ ๋„ค์ด๋ฐํ•ฉ๋‹ˆ๋‹ค.

    @IBOutlet weak var settingImgView: UIImageView!
  • ๊ธฐ๋ณธ ํด๋ž˜์Šค ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ๋Š” ์•ฝ์–ด ๊ทœ์น™์— ๋”ฐ๋ผ ๋„ค์ด๋ฐํ•ฉ๋‹ˆ๋‹ค.

    • ์˜ˆ์‹œ

      TV TVC CV CVC VC NVC TBC

      TableView -> TV
      TableViewCell -> TVC
      CollectionView -> CV
      CollectionView Cell -> CVC
      ViewController -> VC
      NavigationController -> NVC
      TabbarController -> TBC

    ์ข‹์€ ์˜ˆ

    @IBOutlet weak var nadoBtn: UIButton!
    @IBOutlet weak var nadoBackMainView: UIView!
    @IBOutlet weak var reviewPostTV: UITableView!

    ๋‚˜์œ ์˜ˆ

    @IBOutlet weak var ScrollView: UIScrollView!
    @IBOutlet weak var nadoCollectionView: UICollectionView!
    @IBOutlet weak var tagCollectionView: UICollectionView!
    @IBOutlet weak var tableview: UITableView!

ํ•จ์ˆ˜ ๋„ค์ด๋ฐ

  • setUp โ†’ setUpDelegate (๊ธฐ๋Šฅ๊ด€๋ จ ํ•จ์ˆ˜)
  • configure โ†’ configureUI (UI๊ด€๋ จ ํ•จ์ˆ˜)
  • IBActionโ†’ tapDismissBtn() : ๋‹จ์ˆœ ํด๋ฆญ, presentResultVC() : ํ™”๋ฉด์ „ํ™˜ ๋ฉ”์†Œ๋“œ(push, present, pop, dismiss)

๐Ÿท ์ฃผ์„

MARK ์ฃผ์„


// MARK: @IBOutlet

// MARK: Properties

// MARK: @IBAction

// MARK: LifeCycle

// MARK: - UI

// MARK: - Custom Methods

// MARK: - ํ”„๋กœํ† ์ฝœ๋“ค ํ•˜๋‚˜์”ฉ ์ฑ„ํƒํ•ด์„œ Extension ์œผ๋กœ ๋นผ๊ธฐ (TV, CV, .., Custom Delegate ๋ชจ๋‘)

/// ~ ํ•˜๋Š” ๋ฉ”์„œ๋“œ (ํ•จ์ˆ˜๋Š” ํ•ญ์ƒ ๋ฌธ์„œํ™”)

// TODO: ์•ž์œผ๋กœ ํ•  ์ผ์„ TODO๋กœ ์ ์–ด๋‘๊ธฐ
 

โญ•๏ธ ๊ณต๋ฐฑ
  • ํƒญ ์‚ฌ์ด์ฆˆ๋Š” 4๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • ํ•œ ์ค„์˜ ์ตœ๋Œ€ ๊ธธ์ด๋Š” 80์ž๋กœ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.

  • ์ตœ๋Œ€ tab depth ์ œํ•œ

    • tab์˜ ์ตœ๋Œ€ depth๋Š” 4๋กœ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.
    • ์ด ์ด์ƒ์œผ๋กœ depth๊ฐ€ ๊ธธ์–ด์ง€๋ฉด ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
    • ๊ทธ ์ด์ƒ์œผ๋กœ ๊ฐœ์„ ํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ํŒ๋‹จ๋˜๋Š” ๊ฒฝ์šฐ, ํŒ€์›๋“ค๊ณผ์˜ ์ฝ”๋“œ๋ฆฌ๋ทฐ๋ฅผ ํ†ตํ•ด ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ด„ํ˜ธ ์‚ฌ์šฉ

    • (if, while, for)๋ฌธ ๊ด„ํ˜ธ ๋’ค์— ํ•œ์นธ์„ ๋„์šฐ๊ณ  ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
       if (left == true) {
         // logic
       }
  • ๋„์–ด์“ฐ๊ธฐ

    let a = 5; // ์–‘์ชฝ ์‚ฌ์ด๋กœ ๋„์–ด์“ฐ๊ธฐ ํ•˜๊ธฐ
    if (a == 3) {
      // logic
    }

๐ŸŽธ ๊ธฐํƒ€๊ทœ์น™
  • ์™ธ๋ถ€์—์„œ ์‚ฌ์šฉ๋˜์ง€ ์•Š์„ ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜๋Š” private์œผ๋กœ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค.

  • viewDidLoad() ์™€ ๊ฐ™์€ ์ƒ๋ช…์ฃผ๊ธฐ ํ•จ์ˆ˜๋“ค์—๋Š” function๋งŒ ์œ„์น˜์‹œํ‚ต๋‹ˆ๋‹ค.

  • ๋ถˆํ•„์š”ํ•œ self๋Š” ์ง€์–‘ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์™ธ ํด๋กœ์ €๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์ž์ฒด ํ•จ์ˆ˜์— self๋ฅผ ๋ถ™์—ฌ์ค๋‹ˆ๋‹ค.

  • Extension ์„ ์‚ฌ์šฉํ•ด ๊ธฐ๋Šฅ ๋‹จ์œ„๋กœ ์ฝ”๋“œ๋ฅผ ๋” ๊ฐ€๋…์„ฑ์žˆ๊ฒŒ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

    <๊ธฐ๋ณธ ํด๋ž˜์Šค์— ๋ฐฐ์น˜๋˜๋Š” ๊ฒƒ>

    • IBOutlet, Properties, LifeCycle, IBAction

    <Extension ๋ฐฐ์น˜ ์ˆœ์„œ>

    1. UI
    2. custom Methods
    3. delegate (extension์œผ๋กœ ๋นผ๋Š” ํ”„๋กœํ† ์ฝœ๋“ค ์ž์œ ๋กญ๊ฒŒ)
    4. ๋…ธํ‹ฐ, ํ‚ค๋ณด๋“œ ๋“ฑ๋“ฑ 
    5. Network
    


โœ‰๏ธ Commit Convention

๐Ÿ”จย Fix: ๋ฒ„๊ทธ, ์˜ค๋ฅ˜ ํ•ด๊ฒฐ
โœ…ย Chore: ์ฝ”๋“œ ์ˆ˜์ •, ๋‚ด๋ถ€ ํŒŒ์ผ ์ˆ˜์ • ๋“ฑ ์žก์ผ ๋ชจ๋‘
โž•ย Add: Asset ์ถ”๊ฐ€, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€, ์ƒˆ๋กœ์šด ํŒŒ์ผ ์ƒ์„ฑ
โœจย Feat: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๊ตฌํ˜„
โšฐ๏ธย Remove: ์“ธ๋ชจ์—†๋Š” ์ฝ”๋“œ, ํŒŒ์ผ ์‚ญ์ œ
๐Ÿ“ย Docs: README, WIKI ๋“ฑ์˜ ๋ฌธ์„œ ๊ฐœ์ •
๐Ÿ’„ย Mod: Storyboard ํŒŒ์ผ๋งŒ ์ˆ˜์ •ํ•œ ๊ฒฝ์šฐ
๐Ÿššย Move: ํ”„๋กœ์ ํŠธ ๋‚ด ํŒŒ์ผ ์ด๋™
โช๏ธ Rename: ํŒŒ์ผ ์ด๋ฆ„ ๋ณ€๊ฒฝ
โ™ป๏ธย Refactor: ๋™์ž‘ ๊ฒฐ๊ณผ๋Š” ๊ฐ™์œผ๋‚˜ ์ฝ”๋“œ ์ž์ฒด ์ „๋ฉด ์ˆ˜์ • ๋ฐ ์„ฑ๋Šฅ ๊ฐœ์„ 

โœจGithub Management

๐Ÿ™‹๐Ÿปโ€โ™€๏ธ NadoSunbae-iOS Gitflow ๐Ÿ™‹๐Ÿปโ€โ™€๏ธ
1. Issue๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
2. feature Branch๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
3. Add - Commit - Push - Pull Request ์˜ ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค.
4. Pull Request๊ฐ€ ์ž‘์„ฑ๋˜๋ฉด ์ž‘์„ฑ์ž ์ด์™ธ์˜ ๋‹ค๋ฅธ ํŒ€์›์ด Code Review๋ฅผ ํ•œ๋‹ค.
5. Code Review๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด Pull Request ์ž‘์„ฑ์ž๊ฐ€ develop Branch๋กœ merge ํ•œ๋‹ค.
6. ์ข…๋ฃŒ๋œ Issue์™€ Pull Request์˜ Label๊ณผ Project๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค.

๐ŸŒด ๋ธŒ๋žœ์น˜


๐Ÿ“Œ ๋ธŒ๋žœ์น˜ ๋‹จ์œ„

  • ๋ธŒ๋žœ์น˜ ๋‹จ์œ„ = ์ด์Šˆ ๋‹จ์œ„ = PR๋‹จ์œ„

๐Ÿ“Œ ๋ธŒ๋žœ์น˜๋ช…

  • ๋ธŒ๋žœ์น˜๋Š” ๋ทฐ ๋‹จ์œ„๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ('UI / Func / Server' ๋กœ ๊ธฐ๋Šฅ ์„ธ๋ถ€ ๊ตฌ๋ถ„)
  • ๋ธŒ๋žœ์น˜ ๊ทœ์น™ โ†’ feature/#์ด์Šˆ๋ฒˆํ˜ธ-(UI/Func/Server)-ํƒญ(์Šคํฌ๋ฆฐ)-๊ธฐ๋Šฅ๊ฐ„๋žต์„ค๋ช…
  • ex) feature/#1-UI-review-makeNaviBar

๐Ÿ’ก ์ด์Šˆ, PR ๊ทœ์น™


๐Ÿ“Œ Issue๋ช… = PR๋ช…

  • โœจย [FEAT]
  • ๐Ÿš‘๏ธ [HOTFIX]
  • ๐Ÿ”จย [FIX]
  • โ™ป๏ธย [REFACTOR]
  • โœ…ย [CHORE]

About

๐Ÿงžโ€โ™‚๏ธ๐Ÿงšโ€โ™€๏ธย โ’นโ“กโ“”โ“โ“œโ“ข โ’ธโ“žโ“œโ“” โ“‰โ“กโ“คโ“” ๐Ÿงšโ€โ™€๏ธ๐Ÿงžโ€โ™‚๏ธ

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages