Skip to content

๐Ÿคผโ€โ™€๏ธ ํ”ผ์–ด์„ธ์…˜

Gihyun Cho edited this page Dec 19, 2020 · 3 revisions

๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป ๋ฉค๋ฒ„ ๐Ÿง‘๐Ÿปโ€๐Ÿ’ป ๐Ÿต

  • S011 ๊น€์‹ ์šฐ
  • S035 ์œ ์‹œํ˜•
  • S039 ์ด์Šน์ง„
  • S046 ์žฅ์ž„ํ˜ธ
  • S053 ์กฐ๊ธฐํ˜„
  • S054 ์กฐ์†ก์ฃผ

ํšŒ์˜ ๊ทธ๋ฃน

  • ํ”„๋กœ์ ํŠธ18 ์ž์œ ํ”„๋กœ์ ํŠธ A - BoostPocket โœˆ๏ธ
  • ํ”„๋กœ์ ํŠธ18 ์ž์œ ํ”„๋กœ์ ํŠธ B - BoostRunClub๐Ÿƒ


๊ฐœ๋ฐœ 2์ฃผ์ฐจ ํ”ผ์–ด์„ธ์…˜

ํ™œ๋™ ๊ณผ์ •

  • ๊ฐ์ž์˜ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์„ ๊ณต์œ 
  • ๊ตฌํ˜„ ์ค‘ ์ด์Šˆ์— ๋Œ€ํ•ด ํ† ๋ก 

๐Ÿ“– ํ™œ๋™ ๋‚ด์šฉ

์ด์Šˆ

CoreData ๊ด€๋ฆฌ ๋ฐฉ๋ฒ•

  • PersistenceContainer๋ฅผ ํด๋ž˜์Šค๋กœ ๊ด€๋ฆฌ
  • CRUD ๊ตฌํ˜„ ํ›„ Provider๊ฐ€ ํ˜ธ์ถœํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋„๋ก ํ•จ

์ฆ๊ฑฐ์šด TDD

  • ์ฃผ๋กœ ViewModel, Provider, PersistenceManager(์ฝ”์–ด๋ฐ์ดํ„ฐ์™€์˜ ํ†ต์‹ ) ํ…Œ์ŠคํŠธ์— ์ง‘์ค‘ํ–ˆ์Œ
  • ๋„คํŠธ์›Œํฌ ๋ชจ๋ธ์€ HTTP ์š”์ฒญ์ง์ „๊นŒ์ง€๋งŒ ํ…Œ์ŠคํŠธ (์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ url, http method ๋“ฑ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ „๋‹ฌ๋˜์—ˆ๋Š”์ง€)

์• ๋‹ˆ๋ฉ”์ด์…˜...!!

  • ์•ž์œผ๋กœ ์ง„ํ–‰ํ•  ๊ตฌํ˜„ ์‚ฌํ•ญ ์ค‘ ๋ฆฌํฌํŠธ์—์„œ ํŒŒ์ด๊ทธ๋ž˜ํ”„์— ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ ์šฉ ์˜ˆ์ • (์ด๋Ÿฐ๊ฒŒ์žˆ์—ˆ์–ด?) ๋ ์šฉ!ใ…‹ใ…‹

๐Ÿ”– ํŒ

  • ๋Ÿฌ๋‹ ์•ฑ์€ ์ž์ „๊ฑฐ ํƒ”์„ ๋•Œ์—๋Š” ํ™œ์šฉ์ด ์•ˆ๋œ๋‹ค
    • ๋Œ€์‹  ํฐ์„ ํ”๋“ค๋ฉด์„œ ๋Š๋ฆฌ๊ฒŒ ํƒ€๋ฉด ๊ฐ€๋Šฅํ•˜๋‹ค ใ…Žใ……ใ…Ž



๊ฐœ๋ฐœ 3์ฃผ์ฐจ ํ”ผ์–ด์„ธ์…˜

ํ™œ๋™ ๊ณผ์ •

  • ๊ฐ์ž์˜ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์„ ๊ณต์œ 
  • ๊ตฌํ˜„ ์ค‘ ์ด์Šˆ์— ๋Œ€ํ•ด ํ† ๋ก 

๐Ÿ“– ํ™œ๋™ ๋‚ด์šฉ

์ด์Šˆ

