Week5: Daily Scrum - boostcampwm-2021/android05-boomerang GitHub Wiki

5์ฃผ 2์ผ์ฐจ

์–ด์ œ ํ•œ ์ผ

  • ๋ชจ๋‘์˜ ๋ฉ”๋ชจ ๊ธฐ๋Šฅ ์ถ”๊ฐ€
    • ์ƒ‰๊น”์— ๋”ฐ๋ผ ๊ทธ๋ฆฌ๋Š” ๊ธฐ๋Šฅ
    • ์žฌ์ƒ/์ผ์‹œ์ •์ง€ ๊ธฐ๋Šฅ
    • ์ง€์šฐ๊ฐœ ๊ธฐ๋Šฅ
  • ๋ชจ๋‘์˜ ๋ฉ”๋ชจ ๋ฒ„๊ทธ ์ˆ˜์ •
  • ์˜คํ”ˆ์†Œ์Šค ๋ผ์ด์„ ์Šค ํŽ˜์ด์ง€ ์ถ”๊ฐ€
  • ํ‚ค๋ณด๋“œ ๋™์ž‘ ๊ฐœ์„ 
    • EditText์—์„œ ํ™•์ธ์— ํ•ด๋‹นํ•˜๋Š” ๋ฒ„ํŠผ ๋ˆ„๋ฅผ ์‹œ ์ž๋™์œผ๋กœ ๋‚ด๋ ค๊ฐ€๊ณ , ํ‚ค๋ณด๋“œ ๋ฐ–์„ ๋ˆŒ๋Ÿฌ๋„ ์ž๋™์œผ๋กœ ๋‚ด๋ ค๊ฐ
    • SearchView์—์„œ๋Š” ํ™•์ธ์ด ๊ฒ€์ƒ‰์œผ๋กœ ๋ฐ”๋€œ
  • ๋ฉ”๋ชจ ๋ชฉ๋ก ํ™”๋ฉด์—์„œ ์ •๋ ฌ ๊ธฐ์ค€์ด ์ƒ์„ฑ์ผ์ด๋ฉด ์ƒ์„ฑ์ผ๋งŒ ํ‘œ์‹œ, ์ˆ˜์ •์ผ ๊ธฐ์ค€ ์ •๋ ฌ์ด๋ฉด ์ˆ˜์ •์ผ๋งŒ ํ‘œ์‹œ
  • ๋‚˜๋งŒ์˜ ๋ฉ”๋ชจ์—์„œ ์ƒ๋ช…์ฃผ๊ธฐ ๋Œ€์‘
    • popStack()์—์„œ๋Š” ์—๋Ÿฌ๊ฐ€ ๋‚˜๊ณ , navigate()์—์„œ๋Š” ์—๋Ÿฌ๊ฐ€ ๋‚˜์ง€ ์•Š์Œ (seekTo()๊ฐ€ ๋˜์ง€ ์•Š๋Š” ์—๋Ÿฌ)
  • ๋ฉ”๋ชจ ์‚ญ์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • ๋ฉ”๋ชจ ๋ชฉ๋ก ํ™”๋ฉด์— ์Œ์„ฑ ViewHolder ๊ตฌํ˜„
  • ๋’ค๋กœ ๊ฐ€๊ธฐ ๋ฒ„ํŠผ์ด ๋™์ž‘ํ•˜๋„๋ก ํ•จ
  • ๋กœ๋”ฉ ํ™”๋ฉด ๊ตฌํ˜„
  • ์Œ์„ฑ ๋ฉ”๋ชจ ์ €์žฅ์‹œ ๋‹ค๋ฅธ ๋ฒ„ํŠผ์ด ์•ˆ๋ˆŒ๋ฆฌ๊ฒŒ ์ฒ˜๋ฆฌ

์˜ค๋Š˜ ํ•  ์ผ

๊ณตํ†ต

  • UI ํ†ต์ผ์„ฑ

