๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90

๐Ÿค2024 ์•ˆ๋“œ๋กœ์ด๋“œ/Filmo ์˜ํ™” ํ”„๋กœ์ ํŠธ35

๋กœ๊ทธ์ธ ์„ฑ๊ณต ์‹œ ์ฒ˜๋ฆฌ ์—๋Ÿฌ ํ•ด๊ฒฐํ•˜๊ธฐ ๋“ค์–ด๊ฐ€๊ธฐ์ „์—ํ˜„์žฌ ๋กœ๊ทธ์ธ์ด ์„ฑ๊ณตํ•œ ๊ฒฝ์šฐ ๋ฉ”์ธ ํ™”๋ฉด์œผ๋กœ ์ด๋™ํ•˜๋Š” ๋กœ์ง์„ ๊ตฌํ˜„ํ•ด๋ณด๋ ค ํ•œ๋‹ค.๊ทธ ์ „์— ๋กœ๊ทธ์ธ ์ฒ˜๋ฆฌ ๊ณผ์ •์ด ์–ด๋–ป๊ฒŒ ๋˜๋Š”์ง€๋ถ€ํ„ฐ ์ •๋ฆฌํ•ด๋ณด์žUnable to instantiate acitivity ์—๋Ÿฌ java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.teamfilmo.filmo/com.teamfilmo.filmo.ui.auth.AuthActivity}: java.lang.InstantiationException: java.lang.Class has no zero argument constructor ์ง€์†์ ์œผ๋กœ ํ•ด๋‹น ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๋‹ค. ํŠนํžˆ ํ† ํฐ ์—ฌ๋ถ€๋ฅผ ์ฒดํฌํ•ด์ฃผ๊ธฐ ์œ„ํ•ด ๊ด€๋ จ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์„ฑ์ž ์ฃผ์ž…ํ•ด์ค„ ๊ฒฝ์šฐ ์—๋Ÿฌ๊ฐ€ ๋ฐœ.. 2024. 5. 13.
๋ฉ”์ธ ํ™”๋ฉด : ๋ฆฌ์‚ฌ์ดํด๋Ÿฌ๋ทฐ ๊ตฌํ˜„ ๊ณผ์ • ์ •๋ฆฌ ํ™”๋ฉด์ด ์ผœ์งˆ ๋•Œ ๋ฆฌ์‚ฌ์ดํด๋Ÿฌ๋ทฐ์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐ”๋กœ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๋Š” ํ˜„์ƒํ˜„์ƒ :- ๋ฉ”์ธ ์•กํ‹ฐ๋น„ํ‹ฐ์˜ ๋ ˆ์ด์•„์›ƒ๋งŒ ๋ณด์ด๊ณ  ํ”„๋ž˜๊ทธ๋จผํŠธ ๋‚ด๋ถ€์˜ ๋ฆฌ์‚ฌ์ดํด๋Ÿฌ๋ทฐ๊ฐ€ ๋ณด์ด์ง€ ์•Š๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜์˜€๋‹ค.  ์›์ธ- ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์— ๋”ฐ๋ผ UI๊ฐ€ ๊ฐฑ์‹ ๋˜์ง€ ์•Š์•„ ๋ฐœ์ƒ๋˜๋Š” ๋ฌธ์ œ์˜€๋‹ค! ํ•ด๊ฒฐ- ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๊ฐ€ ์ผ์–ด๋‚˜๋Š” ๊ณผ์ •์„ ์ •ํ™•ํžˆ ์ˆ™์ง€ํ•˜์ง€ ๋ชปํ–ˆ๋‹ค. - ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์— ๋”ฐ๋ผ ui ๋ณ€๊ฒฝ์„ ์ฒ˜๋ฆฌํ•ด์ค„ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†์„๊นŒ ?๐Ÿซฑ Livedata์™€ observe๋ฅผ ํ†ตํ•ด ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๊ธฐ์กด ์ฝ”๋“œval reportList = reportViewModel.report.value if (reportList != null) { val reviewAdapter = ReviewAdapter(.. 2024. 5. 10.
Android recyclerview ์ดํ•ดํ•˜๊ธฐ!!! recyclerview์— ๋Œ€ํ•ด์„œ ์‚ฌ์šฉ๋ฒ•์„ 1๏ธโƒฃActivity ํด๋ž˜์Šค๐Ÿซฑ์•กํ‹ฐ๋น„ํ‹ฐ์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋Œ‘ํ„ฐ์— ๋„˜๊ฒจ์ฃผ๋ฉฐ ์–ด๋Œ‘ํ„ฐ ๊ฐ์ฒด ์ƒ์„ฑ๐Ÿซฑ๋ ˆ์ด์–ด๋“œ ํŒŒ์ผ์— ์ •์˜ํ•ด์ค€ ๋ฆฌ์‚ฌ์ดํด๋Ÿฌ๋ทฐ์˜ ์–ด๋Œ‘ํ„ฐ์™€ ์–ด๋Œ‘ํ„ฐ๋ฅผ ์—ฐ๊ฒฐํ•ด์ค€๋‹ค.๐Ÿซฑ๋ฐ์ดํ„ฐ๋“ค์„ ์–ด๋–ป๊ฒŒ ๋ฐฐ์น˜ํ•  ์ง€ layoutManager๋ฅผ ํ†ตํ•ด ๊ฒฐ์ • ๊ฐ ์•„์ดํ…œ์˜ ๋ ˆ์ด์•„์›ƒ ๊ตฌํ˜„Adapter ๐Ÿซฑ์ธ์ž์™€ ์ƒ์†์–ด๋Œ‘ํ„ฐ๋Š” ์šฐ์„  ๋ฆฌ์‚ฌ์ดํด๋Ÿฌ๋ทฐ์— ๋ณด์—ฌ์ค„ ๋ฐ์ดํ„ฐ๋ฅผ ์ธ์ž๋กœ ๋ฐ›๋Š”๋‹ค. ๊ทธ๋ฆฌ๊ณ  RecyclerView.Adapter๋ฅผ ์ƒ์†๋ฐ›๋„๋ก ํ•œ๋‹ค. ์–ด๋Œ‘ํ„ฐ์— ๊ผญ ์ธ์ž๋กœ ๋„˜๊ฒจ์ฃผ์–ด์•ผํ• ๊นŒ? ์–ด๋Œ‘ํ„ฐ ๋‚ด๋ถ€์—์„œ ๊ทธ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ? ๐Ÿซฑ๊ตฌํ˜„ํ•ด์ค˜์•ผํ•˜๋Š” ๋ฉ”์„œ๋“œ๐ŸซฑonBindViewHolderViewHolder๐Ÿซฑ์šฐ์„  ๊ฐ ์•„์ดํ…œ์— ๋Œ€ํ•œ ๋ ˆ์ด์•„์›ƒ์„ inflate ํ•ด์ค€๋‹ค.๋ ˆ์ด์•„์›ƒ inflate์˜ ์˜๋ฏธ๋Š”?๋”๋ณด๊ธฐ๋ ˆ์ด์•„.. 2024. 4. 29.
๐Ÿฃ๋ฉ”์ธ ํ™”๋ฉด API ์—ฐ๋™ ์ขŒ์ถฉ์šฐ๋Œ๊ธฐ ๊ธฐ๋ก ๋“ค์–ด๊ฐ€๊ธฐ ์ „์—์˜ค๋Š˜์€ ๋ฉ”์ธ ํ™”๋ฉด์—์„œ ์“ฐ์ด๋Š” api์™€ ์—ฐ๋™ํ•˜๋Š” ๊ณผ์ •์„ ๊ธฐ๋กํ•˜์˜€๋‹ค. 1๏ธโƒฃ๋ฉ”์ธ ํ™”๋ฉด : ๊ฐ์ƒ๋ฌธ ์กฐํšŒ ๊ธฐ๋Šฅ ๊ตฌํ˜„๋ฉ”์ธ ํ™”๋ฉด์—์„œ๋Š” ์ „์ฒด ๊ฐ์ƒ๋ฌธ์„ ๋ฆฌ์‚ฌ์ดํด๋Ÿฌ๋ทฐ๋กœ ๋ณด์—ฌ์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ํ˜„์žฌ๋Š” ๋”๋ฏธ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ์ƒ๋ฌธ์„ ๋ณด์—ฌ์ฃผ๋Š”๋ฐ, ์ด์ œ API์™€ ์—ฐ๋™ํ•˜์—ฌ ์‹ค์ œ ๊ฐ์ƒ๋ฌธ ๋‚ด์šฉ๊ณผ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ์ž‘์—…์„ ํ•˜๋ ค ํ•œ๋‹ค. ๋จผ์ € API์™€ ์—ฐ๋™๋ถ€ํ„ฐ ํ•ด์ฃผ์—ˆ๋‹ค. ๐Ÿค๋ฐฐ์šด ์ 1๏ธโƒฃRepository๋„ interface๋กœ ์ •์˜ ํ›„ ์ด๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ํด๋ž˜์Šค๋ฅผ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค.2๏ธโƒฃ์ธํ„ฐํŽ˜์ด์Šค์™€ hilt ์‚ฌ์šฉ๋ฒ•  ์ด๋ ‡๊ฒŒ Repository๋ฅผ interface๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค.interface ReportRepository { suspend fun searchReport(): Result} ๊ทธ๋ฆฌ๊ณ  ์•„๋ž˜์™€ ๊ฐ™์ด searchReport.. 2024. 4. 8.
728x90