/iOS_BaseCamping

๐ŸŒฑ Camping place Info Search

Primary LanguageSwift

BaseCamping - ์‰ฝ๊ณ  ๋น ๋ฅธ ์บ ํ•‘์žฅ ๊ฒ€์ƒ‰

About BaseCamping

  • ์บ ํ•‘์— ๋Œ€ํ•œ ์ˆ˜์š”๊ฐ€ ๋†’์•„์ง€๋Š” ํ™˜๊ฒฝ ์†์—์„œ ์ „๊ตญ ๊ฐ์ง€์— ์žˆ๋Š” ์บ ํ•‘์žฅ์— ๋Œ€ํ•œ ์ •๋ณด ์ ‘๊ทผ์˜ ํŽธ์˜์„ฑ์ด ํ•„์š”
  • ์ง€์—ญ๋ณ„ / ๊ด€์‹ฌ ํ‚ค์›Œ๋“œ / ๊ทผ์ฒ˜ ์บ ํ•‘์žฅ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ฒ€์ƒ‰ ์—ฌ๊ฑด์„ ํ†ตํ•˜์—ฌ ํŽธ๋ฆฌํ•˜๊ฒŒ ์บ ํ•‘์žฅ ์ •๋ณด ์ œ๊ณต
  • ์บ ํ•‘์žฅ์— ๋Œ€ํ•ด์„œ ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฆฌ๋ทฐ ์ž‘์„ฑ ๋ฐ ์ฐœ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž ํŽธ์˜์„ฑ ์ฆ์ง„
  • Blog, Youtube, ๊ทผ์ฒ˜ ๊ฐ€๋ณผ๋งŒํ•œ ์žฅ์†Œ ๋“ฑ ๋ถ€๊ฐ€์ ์ธ ์ •๋ณด ์ œ๊ณต

Framework, Library

  • UIKit
  • Alamofire
  • Kingfisher
  • Realm-cocoa
  • Tabman

Project Plan & Log


Issues

1. IndexTab ๊ธฐ๋ฐ˜์˜ UI ๊ตฌ์„ฑ

  • ์ฒซ ๋ฒˆ์งธ ์‹œ๋„: Scroll View๋ฅผ ํ™œ์šฉํ•œ X์ถ• ๋ณ€๊ฒฝ => ๋„ ๋‹จ์œ„ ๊ตฌ๋ถ„์„ ํ–ˆ์„ ๋•Œ ์ด 16๋ฒˆ์˜ Api ํ˜ธ์ถœ์˜ ๋ฐœ์ƒ, ๊ฐ์ž 16๊ฐœ์˜ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๋งŒ๋“ค๋ฉด์„œ ์–ด์ง€๋Ÿฌ์›Œ์ง„ ๋‚˜์˜ ํŒŒ์ผ๋“ค
  • ๋‘ ๋ฒˆ์งธ ์‹œ๋„: PageView๋ฅผ ํ™œ์šฉํ•œ ๊ตฌ์„ฑ => Api ํ˜ธ์ถœ์„ ์ค„์ผ ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ, ์ž์—ฐ์Šค๋Ÿฝ์ง€ ์•Š์€ UI ๊ตฌ์„ฑ ๋ฐ ์• ๋‹ˆ๋ฉ”์ด์…˜, ContainerView ๊ตฌ์„ฑ์˜ ์ฒซ ๊ฒฝํ—˜
  • ๋งˆ์ง€๋ง‰ ์‹œ๋„: Tabman ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ™œ์šฉ => ์›ํ•˜๋˜ ์Šคํฌ๋กค๋ง ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ทฐ ๊ตฌ์„ฑ, ํ•ด๋‹น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ปค์Šคํ…€ ๋ฐฉ์‹์— ๋Œ€ํ•œ ํ•™์Šต

