Skip to content

soo941226/CatchLunch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

CatchLunch, ๋ง›์ง‘์ฐพ๋Š” ์•ฑ

Catch Lunch I'm hungry... look for ๐Ÿš
Plan App Store Link
Basic concept Routing
App Routing

์‚ฌ์šฉํ•œ ๊ธฐ์ˆ 

Theme List
U.I. - UIKit with Autolayout
- MapKit
Asynchronous Programming - DispatchQueue
Network - URLSession
Local DB - CoreData
Public API - ๊ฒฝ๊ธฐ๋ฐ์ดํ„ฐ๋“œ๋ฆผ - ๊ฒฝ๊ธฐ๋„ ๋ง›์ง‘
- ๊ฒฝ๊ธฐ๋ฐ์ดํ„ฐ๋“œ๋ฆผ - ๊ฒฝ๊ธฐ๋„ ๋ชจ๋ฒ”์‹๋‹น
- Naver search API to search image
- Daum search api to search image
Map Routing MapKit.MKRoute
Test - XCTest
Convention - SwiftLint



์‚ฌ์šฉํ•œ ๋””์ž์ธํŒจํ„ด

  • Observer pattern
  • Facade pattern
  • Coordiantor pattern
  • Delegation pattern
  • Factory pattern
  • MVVM(with completion handler)



ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ์š”์†Œ

project

  1. Util

    • ์•„ํ‚คํ…์ฒ˜์— ์†ํ•˜์ง€ ์•„๋‹ˆํ•˜๋ฉด์„œ, ์•ฑ์„ ๊ตฌ์„ฑํ•˜๋Š”๋ฐ์— ํ•„์š”ํ•œ ํƒ€์ž…๋“ค
  2. Extension

    • ์•„ํ‚คํ…์ฒ˜์— ์†ํ•˜์ง€ ์•„๋‹ˆํ•˜๋ฉด์„œ, ์ด๋ฏธ ์ •์˜๋˜์–ด์žˆ๋Š” ํƒ€์ž…์„ ํ™•์žฅํ•˜๋Š” ๊ฒฝ์šฐ
  3. Asset

    • ์•„ํ‚คํ…์ฒ˜์— ์†ํ•˜์ง€ ์•„๋‹ˆํ•˜๋ฉด์„œ, ์•ฑ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ฌธ์ž์—ด, ๊ทธ๋ฆผ, ์•ฑ์„ค์ • ๋“ฑ์— ๊ด€ํ•œ ๋‚ด์šฉ๋“ค
  4. Model

    • Entity ๋ฐ Model ์ •์˜
  5. IOChannel

    • Entity๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์ฑ„๋„๋“ค์„ ์ •์˜
  6. Service

    • IOChannel์„ ์‚ฌ์šฉํ•˜๋ฉด์„œ, ๊ฐ€์ ธ์˜จ Entity๋ฅผ ์•ฑ์—์„œ ์‚ฌ์šฉํ•˜๋Š” Model๋กœ ๋ฐ”๊พธ๋Š” ํƒ€์ž…๋“ค
    • ์ด๋ฆ„์ฒ˜๋Ÿผ ์‹ค์ œ๋กœ ์œ ์ €๊ฐ€ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋Š” ์„œ๋น„์Šค๋“ค
  7. ViewModel

    • Service๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์–ด๋–ค ๋ทฐ์—์„œ๋„ ๊ทธ ๊ธฐ๋Šฅ์„ ์˜จ์ „ํžˆ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋ธ๋“ค
  8. Coordinator

    • ์ฒซ๋ฒˆ์งธ๋กœ Navigation์— ๊ด€ํ•œ ๋‚ด์šฉ์„ ์—ฌ๊ธฐ์„œ ๋‹ด๋‹นํ•˜๊ฒŒ ๋จ
    • ๋‘๋ฒˆ์งธ๋กœ ViewModel์„ ์ƒ์„ฑํ•˜๋ฉด์„œ, ์ด๋•Œ Service๋ฅผ ViewModel์— ์ฃผ์ž…ํ•ด์ฃผ๊ณ , ๋‹ค์‹œ ์ด๋ฅผ Controller์—๊ฒŒ ๋„ฃ์–ด์ฃผ๊ฒŒ ๋จ
    • ํ˜„์žฌ์—๋Š” ๋‹ค๋ฅธ ํƒ€์ž…๋“ค๋ณด๋‹ค ๋งŽ์€ ์ฑ…์ž„์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ  ์ฒ˜์Œ์— ์ƒ๊ฐํ–ˆ๋˜ ์—ญํ• ๋งŒ์„ ํ•˜๊ณ  ์žˆ์ง€ ์•Š์•„์„œ ์ˆ˜์ •์ด ํ•„์š”ํ•œ ๋ถ€๋ถ„
  9. Presentor

    • UIView, UIViewController๋“ฑ์ด ์†ํ•˜๊ฒŒ ๋จ



