Giter Club home page Giter Club logo

memo-project-ios's Introduction

๐ŸŒฑ MEMO

๐ŸŽ ๊ฐœ์„ ๋‚ด์šฉ

2022.10.24 > ๊ธฐ์กด ํ…Œ์ด๋ธ” ๋ทฐ๋ฅผ Compositional Layout + Diffable Datasource๋กœ ๋ณ€๊ฒฝ


๐Ÿ“ฑ ํ™”๋ฉด๊ณผ ๊ธฐ๋Šฅ, ๊ตฌํ˜„๋ฐฉ์‹

๐Ÿค— ์›ฐ์ปด ์Šคํฌ๋ฆฐ

UserDefaults์—์„œ Boolํƒ€์ž… ๋ณ€์ˆ˜๋ฅผ ์ด์šฉํ•ด ์•ฑ ์ฒซ์‹คํ–‰์—ฌ๋ถ€๋ฅผ ์ฒดํฌํ•˜๊ณ  ์ฒ˜์Œ์ผ ๊ฒฝ์šฐ์—๋งŒ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

- ํ™˜์˜ ํŒ์—…
Simulator Screen Recording - iPhone 11 - 2022-09-05 at 01 54 20

๐Ÿ–Š ๋ฉ”๋ชจ ์ž‘์„ฑํ•˜๊ธฐ

  1. ๋ฉ”๋ชจ ์ž‘์„ฑ ์‹œ ์ฒซ๋ฒˆ์งธ ๊ฐœํ–‰๋ฌธ์ž๋ฅผ ๋ฐœ๊ฒฌํ•˜๊ธฐ ์ „๊นŒ์ง€๋Š” ํƒ€์ดํ‹€, ์ดํ›„๋Š” ์ฝ˜ํ…์ธ ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์™„๋ฃŒ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ฑฐ๋‚˜ ๋’ค๋กœ๊ฐ€๊ธฐ๋ฅผ ๋ˆ„๋ฅด๋ฉด ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
  2. ๋ฉ”๋ชจ ์ž‘์„ฑ ์‹œ ํ‚ค๋ณด๋“œ์™€ ๋ฐ” ๋ฒ„ํŠผ์ด ๋ชจ๋‘ ๋ณด์ž…๋‹ˆ๋‹ค.
  3. ๋‚ด์šฉ์ด ์—†์œผ๋ฉด ์ €์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  4. ๊ณต์œ  ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์ž‘์„ฑ๋œ ๋‚ด์šฉ์ด Activity View ๋ฅผ ํ†ตํ•ด ๊ณต์œ ๋ฉ๋‹ˆ๋‹ค. (๋‚ด์šฉ์ด ์—†์„ ๊ฒฝ์šฐ ๊ณต์œ ๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.)
- ๋ฉ”๋ชจ ์ž‘์„ฑํ•˜๊ธฐ - ๋‚ด์šฉ์ด ์—†์œผ๋ฉด ์ €์žฅํ•˜์ง€ ์•Š๊ธฐ - ๋ฉ”๋ชจ ๊ณต์œ ํ•˜๊ธฐ
Simulator Screen Recording - iPhone 11 - 2022-09-06 at 01 21 04 Simulator Screen Recording - iPhone 11 - 2022-09-05 at 16 13 27 Simulator Screen Recording - iPhone 11 - 2022-09-05 at 16 13 56

๐Ÿ“ ๋ฉ”๋ชจ ์ˆ˜์ •ํ•˜๊ธฐ

  1. ๋ฆฌ์ŠคํŠธ์—์„œ ์…€์„ ์„ ํƒํ•˜๋ฉด ์ˆ˜์ •ํ•˜๊ธฐ๋กœ ๋„˜์–ด๊ฐ€๊ณ , ํ‚ค๋ณด๋“œ์™€ ๋ฐ” ๋ฒ„ํŠผ์ด ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  2. ์ˆ˜์ •์ฐฝ์—์„œ ํ•œ ๋ฒˆ ๋” ํƒญํ•˜๋ฉด ํ‚ค๋ณด๋“œ์™€ ๋ฐ” ๋ฒ„ํŠผ์ด ๋ณด์ž…๋‹ˆ๋‹ค.

- ๋ฉ”๋ชจ ์ˆ˜์ •
Simulator Screen Recording - iPhone 11 - 2022-09-06 at 01 26 30

