๊ณต๋ถ€ ์—ฐ์Šต์žฅ :-)

TIL_2019_05

|

2019.05.12

  • ๋„ค์ด๋ฒ„์ง€๋„์—์„œ map์˜ userlocation์„ ๋ฐ›์•„์˜ฌ๋•Œ Doubleํ˜•์ธ๋ฐ, ์†Œ์ˆ˜์  ์ž๋ฆฌ๊ฐ€ 14์ž๋ฆฌ๊นŒ์ง€ ๋‚˜์˜ค๊ณ  ๋ฏธ์„ธํ•˜๊ฒŒ ์กฐ๊ธˆ์”ฉ ์ขŒํ‘œ๊ฐ€ ๊ณ„์† ๋ณ€ํ™”ํ•ด์„œ ์ขŒํ‘œ ๋ณ€ํ™”๋•Œ๋งˆ๋‹ค ์ฃผ๋ณ€๋งˆํŠธ ์œ„์น˜๋ฅผ fetchํ•˜๋„๋ก ๊ตฌํ˜„ํ•˜๋Š”๊ฑด ๋„ˆ๋ฌด ๋‚ญ๋น„๋ผ๊ณ  ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.
  • ์ฒ˜์Œ์— ๋ทฐ๊ฐ€ ๋œฐ๋•Œ ์ด๋ฏธ ์œ„์น˜ ํŠธ๋ž™ํ‚น ์ƒํƒœ์ด๊ณ  ์œ„์น˜๊ฐ€ ๊ฐ์ง€๋˜์ž๋งˆ์ž ์ตœ์†Œ ๊ฒ€์ƒ‰๋‹จ์œ„ 2km๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋„๋ก ๋งŒ๋“ค๋ ค๊ณ ํ–ˆ๋Š”๋ฐ, ํŽธํ•˜๊ฒŒ ๋งŒ๋“ค๋ ค๋ฉด ๊ทธ๋ƒฅ ์‚ฌ์šฉ์ž๊ฐ€ ํ•œ๋ฒˆ ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์„๋•Œ fetch๋˜๊ฒŒ ํ•˜๋ฉด ๋์ง€๋งŒ ๋งˆ์Œ์— ๋“ค์ง€ ์•Š์•˜๋‹ค.
  • ์ง€๋„์—์„œ ์ฐพ์•„๋ณด๋‹ˆ ๋„ค์ด๋ฒ„์ง€๋„๊ฐ€ ๋ฆฌํ„ดํ•œ ์ขŒํ‘œ์˜ ์†Œ์ˆ˜์  ๋„ท์งธ์ž๋ฆฌ๊นŒ์ง€๋งŒ ์ฐ์–ด๋ด๋„ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ์ •ํ™•๋„๋งŒํผ์˜ ์œ„์น˜๊ฐ€ ๋‚˜์™”๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ๋ฏธ์„ธํ•˜๊ฒŒ ๋ณ€ํ™”ํ•˜๋Š” ์œ„์น˜๋„ ๋„ท์งธ์ž๋ฆฌ ์ดํ›„์˜ ์ž๋ฆฟ์ˆ˜์ž„์„ ํ™•์ธ.
  • ์‚ฌ์šฉ์ž ์œ„์น˜๋ฅผ ํŒ๋ณ„ํ• ๋•Œ ๋„ท์งธ์ž๋ฆฌ ์ดํ›„๋กœ ๋ฒ„๋ฆผํ•œ ์ˆ˜๋ฅผ ๊ฐ€์ง€๊ณ  ํŒ๋ณ„ํ•˜๊ณ , ํ˜„์žฌ ํƒ์ƒ‰ํ•ด์„œ ๋ฆฌํ„ดํ•œ ์ขŒํ‘œ ๊ฐ’์ด ํ˜„์žฌ ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ์— ์ €์žฅ๋œ ์ขŒํ‘œ๊ฐ’๊ณผ ์ฐจ์ด๊ฐ€ ํฌ๊ฒŒ ๋‚˜์ง€ ์•Š๋Š”์ด์ƒ ์ƒˆ ์ขŒํ‘œ๋ฅผ ๋ณ€์ˆ˜์— ๋Œ€์ž…ํ•˜์ง€ ์•Š๋Š” ๋ฐฉ์‹์œผ๋กœ ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜๋„๋ก ์ƒ๊ฐํ–ˆ๋‹ค.
  • Double ์†Œ์ˆ˜์  ๋ฒ„๋ฆฌ๊ธฐ

2019.05.13

  • ์˜ค๋Š˜๋„ ๋Œ€์ฐจ๊ฒŒ ๊นŒ์ด๋ฉด์„œ ์–ป์€ ์ง€์‹๋“คโ€ฆใ…Ž
  • cornerRadius๊ฐ€ ์ ์šฉ๋œ ๋ทฐ๋Š” ๊ทธ๋ฆผ์ž๋ฅผ ๋ฐ”๋กœ ์ ์šฉํ•  ์ˆ˜ ์—†๋‹ค. clipToBounds์†์„ฑ๋•Œ๋ฌธ์—!
  • outerView๋ฅผ ๋งŒ๋“ค์–ด์„œ ๊ทธ๋ฆผ์ž๋ฅผ ์ ์šฉ. ๋ผ์šด๋”ฉ ๋ชจ์„œ๋ฆฌ๊ฐ€ ์ ์šฉ๋œ ๋ทฐ๋ฅผ outerView์— ์„œ๋ธŒ๋ทฐ๋กœ ์ถ”๊ฐ€
  • UIBezierPath๋ฅผ ์ด์šฉํ•ด์„œ CGpath๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ๋ฆผ์ž๋ฅผ ์ ์šฉํ•œ๋‹ค.
  • DesignableView๋Š” attribute inspector์—์„œ ๊ทธ๋ฆผ์ž์™€ cornerRadius๋ฅผ ๋™์‹œ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋Œ€์‹ ์— clipToBounds ์†์„ฑ์„ true๋กœ ๋ฐ”๊พธ๋ฉด ๊ทธ๋ฆผ์ž ์—†์–ด์ง.. ๋ญ”๊ฐ€ ํ—ท๊ฐˆ๋ฆฌ๊ฒŒ ๋˜์–ด์žˆ์Œ ใ… 