๋ฐ•ํƒœํ˜„

  • ์•ฑ ๋กœ๊ณ  ๋„ฃ๊ธฐ
  • ๋“œ๋กœ์–ด์—์„œ ๋ฉ”๋ชจ ํƒ€์ž…์— ๋งž๊ฒŒ ๊ฒ€์ƒ‰๋˜๋„๋ก ํ•˜๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • ์•ฑ์ด ์‹œ์ž‘๋˜๋ฉด ๋“œ๋กœ์–ด์—์„œ ๋ชจ๋“  ๋ฉ”๋ชจ๊ฐ€ ์„ ํƒ๋˜์–ด ์žˆ๋Š” ์ƒํƒœ๋กœ ๋งŒ๋“ค๊ธฐ
  • ๊ธ€๊ผด ๋„ฃ๊ธฐ
  • ๋ฉ”๋ชจ ๋ชฉ๋ก ํ™”๋ฉด์—์„œ ๋ฉ”๋ชจ ํƒ€์ž…์— ๋”ฐ๋ผ ์ƒ‰์„ ๋‹ค๋ฅด๊ฒŒ
  • ๋ฉ”๋ชจ ์ˆ˜์ •ํ™”๋ฉด์—์„œ ๋ชจ๋‘์˜ ๋ฉ”๋ชจ๋Š” ๋ชจ๋‘์˜ ๋ฉ”๋ชจ ์ˆ˜์ •ํ™”๋ฉด์œผ๋กœ ๋„˜์–ด๊ฐ€๊ฒŒ
  • ๋ฉ”๋ชจ ์ˆ˜์ •ํ™”๋ฉด์—์„œ ๋ชจ๋‘์˜ ๋ฉ”๋ชจ๋Š” ๊ณต์œ  ๊ธฐ๋Šฅ ๋„ฃ๊ธฐ

์ตœ์—ฐ๋‘

  • ์Œ์„ฑ ๋ฉ”๋ชจ ๋ฒ„๊ทธ ํ•ด๊ฒฐ
  • ๋ฒ„ํŠผ ์œ„์น˜ ๋ณ€๊ฒฝ
  • ์Œ์„ฑ ๋ฉ”๋ชจ ์ƒ๋ช…์ฃผ๊ธฐ ๋Œ€์‘
  • UI/UX ๊ฐœ์„ 
  • ํŽ˜์ด์ง•
  • ๋™์˜์ƒ seekbar ๋ฐ–์œผ๋กœ ๋นผ๊ธฐ
  • ๋ชจ๋‘์˜ ๋ฉ”๋ชจ ์ปจํŠธ๋กค๋Ÿฌ UI ์ถ”๊ฐ€ ๋„์ „

์ตœ์ง„ํ˜•

  • ๋ฉ”๋ชจ ์žฌ์ƒ ํ™”๋ฉด์—์„œ ์ƒ๋ช…์ฃผ๊ธฐ ๋Œ€์‘
    • pop๊ณผ navigate ์‚ฌ์šฉ์— ๋”ฐ๋ผ ์ฐจ์ด๊ฐ€ ์ƒ๊น€
  • ๋ฉ”๋ชจ ์žฌ์ƒ ํ™”๋ฉด์—์„œ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ ํ”„๋กœํŒŒ์ผ๋ง ๊ฒฐ๊ณผ์— ๋”ฐ๋ฅธ ์ฒ˜๋ฆฌ ํ•„์š”
    • onStop() ์ƒํƒœ์—์„œ๋„ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ์—ฌ์ „ํžˆ ํฌ์ง€๋งŒ, release()ํ•˜๋ฉด ๋‹ค์‹œ ์•ฑ์ด ํฌ๊ทธ๋ผ์šด๋“œ๋กœ ๋Œ์•„์™”์„ ๋•Œ ์—ฐ๊ฒฐ์ด ์–ด๋ ค์›€

5์ฃผ 3์ผ์ฐจ