Date ์ €์žฅ๊ณผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์‹œ ํฌ๋งทํŒ… ๋ฌธ์ œ

  • Date๋ฅผ ์ €์žฅํ•  ๋•Œ๋Š” ์ ˆ๋Œ€์ ์ธ ์‹œ๊ฐ„์ด ์ €์žฅ๋จ
  • ํ”„๋ก ํŠธ์—์„œ Date์— ๋Œ€ํ•ด ์‚ฌ์šฉํ•  ๋•Œ๋Š” ํ˜„์žฌ ์œ„์น˜ ์‹œ๊ฐ„์œผ๋กœ ๋ณ€ํ™˜๋œ ๊ฐ’์„ ์‚ฌ์šฉํ•ด์•ผ ํ•จ
  • ํ˜„์žฌ ํ”„๋ก ํŠธ์—์„œ Date๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ Date -> String -> Date ๋กœ ๋ณ€ํ™˜ํ•ด์„œ ์“ฐ๊ณ  ์žˆ์Œ

์‹ฑ๊ธ€ํ†ค ํŒจํ„ด ์“ฐ์ž vs ์‹ฑ๊ธ€ํ„ด์€ ์•ˆํ‹ฐ ํŒจํ„ด์ด๋‹ค

๋‹จ์ 

  • PersistenceManager ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” ์•ˆ์“ฐ๋Š”๊ฒŒ ์ข‹์ง€ ์•Š์„๊นŒ?.?.?
  • ์‹ฑ๊ธ€ํ„ด์„ ์“ฐ๊ฒŒ ๋˜๋ฉด ๊ฐ์ฒด๊ฐ„์˜ ๊ด€๊ณ„๊ฐ€ ๋ถˆ๋ถ„๋ช…ํ•ด์ง„๋‹ค

์žฅ์  ๊ด€๋ฆฌํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค




๊ฐœ๋ฐœ 4์ฃผ์ฐจ ํ”ผ์–ด์„ธ์…˜

ํ™œ๋™ ๊ณผ์ •

  • ๊ฐ์ž์˜ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์„ ๊ณต์œ 
  • ๊ตฌํ˜„ ์ค‘ ์ด์Šˆ์— ๋Œ€ํ•ด ํ† ๋ก 

๐Ÿ“– ํ™œ๋™ ๋‚ด์šฉ

์ด์Šˆ

custom segmentedControl

  • ์ปจํŠธ๋กค ๊ฐœ์ˆ˜๋งŒํผ์˜ ๋ฒ„ํŠผ๊ณผ SelectedView ํ•˜๋‚˜๋ฅผ ๋‘๊ณ  Customํ•˜์—ฌ ๊ฐœ๋ฐœ
  • ์„ ํƒ์‹œ ์ด๋™์€ ์• ๋‹ˆ๋ฉ”์ด์…˜์œผ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค.

constraint switch ํ•ด์•ผํ•˜๋Š” ์ƒํ™ฉ์ผ ๋•Œ ์–ด๋–ป๊ฒŒ ํ• ์ง€

  • ๊ฐ™์€ constraint ๋ฅผ multiplier / constant๋งŒ ๋‹ค๋ฅด๊ฒŒ ํ•ด์„œ ๋‘๊ฐœ๋ฅผ ์—ฐ๊ฒฐํ•œ ๋‹ค์Œ, priority๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•

floating ๋ฒ„ํŠผ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•

  • ์Šคํƒ๋ทฐ์— ๋ฒ„ํŠผ์„ ๋„ฃ์–ด๋†“๊ณ  isHidden ์˜ต์…˜์„ on/off ํ•ด์ฃผ๋ฉด์„œ UIView.animate๋ฅผ ํ†ตํ•ด ์• ๋‹ˆ๋ฉ”์ด์…˜ ํšจ๊ณผ๋ฅผ ์ฃผ๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„

DiffableDataSource๋ฅผ ํ†ตํ•œ ๋งค๋„๋Ÿฌ์šด UI ๋ณ€ํ™” ์ ์šฉํ•˜๊ธฐ

  • ์ง€์ถœ๋ชฉ๋ก, ์—ฌํ–‰ ๋ชฉ๋ก ํ™”๋ฉด์—์„œ DiffableDataSource๋ฅผ ์ ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋ณ€ํ™”์™€ ๊ทธ์— ๋”ฐ๋ฅธ UI๋ฅผ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๊ตฌํ˜„

ํŒ

๋ธ”๋กœ๊ทธ ์˜ฎ๊ธธ๊ฑด๋ฐ ์ถ”์ฒœํ•ด์ฃผ์„ธ์šฅ~ !~!

  • ๋…ธ์…˜
  • velog
  • github.io
  • ๊ฐœ์ธ ํŽ˜์ด์ง€ ๋งŒ๋“ค์–ด์„œ ์“ฐ๊ธฐ~!
  • ๋ธŒ๋Ÿฐ์น˜
  • GitBook?
  • ์นด์นด์˜ค์Šคํ† ๋ฆฌ

CABasicAnimation keypath ๋ชจ์Œ ๋งํฌ

Clone this wiki locally