2. UIScrollView์˜ ์ •์ ์ธ ๋†’์ด๋กœ ์ธํ•œ ์ œํ•œ

  • UIScrollView๋ฅผ ์ฒ˜์Œ ์‚ฌ์šฉํ•˜๊ฒŒ๋˜๋ฉด์„œ ๊ฒช์€ ๋ฌธ์ œ, ๊ฐ View์˜ ๋†’์ด๋ฅผ ์ง์ ‘ ๊ณ„์‚ฐ
  • ์Šคํ† ๋ฆฌ๋ณด๋“œ ๊ธฐ๋ฐ˜์œผ๋กœ UIScrollView์˜ ํ™œ์šฉ ๋ฐฉ์‹์„ ํ•™์Šตํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ์ง„ํ–‰
  • UITableView์˜ ๋™์  ๋†’์ด๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๊ตฌํ˜„ํ–ˆ์„ ๋•Œ์™€ UIScroll๋ทฐ์˜ ์ฐจ์ด์ ์„ ํ™•์‹คํ•˜๊ฒŒ ์ธ์ง€
  • ํ•ด๊ฒฐ์ฑ…: ์žฌ๊ท€๋ฅผ ํ†ตํ•œ View ๊ฐ’์˜ ๋†’์ด๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ Height ์ œ์•ฝ์„ ์—…๋ฐ์ดํŠธ ํ•˜๋Š” ๊ฒƒ / ๊ธฐ์ค€์ด ๋˜๋Š” Content๋ฅผ ํ•˜๋‚˜ ์ •ํ•˜์—ฌ ๋ ˆ์ด์•„์›ƒ์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ => ๊ณ ์ •๋œ ๋†’์ด ๊ฐ’์— ๋Œ€ํ•œ ๊ณ„์‚ฐ๊ณผ ๋ถ„๊ธฐ ์ฒ˜๋ฆฌ๋กœ ๋ชจ๋‘ ๊ณ„์‚ฐํ•˜์—ฌ ์ ์šฉ

3. ๋‹ค์–‘ํ•œ API ํ˜ธ์ถœ์˜ ๋ฌธ์ œ

  • ํ•œ ํ™”๋ฉด์—์„œ ์‚ฌ์ง„ ๋ฐ ์ •๋ณด ๊ด€๋ จํ•œ ๋‹ค์–‘ํ•œ API๋ฅผ ํ˜ธ์ถœ
  • ํ•ด๊ฒฐ์ฑ…: DispatchGroup์„ ํ™œ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ํŒจ์นญ์„ ์šฐ์„ ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋ทฐ ๊ทธ๋ฆฌ๊ธฐ(CGD ๋ฐ ๋น„๋™๊ธฐ ๊ด€๋ จ ๊ฐœ๋…์— ๋Œ€ํ•œ ํ•™์Šต ์ „) => ์‚ฌ์šฉ์ž์˜ ๊ด€์ ์—์„œ ๊ฐ€์žฅ ๋จผ์ €๋ณด์—ฌ์ง€๋Š” ๋ฐ์ดํ„ฐ๋ถ€ํ„ฐ ์šฐ์„ ์ ์œผ๋กœ ๋ถˆ๋Ÿฌ์˜ค๊ณ , ์ด ํ›„ completionHandler๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋™๊ธฐ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ ํŒจ์นญ

4. ์—…๋ฐ์ดํŠธ ์‹ฌ์‚ฌ๊ฑฐ์ ˆ

  • ์œ ํŠœ๋ธŒ ์—ฐ๊ฒฐ๊ณผ ๊ด€๋ จ๋œ ๋‚ด๋ถ€ ์ฝ˜ํ…์ธ ๊ฐ€ ์—ฐ๋ น๊ณผ ๋งž์ง€ ์•Š์„ ์ˆ˜ ์žˆ๊ธฐ์— ์ด์— ๋Œ€ํ•œ ์—ฐ๋ น ์žฌ์„ค์ •์œผ๋กœ ์‹ฌ์‚ฌ ๊ฑฐ์ ˆ