๐Ÿงฉ ๋ฉ”๋ชจ ๋ฆฌ์ŠคํŠธ

  1. ์˜ค๋Š˜ ์ค‘์— ์ž‘์„ฑ๋œ ๋ฉ”๋ชจ๋Š” ์‹œ๊ฐ„, ์ฃผ์ค‘์— ์ž‘์„ฑ๋œ ๋ฉ”๋ชจ๋Š” ์š”์ผ, ๊ทธ ์™ธ์—๋Š” ๋…„์›”์ž…์ด ์ž…๋ ฅ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ฉ”๋ชจ์˜ ๊ฐœ์ˆ˜๋Š” ๋ฐ”๋กœ ๋ฐ˜์˜๋˜์„œ ์œ„์— ๋œจ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ 1์ฒœ๊ฐœ๊ฐ€ ๋„˜์„ ๊ฒฝ์šฐ ์„ธ์ž๋ฆฌ์ˆ˜๋งˆ๋‹ค ์‰ผํ‘œ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  3. leadingSwipeAction์œผ๋กœ ๋ฉ”๋ชจ๋ฅผ ๊ณ ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  4. trailingSwipeAction์œผ๋กœ ๋ฉ”๋ชจ๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

- ๋ฉ”๋ชจ ๋ชฉ๋ก - ์Šค์™€์ดํ”„์•ก์…˜ - ํ•€ ๊ณ ์ • - ์Šค์™€์ดํ”„์•ก์…˜ - ์‚ญ์ œ
Simulator Screen Recording - iPhone 11 - 2022-09-06 at 01 36 14 Simulator Screen Recording - iPhone 11 - 2022-09-06 at 01 33 40 Simulator Screen Recording - iPhone 11 - 2022-09-06 at 01 34 56

๐Ÿ” ๊ฒ€์ƒ‰

  1. ๊ฒ€์ƒ‰์–ด์— ์ผ์น˜ํ•˜๋Š” ๋ฉ”๋ชจ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
  2. ์ผ์น˜ํ•œ ๋ฌธ์ž์—ด์€ ์ƒ‰๊น”์ด ๋‹ค๋ฅด๊ฒŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  3. ๊ฒ€์ƒ‰์ฐฝ์—์„œ ๊ฒ€์ƒ‰๊ฒฐ๊ณผ๋ฅผ ํด๋ฆญํ•ด๋„ ๋ฉ”๋ชจ ์ˆ˜์ •ํ•˜๊ธฐ ํ™”๋ฉด์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
- ๊ฒ€์ƒ‰ํ™”๋ฉด
Simulator Screen Recording - iPhone 11 - 2022-09-06 at 01 38 52

๐Ÿ’ญ ๋Œ์•„๋ณด๋ฉฐ

ํ‰์†Œ์—๋Š” ์ปค๋ฐ‹์ด๋‚˜ ๋ฌธ์„œ, ์ด์Šˆ์— ์ „ํ˜€ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š์•˜๋Š”๋ฐ, ์ด๋ฒˆ์—๋Š” ์ตœ๋Œ€ํ•œ ๊ณผ์ •๊ณผ ์ฝ”๋“œ์™€ ์ปค๋ฐ‹์˜ ๋‹จ์œ„๋ฅผ ๋ณด๊ธฐ ์ข‹๊ฒŒ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๋Š” ์ƒ๊ฐ์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฏธ๋ฆฌ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ด์Šˆ๋กœ ์ •๋ฆฌํ•˜๊ณ  ์ปค๋ฐ‹์„ ์ž˜๊ฐœ ์ชผ๊ฐœ๊ณ , ์ด์Šˆ ํ…œํ”Œ๋ฆฟ๊ณผ PR ํ…œํ”Œ๋ฆฟ์„ ๋งŒ๋“ค๊ณ  ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€์—๋„ ์‹ ๊ฒฝ์„ ์“ฐ๊ณ , ํด๋”๋ง๊ณผ ์ฃผ์„, ๊ตฌํ˜„ํ•˜๋ฉด์„œ๋„ ์ตœ๋Œ€ํ•œ ๋ฐฐ์šด ๊ฐœ๋…์„ ํ™œ์šฉํ•ด๋ณด์ž๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ์š”. ์†Œ์†Œํ•œ ์•„์‰ฌ์›€์€ ์ฐจ์น˜ํ•˜๊ณ ์„œ๋ผ๋„ ๋ฉ”๋ชจ ํ”„๋กœ์ ํŠธ ์‹œ์ž‘ ์ง์ „์— ๋ฐฐ์šด Observable ๊ทธ๋ฆฌ๊ณ  ์ ์šฉํ•ด๋ณด๊ณ  ์‹ถ์—ˆ๋˜ DiffableDataSource์™€ Compositional Layout์„ ์จ๋ณด์ง€ ๋ชปํ•ด ํฐ ์•„์‰ฌ์›€์ด ๋‚จ์Šต๋‹ˆ๋‹ค.