ํ…Œ์ŠคํŠธ ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ์š”์†Œ

test project

  1. Feature

    • ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ์ „์—ญ์ ์œผ๋กœ ์“ฐ์ด๋Š” ๋‚ด์šฉ ์ •์˜
  2. Mock

    • ๊ธฐ๋Šฅ์„ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์œ„ํ•œ ๋‚ด์šฉ๋“ค ์ •์˜
    • MockSession, MockService ๋“ฑ
  3. Stub

    • ํ…Œ์ŠคํŠธ์— ์‚ฌ์šฉ์ด ๋˜๋ฉด์„œ ์œ ์˜๋ฏธํ•œ ๊ฐ’๋“ค์„ ์ •์˜
  4. Dummy

    • ํ…Œ์ŠคํŠธ์— ์‚ฌ์šฉ์ด ๋˜๊ธฐ๋Š” ํ•˜์ง€๋งŒ ๋ฌด์˜๋ฏธํ•œ ๊ฐ’๋“ค์„ ์ •์˜
  5. Test---

    • ์‹ค์ œ๋กœ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๊ฐ€ ์ž‘์„ฑ๋˜๋Š” XCTestCase๋ฅผ ์ƒ์†๋ฐ›๋Š” ํƒ€์ž…๋“ค์„ ์ •์˜

ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ

coverage

  • Presentor ๋กœ์ง๋“ค์€ ์•„์ง ๊ณต๋ถ€์™€ ๊ฒฝํ—˜์ด ๋ถ€์กฑํ•˜์—ฌ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค
  • ์ดˆ๊ธฐ์—๋Š” coverage 100%๋ฅผ ๋ชฉํ‘œ๋กœ TDD๋ฅผ ์ง„ํ–‰์„ ํ–ˆ์ง€๋งŒ, ์ด ๊ณผ์ •์—์„œ Aํƒ€์ž…์—์„œ ํ•œ๋ฒˆ ํ…Œ์ŠคํŠธ๊ฐ€ ๋œ ์ฝ”๋“œ ๋ธ”๋ก์ด Bํƒ€์ž…์—์„œ ๋‹ค์‹œ ํ…Œ์ŠคํŠธ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค
  • ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด ์‹ค์ œ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๊ฑฐ๋‚˜, ํ˜น์€ ์ด ๋‘˜์„ ์ผ๋ฐ˜ํ™”ํ•œ ๋’ค ํ•ด๋‹น ํƒ€์ž…์„ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๋Š” ์ผ์„ ํ•  ์ˆ˜ ์žˆ์—ˆ์œผ๋‚˜, ๋‹จ๊ธฐ์ ์ธ ์ƒ์‚ฐ์„ฑ์˜ ์ธก๋ฉด์—์„œ ๊ทธ๋Ÿฌํ•œ ์ผ์„ ํ•˜๋Š” ๊ฒƒ์€ ์„ธ์›Œ๋‘์—ˆ๋˜ ๋ชฉํ‘œ์— ์–ด๊ธ‹๋‚ฌ๊ธฐ์— ๊ทธ๋ƒฅ ์ง„ํ–‰์„ ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค

๋กœ๊ณ  ์ด๋ฏธ์ง€ ์ถœ์ฒ˜

About

I'm hungry... look for ๐Ÿš in Gyeonggi

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published