2019.05.17

  • computed property setter

2019.06.15

  • Martholiday: ์ž˜๋˜๋˜ ๋งต๋ทฐ๊ฐ€ ๋ฐœ๋“ฑ์ฐ์€๋‚ ..
  • didSet์œผ๋กœ ํ˜„์žฌ์œ„์น˜๊ฐ€ ์ฐํžˆ๋ฉด ๋ฐ”๋กœ ์ฃผ๋ณ€๋งˆํŠธ์ •๋ณด๋ฅผ ์š”์ฒญํ•˜๋Š” API๋ฅผ ๋ณด๋‚ด๋Š” fetch๋ฉ”์†Œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋˜๊ฒŒ ํ•ด๋†จ๋Š”๋ฐ, ๋„ค์ด๋ฒ„์ง€๋„๋Š” ์œ„์น˜ํƒ์ƒ‰ ํ˜ธ์ถœ์„ ์ง€์†์ ์œผ๋กœํ•œ๋‹ค. ๋”ฐ๋ผ์„œ didSet ํ”„๋กœํผํ‹ฐ๋Š” ์ง€์†์ ์œผ๋กœ ๋ฐ”๋€Œ๊ณ , ๋น„๋™๊ธฐ ์ฝœ๋ฐฑ์ด ์‹คํ–‰๋ ๋•Œ๋งˆ๋‹ค ๋น„๋™๊ธฐ๋™์ž‘์ด ๊ต์ฐจ์ ์œผ๋กœ ๊ณ„์† ์ผ์–ด๋‚˜๋Š”๋ฐ, ๋น„๋™๊ธฐ๋กœ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์‹คํ–‰ํ•˜๋Š” fetchํ•จ์ˆ˜์— ๋„˜๊ธด handler๋ฅผ main thread์—์„œ ์‹คํ–‰์‹œ์ผœ์ฃผ์ง€ ์•Š์•„์„œ ๊ณ„์† ์—๋Ÿฌ๊ฐ€ ๋‚ฌ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ํฌ๋ž˜์‹œ๊ฐ€ ๋‚˜๋ฉด์„œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€์—๋Š” ๋ฉ”์ธ์“ฐ๋ ˆ๋“œ์—์„œ ์‹คํ–‰๋˜์–ด์•ผ ํ•  ๋™์ž‘์ด ๋‹ค๋ฅธ ์“ฐ๋ ˆ๋“œ์—์„œ ์‹คํ–‰๋˜์—ˆ๋‹ค๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ๊ณ„์† ๋‚˜์™”์Œ.
  • ๊ทธ๋™์•ˆ ์ด๋Ÿฐ ํฌ๋ž˜์‹œ๊ฐ€ ๋ช‡ ๋ฒˆ ๋ฐœ์ƒํ–ˆ๋Š”๋ฐ, fetch๊ฐ€ ์‹œ์ž‘๋˜๋ฉด notification์„ ๋ณด๋‚ด์„œ ํ˜„์žฌ ์œ ์ €์œ„์น˜๋ฅผ ๊ทธ๋งŒ ํƒ์ƒ‰ํ•˜๋„๋ก flag์—ญํ• ์„ ํ•ด์คฌ์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•œ๋‘๋ฒˆ ์žฌ๋นŒ๋“œํ•ด๋ณด๋ฉด ์•ฑ์ด ์‹คํ–‰๋์–ด์„œ ๊ฐ„๊ณผํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋•Œ๋Š” ์„œ๋ฒ„ ์ƒํ™ฉ๊ณผ ๋‚ด ์ƒํ™ฉ์ด ๋ญ”๊ฐ€ ํƒ€์ด๋ฐ์ด ๋งž์•„์„œ ๋„˜์–ด๊ฐ”๋‚˜๋ณธ๋ฐ, ์˜ค๋Š˜์€ ๊ณ„์†ํ•ด์„œ ํฌ๋ž˜์‹œ๊ฐ€ ๋‚˜์„œ breakpoint์ฐ์–ด๋ณด๊ณ  ์ผ๋‹จ์€ ํ•ด๊ฒฐํ–ˆ๋‹ค.
  • ์˜ค๋Š˜์˜ ๋ชฉํ‘œ!
    • ๋งต๋ทฐ์—์„œ ๋งˆ์ปค์— ํ˜„์žฌ ๋งˆ์ปค์˜ ๋งˆํŠธ๊ฐ„๋‹จ์ •๋ณด ํ‘œ์‹œ(์ฆ์ฐพ/์ด๋ฆ„/์ฒซ๋ฒˆ์งธํœด๋ฌด์ผ)ํ•˜๊ณ  ๋ˆ„๋ฅด๋ฉด ๋งˆํŠธ ์ƒ์„ธํ™”๋ฉด์œผ๋กœ ๋“ค์–ด๊ฐ€๋Š”๊ฒƒ๊นŒ์ง€ ํ•„์ˆ˜๊ตฌํ˜„
    • ์‹œ๊ฐ„์ด ๋˜๋ฉด ์ปค์Šคํ…€ ์Šฌ๋ผ์ด๋” ๊ตฌํ˜„

Comments