๐Ÿ›  ๊ฐœ์„  ๋ฐฉํ–ฅ

  1. RX์™€ MVVM์„ ์ด์šฉํ•ด ๊ฐœ์„ ํ•˜๊ธฐ
  2. ์„น์…˜์— ๋„ˆ๋ฌด ์˜์กดํ•˜๋Š” ๋ถ€๋ถ„: ๊ฒ€์ƒ‰์ค‘์ด ์•„๋‹ ๋•Œ์—๋Š” ์•„์˜ˆ ์„น์…˜ 0์„ ๊ณ ์ •๋ฉ”๋ชจ ์˜์—ญ์œผ๋กœ ์žก์•„๋‘์—ˆ๊ธฐ ๋•Œ๋ฌธ์—, ๊ณ ์ •๋ฉ”๋ชจ๊ฐ€ ์—†์„ ๊ฒฝ์šฐ ์œ„์— ๋นˆ ๊ณต๊ฐ„์ด ์ข€ ๋” ์ƒ๊ธด๋‹ค. ๋‹ค๋ฅธ ๊ณณ์—์„œ๋„ ์„น์…˜ 0์„ ๊ธฐ์ค€์ ์œผ๋กœ ์žก์•„๋‘์—ˆ๋Š”๋ฐ, ์ด๊ฑธ ๋ฐ์ดํ„ฐ ์ค‘์‹ฌ์œผ๋กœ ๋ฐ”๊ฟ”์•ผํ•  ๊ฒƒ ๊ฐ™๋‹ค.
  3. ๊ฒ€์ƒ‰ ์ฟผ๋ฆฌ์™€ ์ ์šฉ๋˜๋Š” ๋ฌธ์ž์—ด์„ ๋ ˆ์ด๋ธ”์— ๋ฐ”๋กœ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก UILabel์— extension์œผ๋กœ ํ•ด๋‘์—ˆ๋Š”๋ฐ, ์˜คํžˆ๋ ค ๋ฒ”์šฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต๊ฒŒ ๋˜์—ˆ๋‹ค. String ์— extension์œผ๋กœ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด์„œ Attributed String์„ ๋ฐ›์•„์˜ค๋Š” ํ˜•ํƒœ๋กœ ๊ฐœ์„ ํ•˜๊ณ  ์‹ถ๋‹ค.