์–ด์ œ ํ•œ ์ผ

  • ๋“œ๋กœ์–ด์—์„œ ๋ฉ”๋ชจ ํƒ€์ž… ์„ ํƒ ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • ํ…Œ๋งˆ ์ƒ‰์ƒ ์ง€์ •
  • ๋Ÿฐ์ฒ˜ ์•„์ด์ฝ˜ ์ถ”๊ฐ€
  • ํฐํŠธ ์ถ”๊ฐ€
  • ๋ฉ”๋ชจ ์ข…๋ฅ˜์— ๋”ฐ๋ฅธ ์•„์ด์ฝ˜ ์ถ”๊ฐ€
  • dimen ํŒŒ์ผ ๋งŒ๋“ฆ
  • ๋ฉ”๋ชจ์—์„œ ๋ฒ„ํŠผ ์œ„์น˜๋ฅผ ํˆด๋ฐ”๋กœ ์˜ฎ๊น€
  • ๋ฒ„ํŠผ์— Throttle ์ ์šฉ
  • ๋ฉ”๋ชจ ์žฌ์ƒ ํ™”๋ฉด์—์„œ Player์™€ Controller ๋ถ„๋ฆฌ
  • ํˆด๋ฐ” ์—†๋Š” ํ™”๋ฉด์— ํˆด๋ฐ” ์ถ”๊ฐ€
  • ๋‚˜๋งŒ์˜ ๋ฉ”๋ชจ ๋™์˜์ƒ์„ ๋ณต์‚ฌํ•˜์—ฌ ์ €์žฅ
  • ExoPlayer ์ปค์Šคํ…€
  • IO ์ž‘์—…์‹œ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์— ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ถ”๊ฐ€

์˜ค๋Š˜ ํ•  ์ผ

๊ณตํ†ต

  • ๋ฌธ์„œ ์œ„์ฃผ๋กœ ์ž‘์—…ํ•˜์ž

๋…ธ์…˜ ์ž‘์—…ํ•  ๊ฒƒ

  • gif ์˜์ƒ๋“ค ์ƒˆ๋กœ ์ฐ๊ธฐ(UI๊ฐ€ ๊ฐœ์„ ๋˜์—ˆ์œผ๋‹ˆ๊นŒ)
  • ๋ฐœํ‘œ ์ฃผ์ œ(๋ฌธ์ œ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ–ˆ๊ณ , ์–ด๋–ค ๊ธฐ์ˆ ์  ๋„์ „์„ ํ–ˆ๋Š”์ง€ ๋‹ด๊ธฐ)

5์ฃผ 4์ผ์ฐจ

์–ด์ œ ํ•œ ์ผ

  • StaggeredGridLayoutManager ๋ฐฉ์‹์œผ๋กœ RecyclerView ๋‚ด๋ถ€ Item ๋ฐฐ์น˜์‹œ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋˜ ํ˜„์ƒ์„ bind์‹œ์— ๋ฏธ๋ฆฌ ์ด๋ฏธ์ง€ ๋†’์ด๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ๋ทฐ ํฌ๊ธฐ๋ฅผ ์ง€์ •
    • DB์—์„œ ์ด๋ฏธ์ง€ ์ธ๋„ค์ผ์˜ ๊ฐ€๋กœ, ์„ธ๋กœ ๊ฐ’์„ ๋ฏธ๋ฆฌ ์ €์žฅํ•ด๋‘๊ณ  ์žˆ๋„๋ก Column ์ถ”๊ฐ€
    • ๊ธฐ์กด์— ์•ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋˜ ์œ ์ €๋“ค์— ๋Œ€ํ•œ DB Migration ์ž‘์—… ์ˆ˜ํ–‰

์˜ค๋Š˜ ํ•  ์ผ

๊ณตํ†ต

  • ์–ด์ œ ์ƒํ˜ธ ํ”ผ๋“œ๋ฐฑ์„ ํ†ตํ•ด ์•Œ๊ฒŒ๋œ ์—๋Ÿฌ ์ˆ˜์ •
  • ๋ฐœํ‘œ ์ค€๋น„