๐Ÿ’ฆ ์‹ค์ˆ˜

  1. ํ•ด๊ฒฐํ•จ ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•˜์—ฌ ๊ฐ’์„ ์—ญ์ „๋‹ฌ ํ•  ๋•Œ: ์ž๊พธ ํ•ด๋‹น ํ”„๋กœํ† ์ฝœ ํƒ€์ž…์— VC๋ฅผ ๋„ฃ์„ ์ˆ˜ ์—†๋‹ค๋Š” ์—๋Ÿฌ๊ฐ€ ๋–ด๋Š”๋ฐ, ์•Œ๊ณ  ๋ณด๋‹ˆ var delegate = protocolName? ์œผ๋กœ ํ•ด๋‘” ๊ฒƒ... ๐Ÿคฆ ๋ชป ์ฐพ์•„์„œ ๊ฒ€์ƒ‰์œผ๋กœ 3์‹œ๊ฐ„ ํ—ค๋งธ๋‹ค.
  2. ํ•ด๊ฒฐํ•จ ํ”„๋กœํ† ์ฝœ ์ •์˜ํ•  ๋•Œ AnyObject๋ฅผ ์ฑ„ํƒํ–ˆ์ง€๋งŒ, ์•ฝํ•œ ์ฐธ์กฐ๋กœ ์„ ์–ธํ•˜์ง€ ์•Š์€ ๋ถ€๋ถ„ -> ์•ฝํ•œ ์ฐธ์กฐ์— ๋Œ€ํ•ด ์•ฝํ•œ ์ดํ•ด๊ฐ€ ์žˆ์—ˆ๋‹ค! ์ˆ˜์—…์œผ๋กœ ๋ฐฐ์›Œ์„œ ๋ฐ”๋กœ ์ ์šฉํ–ˆ๋‹ค!
  3. ํ•ด๊ฒฐํ•จ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ–ˆ๊ณ  ๋˜๋Š” ๊ฑธ ํ™•์ธํ–ˆ๋˜ ๊ฒƒ ๊ฐ™์€๋ฐ, ์ˆ˜์ • ๋ชจ๋“œ์—์„œ ๋ฐ”๋ฒ„ํŠผ ์•„์ดํ…œ๊ณผ ํ‚ค๋ณด๋“œ๊ฐ€ ์ œ๋Œ€๋กœ ์•ˆ ์—†์–ด์ง€๋Š” ๊ฑธ ํ™•์ธํ•จ...๐Ÿฅฒ -> ์กธ๋ ค์„œ ์ฝ”๋“œ๋ฅผ ์ข€ ๋‚ ๋ ธ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ์ œ์ถœ ํ›„์— ์ˆ˜์ •ํ•จ (์ด์Šˆ #40)

๐Ÿคทโ€โ™€๏ธ ์ข€ ๋” ๊ณต๋ถ€ํ•˜๊ฑฐ๋‚˜ ์ฐพ์•„๋ณผ ๋ถ€๋ถ„

  1. Realm Object๋ฅผ ๋‹ค๋ฅธ ํ™”๋ฉด์œผ๋กœ ๋ณด๋‚ด์„œ, ๊ทธ๊ณณ์— ์„ ์–ธํ•œ repository๋ฅผ ์ด์šฉํ•˜๋ฉด ๋™์ผํ•œ write thread๊ฐ€ ์•„๋‹ˆ๋ผ์„œ ์ƒ๊ธฐ๋Š” ์—๋Ÿฌ. ์“ฐ๋ ˆ๋“œ์— ๋Œ€ํ•œ ๋ถ€๋ถ„์ด ์•„์ง ์–ด๋ ต๋‹ค.
  2. Done - searchController๋ฅผ ์ ์šฉํ•œ ์ƒํƒœ์—์„œ ์ž‘์„ฑํ•˜๊ธฐ๋ฅผ ํด๋ฆญํ•˜๋ฉด, ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ๋Š” ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฐ”๊ฐ€ ์•ˆ์˜ ์•„์ดํ…œ ํฌ๊ธฐ์— ๋งž์ถฐ ์ž๋™์œผ๋กœ ์ค„์–ด๋“ค์ง€๋งŒ ์™œ ๋””๋ฐ”์ด์Šค์—์„œ๋Š” ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฐ”๊ฐ€ ์ž๋™์œผ๋กœ ์•ˆ ์ค„์–ด๋“ค๊นŒ? -> prefersLargeTitle์„ false๋กœ ๋ฐ”๊ฟ”์ฃผ๋ฉด ๋œ๋‹ค. thx to @GoForWalk
  3. inset grouped์—์„œ ์„น์…˜ ํ—ค๋”๊ฐ€ ์…€์ด ์‹œ์ž‘ํ•˜๋Š” ์œ„์น˜์— ๊ฐ”์œผ๋ฉด ์ข‹๊ฒ ๋Š”๋ฐ ์–ด๋–ป๊ฒŒ ์˜ฎ๊ธธ์ง€.
  4. ์Šค์™€์ดํ”„ ์•ก์…˜ ์˜์—ญ์ด ๋„ˆ๋ฌด ํฐ ๊ฒƒ ๊ฐ™์€๋ฐ ๊ณต๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ์„๊นŒ? <- ์…€ ๋†’์ด๊ฐ€ ์ž‘์•„์„œ ๊ทธ๋ ‡๊ฒŒ ๋ณด์ด๋Š” ๊ฒƒ. ์Šค์™€์ดํ”„์•ก์…˜์—์„œ ๊ฐ€๋กœ๋กœ ์ฐจ์ง€ํ•˜๋Š” ์˜์—ญ ์ž์ฒด๋Š” ๋˜‘๊ฐ™๋‹ค!
  5. isEditing ์— ๋Œ€ํ•ด ์ข€ ๋” ์ฐพ์•„๋ณด๊ธฐ!

memo-project-ios's People

Contributors

heydoy avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Forkers

azuredark

memo-project-ios's Issues

[Design]: Compositional Layout ์ ์šฉํ•˜๊ธฐ

๐Ÿ›  ์ด์Šˆ

Compositional Layout ์ ์šฉํ•˜๊ธฐ

๐Ÿ“ ํ•  ์ผ

  • ๋ฆฌ์ŠคํŠธ ์…€ ์ด์šฉํ•˜๊ธฐ
  • Diffable datasource ์‚ฌ์šฉ
  • ๊ณ ์ •,๋น„๊ณ ์ • ์„น์…˜ ๊ตฌ๋ถ„ํ•˜๊ธฐ
  • ์„น์…˜ ํƒ€์ดํ‹€ ์ถ”๊ฐ€ํ•˜๊ธฐ
  • ์Šค์™€์ดํ”„์•ก์…˜ ์ถ”๊ฐ€ํ•˜๊ธฐ
  • ๊ฒ€์ƒ‰๋ชจ๋“œ ์ฒดํฌํ•˜์—ฌ ๊ฒ€์ƒ‰ํ™”๋ฉด ๋ณด์—ฌ์ฃผ๊ธฐ
  • ๊ฒ€์ƒ‰๋ชจ๋“œ๊ฐ€ ๋๋‚˜๋ฉด ๋ฉ”๋ชจ ์ž˜ ๋ณด์—ฌ์ฃผ๊ธฐ

[Fix]: ๋ฉ”๋ชจ ์ˆ˜์ •ํ•˜๊ธฐ์—์„œ ์ˆ˜์ •๋ชจ๋“œ๊ฐ€ ์ œ๋Œ€๋กœ ์ ์šฉ์ด ์•ˆ๋˜๋Š” ๋ถ€๋ถ„์„ ํ•ด๊ฒฐํ•˜๊ธฐ

๐Ÿ›  ์ด์Šˆ

๋ฉ”๋ชจ๋ฅผ ์„ ํƒํ•ด์„œ ์ˆ˜์ •ํ•  ๋•Œ ๋ฐ”๋ฒ„ํŠผ์ด ์—†์–ด์ง€๊ณ , ํ‚ค๋ณด๋“œ๊ฐ€ ์˜ฌ๋ผ๊ฐ€์ง€ ์•Š๊ฒŒ ํ•˜๋Š” ๋ถ€๋ถ„์ด ์ฝ”๋“œ๋กœ ์žˆ๋Š”๋ฐ๋„(๐Ÿ’ฆ) ์ œ๋Œ€๋กœ ์ž‘๋™์ด ์•ˆ๋จ. ๊ทธ ๋ถ€๋ถ„ ํ•ด๊ฒฐํ•˜๊ธฐ

๐Ÿ“ ํ•  ์ผ

  • ๋ฉ”๋ชจ ์ˆ˜์ •๋ชจ๋“œ ์ œ๋Œ€๋กœ ํ•ด๊ฒฐํ•˜๊ธฐ

[Fix]: ๊ฒ€์ƒ‰ ์ฐฝ์—์„œ ์…€ ํด๋ฆญ ์‹œ ์ˆ˜์ •ํ•˜๊ธฐ๋กœ ๋„˜์–ด๊ฐ€๋Š” ๋ถ€๋ถ„ ์ˆ˜์ •

๐Ÿ›  ์ด์Šˆ

๊ฒ€์ƒ‰ ์ฐฝ์—์„œ ์…€ ํด๋ฆญ ์‹œ ์ˆ˜์ •ํ•˜๊ธฐ๋กœ ๋„˜์–ด๊ฐ€๋Š” ๋ถ€๋ถ„ ์ˆ˜์ •

๐Ÿ“ ํ•  ์ผ

  • backbutton title์ด '๊ฒ€์ƒ‰'์ด ๋˜๊ฒŒ ํ•จ
  • ๊ฒ€์ƒ‰๊ฒฐ๊ณผ๋กœ ๋‚˜์˜จ ์…€์ด ์ˆ˜์ •์ด ๋˜๊ฒŒ ํ•จ

[Fix]: ์ž‘์„ฑํ•˜๊ธฐ VC์—์„œ delegate์— ์•ฝํ•œ์ฐธ์กฐ๋ฅผ ์„ ์–ธํ•˜์ง€ ์•Š์€ ๋ถ€๋ถ„์„ ์ˆ˜์ •

๐Ÿ›  ์ด์Šˆ

delegate ์ •์˜ ์‹œ์— AnyObject๋ฅผ ์ฑ„ํƒํ•˜์˜€์ง€๋งŒ, ์ž‘์„ฑํ•˜๊ธฐ VC์—์„œ ์•ฝํ•œ์ฐธ์กฐ๋ฅผ ์„ ์–ธํ•˜์ง€ ์•Š์€ ๋ถ€๋ถ„์„ ์ˆ˜์ •

๐Ÿ“ ํ•  ์ผ

  • weak ํ‚ค์›Œ๋“œ ๋„ฃ์–ด์ฃผ๊ธฐ

[Design]: ๋””์ž์ธ ์ˆ˜์ •

๐Ÿ›  ์ด์Šˆ

์ „๋‹ฌ๋ฐ›์€ ๋””์ž์ธ๊ณผ ๋‹ค๋ฅธ ๋ถ€๋ถ„์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ ํ•  ์ผ

  • ์Šค์™€์ดํ”„ ์•ก์…˜์˜ ๊ฐ€๋กœ์™€ ์„ธ๋กœ๋น„๊ฐ€ ๋น„์Šทํ•˜๊ฑฐ๋‚˜ ๊ฐ€๋กœ๋น„๊ฐ€ ์ข€ ๋” ์งง์•„์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์…€ ๋†’์ด๊ฐ€ ์ปค์ง€๋ฉด ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.
  • ๋ฆฌ์ŠคํŠธ์˜ ํ…Œ์ด๋ธ”๋ทฐ ์„น์…˜ ํ—ค๋”๊ฐ€ ์…€์ด ์‹œ์ž‘ํ•˜๋Š” ์œ„์น˜๋กœ ๋ฐ”๋€Œ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

[Feature]: ์ตœ์ดˆ ์‹คํ–‰์—ฌ๋ถ€ ์ฒดํฌํ•˜๊ณ  ํŒ์—…ํ™”๋ฉด(Walkthrough)์„ ๋„์›๋‹ˆ๋‹ค.

๐Ÿ›  ์ด์Šˆ

์ตœ์ดˆ๋กœ ์•ฑ์„ ์‹คํ–‰ํ–ˆ๋Š”์ง€ ์ฒดํฌํ•˜๊ณ  ํŒ์—…ํ™”๋ฉด(Walkthrough)์„ ๋„์›๋‹ˆ๋‹ค.

๐Ÿ“ ํ•  ์ผ

  • ์•ฑ ์ตœ์ดˆ ์‹คํ–‰์—ฌ๋ถ€๋ฅผ ์ฒดํฌํ•˜๊ณ  ์ €์žฅ
  • ์ตœ์ดˆ ์‹คํ–‰์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•ด์„œ ํŒ์—…ํ™”๋ฉด์„ ๋„์›€

[Fix]: ๋ฉ”๋ชจ ์ž‘์„ฑ ์ฐฝ์—์„œ ํ…์ŠคํŠธ๊ฐ€ ๊ธธ์–ด์งˆ ๊ฒฝ์šฐ ํ‚ค๋ณด๋“œ์— ๊ฐ€๋ฆฌ๋Š” ๋ถ€๋ถ„ ํ•ด๊ฒฐ

๐Ÿ›  ์ด์Šˆ

๋ฉ”๋ชจ ์ž‘์„ฑ ์ฐฝ์—์„œ ํ…์ŠคํŠธ๊ฐ€ ๊ธธ์–ด์งˆ ๊ฒฝ์šฐ ํ‚ค๋ณด๋“œ์— ๊ฐ€๋ฆฌ๋Š” ๋ถ€๋ถ„ ํ•ด๊ฒฐ

๐Ÿ“ ํ•  ์ผ

  • ํ…์ŠคํŠธ๋ทฐ ํ‚ค๋ณด๋“œ์— ๊ฐ€๋ฆฌ๋Š” ๋ถ€๋ถ„ ํ•ด๊ฒฐ

[Feature]: ๋ฉ”๋ชจ ์ž‘์„ฑ/์ˆ˜์ • ํ™”๋ฉด์—์„œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ›  ์ด์Šˆ

๋ฉ”๋ชจ ์ž‘์„ฑ/์ˆ˜์ • ํ™”๋ฉด์—์„œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ ํ•  ์ผ

  • ์–ด๋–ค ํ…์ŠคํŠธ๋„ ์ž…๋ ฅ๋˜์ง€ ์•Š์•˜์„ ๊ฒฝ์šฐ์—๋Š” ๋ฉ”๋ชจ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
  • ์ž‘์„ฑ๋œ ํ…์ŠคํŠธ์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ๋ฆฌํ„ดํ‚ค๋ฅผ ์ž…๋ ฅํ•˜๊ธฐ ์ „์€ ์ œ๋ชฉ, ๋‚˜๋จธ์ง€๋Š” ๋‚ด์šฉ์œผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ์šฐ์ธก ์ƒ๋‹จ ๊ณต์œ  ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ๋ฉ”๋ชจ ํ…์ŠคํŠธ๊ฐ€ UIActivityViewController๋ฅผ ํ†ตํ•ด ๊ณต์œ ๋ฉ๋‹ˆ๋‹ค.
  • ์™„๋ฃŒ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ฑฐ๋‚˜, ํŽธ์ง‘ ์ƒํƒœ๊ฐ€ ๋๋‚˜๊ฑฐ๋‚˜ ๋ฐฑ๋ฒ„ํŠผ ์•ก์…˜, ์ œ์Šค์ณ๋ฅผ ํ†ตํ•ด ์ด์ „ ํ™”๋ฉด์œผ๋กœ ๋˜๋Œ์•„ ๊ฐˆ ๊ฒฝ์šฐ ๋ฉ”๋ชจ๊ฐ€ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
  • ๋ฉ”๋ชจ ์ˆ˜์ •ํ™”๋ฉด์ผ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž๊ฐ€ ํ…์ŠคํŠธ๋ฅผ ํด๋ฆญํ•˜๋ฉด ํŽธ์ง‘์ƒํƒœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.
  • ํŽธ์ง‘์ƒํƒœ๊ฐ€ ๋  ๋•Œ ์šฐ์ธก์˜ ๊ณต์œ ๋ฒ„ํŠผ๊ณผ ์™„๋ฃŒ๋ฒ„ํŠผ์ด ๋ณด์ž…๋‹ˆ๋‹ค.

[Design]: Walkthrough ํ™”๋ฉด ๋””์ž์ธ

๐Ÿ›  ์ด์Šˆ

์‚ฌ์šฉ์ž๊ฐ€ ์ฒ˜์Œ ์•ฑ์— ์ง„์ž…ํ–ˆ์„ ๋•Œ ๋ณด์ด๋Š” Walkthrough ํ™”๋ฉด์„ ๋””์ž์ธํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ ํ•  ์ผ

  • Walkthrough ํ™”๋ฉด ๋””์ž์ธ

[Chore]: ํ”„๋กœ์ ํŠธ ์„ธํŒ…

๐Ÿ›  ์ด์Šˆ

ํ”„๋กœ์ ํŠธ๋ฅผ ์ฒ˜์Œ ์‹œ์ž‘ํ•  ๋•Œ ํ•„์š”ํ•œ ์„ธํŒ…์„ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ ํ•  ์ผ

  • ์ตœ์†Œ ๋ฒ„์ „ iOS 13.0 , ๋””๋ฐ”์ด์Šค ์˜ค๋ฆฌ์—”ํ…Œ์ด์…˜ Portrait
  • SPM ์ถ”๊ฐ€ : Snapkit, Then, Realm, RealmSwift

[Design]: ๋ฉ”๋ชจ ์ž‘์„ฑ/์ˆ˜์ • ํ™”๋ฉด

๐Ÿ›  ์ด์Šˆ

๋ฉ”๋ชจ ์ž‘์„ฑ/์ˆ˜์ • ํ™”๋ฉด์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

๐Ÿ“ ํ•  ์ผ

  • ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฐ”์— ๋’ค๋กœ๊ฐ€๊ธฐ, ๊ณต์œ , ์™„๋ฃŒ ๋ฒ„ํŠผ์ด ์žˆ์Šต๋‹ˆ๋‹ค. (๋’ค๋กœ๊ฐ€๊ธฐ๋Š” pushํ•  ๋•Œ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” X)
  • ๋ฉ”๋ชจ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ํ…์ŠคํŠธ๋ทฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ…์ŠคํŠธ๋ทฐ๋Š” ์ƒํ•˜์ขŒ์šฐ ํŒจ๋”ฉ(or inset)์ด ์žˆ์Šต๋‹ˆ๋‹ค.

[Feature]: ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ›  ์ด์Šˆ

๊ฒ€์ƒ‰๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ ํ•  ์ผ

  • ๊ฒ€์ƒ‰ํ•˜๋ฉด ํ…Œ์ด๋ธ” ๋ทฐ ๊ฒ€์ƒ‰๋ฐ”๊ฐ€ ํ™œ์„ฑํ™”๋˜๋ฉด์„œ ๊ฒ€์ƒ‰๊ฒฐ๊ณผ๋ฅผ ํ…Œ์ด๋ธ”๋ทฐ๋กœ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค.
  • ๊ฒ€์ƒ‰์–ด์— ๋งค์นญ๋˜๋Š” ๊ธ€์ž๋Š” ํฌ์ธํŠธ์ปฌ๋Ÿฌ+๋ณผ๋“œ๋กœ ๋ณ€ํ•ฉ๋‹ˆ๋‹ค.

[Add]: ์ฝ˜ํ…ํŠธ์— ์ถ”๊ฐ€ํ…์ŠคํŠธ๊ฐ€ ์—†์„ ๊ฒฝ์šฐ ๋Œ€์ฒด ํ…์ŠคํŠธ

๐Ÿ›  ์ด์Šˆ

๋ฉ”๋ชจ ๋ฆฌ์ŠคํŠธ์—์„œ ์ฝ˜ํ…ํŠธ์— ์ถ”๊ฐ€ ํ…์ŠคํŠธ๊ฐ€ ์—†์„ ๊ฒฝ์šฐ ๋Œ€์ฒด ํ…์ŠคํŠธ

๐Ÿ“ ํ•  ์ผ

  • ๋ฉ”๋ชจ ๋ฆฌ์ŠคํŠธ์˜ ์ฝ˜ํ…ํŠธ์— ์ถ”๊ฐ€ ํ…์ŠคํŠธ๊ฐ€ ์—†์„ ๊ฒฝ์šฐ "์ถ”๊ฐ€ ํ…์ŠคํŠธ ์—†์Œ"์„ ํ…์ŠคํŠธ๋กœ ๋„ฃ์–ด์ค๋‹ˆ๋‹ค.

[Feature]: Realm์— ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋ธ๊ณผ CRUD ๋งค๋‹ˆ์ €๋ฅผ Repository pattern์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

๐Ÿ›  ์ด์Šˆ

  • Realm ์— ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋ธ๊ณผ CRUD ๋งค๋‹ˆ์ €๋ฅผ Repository pattern์œผ๋กœ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ ํ•  ์ผ

  • Realm ์— ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”๋ชจ ๋ชจ๋ธ
  • Repository Pattern์œผ๋กœ CRUD ๋งค๋‹ˆ์ €

[Fix]: ๋ฆฌ์ŠคํŠธ์—์„œ ์ž‘์„ฑํ•˜๊ธฐ ๋ทฐ๋กœ ๋„˜์–ด๊ฐˆ ๋•Œ ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฐ” ์‚ฌ์ด์ฆˆ๊ฐ€ ์ปค์ง€๋Š” ๋ถ€๋ถ„

๐Ÿ›  ์ด์Šˆ

๋ฆฌ์ŠคํŠธ์—์„œ ์ž‘์„ฑํ•˜๊ธฐ ๋ทฐ๋กœ ๋„˜์–ด๊ฐˆ ๋•Œ ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฐ” ์‚ฌ์ด์ฆˆ๊ฐ€ ์ปค์ง€๋Š” ๋ถ€๋ถ„ ํ•ด๊ฒฐ

๐Ÿ“ ํ•  ์ผ

  • ๋ฆฌ์ŠคํŠธ์—์„œ ์ž‘์„ฑํ•˜๊ธฐ ๋ทฐ๋กœ ๋„˜์–ด๊ฐˆ ๋•Œ ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฐ” ์‚ฌ์ด์ฆˆ๊ฐ€ ์ปค์ง€๋Š” ๋ถ€๋ถ„ ํ•ด๊ฒฐ

[Design]: ๋ฉ”๋ชจ๋ฆฌ์ŠคํŠธ ํ™”๋ฉด ๋””์ž์ธ

๐Ÿ›  ์ด์Šˆ

๋ฉ”๋ชจ๋ฆฌ์ŠคํŠธ์˜ ํ™”๋ฉด์„ ๋””์ž์ธํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ ํ•  ์ผ

  • ๋„ค๋น„๊ฒŒ์ด์…˜ ํƒ€์ดํ‹€์— ์ด ์ž‘์„ฑ๋œ ๋ฉ”๋ชจ์˜ ์ˆซ์ž๊ฐ€ ์˜ฌ๋ผ๊ฐ‘๋‹ˆ๋‹ค. (i.e. 1,234๊ฐœ์˜ ๋ฉ”๋ชจ)
  • SearchBar๊ฐ€ ํƒ€์ดํ‹€ ์•„๋ž˜์— ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฉ”๋ชจ ๋ฆฌ์ŠคํŠธ ํ…Œ์ด๋ธ” ๋ทฐ์—๋Š” ๊ณ ์ •๋œ ๋ฉ”๋ชจ์™€ ๋ฉ”๋ชจ, 2๊ฐœ์˜ ์„น์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฉ”๋ชจ ๋ฆฌ์ŠคํŠธ ํ…Œ์ด๋ธ” ์…€์—๋Š” ์ œ๋ชฉ, ๋‚ด์šฉ, ๋‚ ์งœ๊ฐ€ ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค.
  • ๋ฉ”๋ชจ๋ฆฌ์ŠคํŠธ ์šฐ์ธก ํ•˜๋‹จ์—๋Š” ๋ฉ”๋ชจ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ํˆด๋ฐ” ์•„์ดํ…œ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฉ”๋ชจ๋ฆฌ์ŠคํŠธ ํ…Œ์ด๋ธ”๋ทฐ ์…€์— ์Šค์™€์ดํ”„ ์•ก์…˜์ด ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค. leading์€ ๊ณ ์ •, trailing์€ ์‚ญ์ œ

[Feature]: ๋ฉ”๋ชจ ๋ฆฌ์ŠคํŠธ ํ™”๋ฉด์—์„œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ›  ์ด์Šˆ

๋ฉ”๋ชจ ๋ฆฌ์ŠคํŠธ ํ™”๋ฉด์—์„œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ ํ•  ์ผ

  • ํˆด ๋ฐ” ์•„์ดํ…œ์„ ๋ˆ„๋ฅด๋ฉด ์ž‘์„ฑํ•˜๊ธฐ๋กœ ๊ฐ‘๋‹ˆ๋‹ค.
  • Realm ์—์„œ ๋ฉ”๋ชจ ๋ชฉ๋ก์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
  • ๋ฉ”๋ชจ ๋ชฉ๋ก์—์„œ ๋‚ ์งœํฌ๋งท ํ˜•ํƒœ
  • ๋ฉ”๋ชจ๋ฅผ ํด๋ฆญํ•˜๋ฉด ์ˆ˜์ •ํ•˜๊ธฐ๋กœ ๊ฐ‘๋‹ˆ๋‹ค.
  • ๋ฆฌ๋”ฉ ์Šค์™€์ดํ”„ ์•ก์…˜์œผ๋กœ ๋ฉ”๋ชจ๋ฅผ ๊ณ ์ •, ๊ณ ์ •ํ•ด์ œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ณ ์ •์€ ์ตœ๋Œ€ 5๊ฐœ๊นŒ์ง€๋กœ ์ถ”๊ฐ€๋กœ ๊ณ ์ •ํ•  ๊ฒฝ์šฐ ์–ผ๋Ÿฟ์œผ๋กœ ์•Œ๋ ค์ค๋‹ˆ๋‹ค.
  • ๊ณ ์ • ์—ฌ๋ถ€์— ๋”ฐ๋ผ ํ•€ ์ด๋ฏธ์ง€๊ฐ€ ๋ฐ”๋€๋‹ˆ๋‹ค.
  • ๋ฉ”๋ชจ๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ญ์ œํ•˜๊ธฐ ์ „ ์–ผ๋Ÿฟ์œผ๋กœ ์•Œ๋ ค์ค๋‹ˆ๋‹ค.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.