๐Ÿ…ฐ๏ธ ์ด๋ฏธ์ง€ ๊ฒ€์ƒ‰ ํŽ˜์ด์ง€ ๋งŒ๋“ค๊ธฐ - 2

kkominยท2023๋…„ 9์›” 20์ผ
0

Android Studio

๋ชฉ๋ก ๋ณด๊ธฐ
32/44

๊ตฌํ˜„ํ•˜๋ฉด์„œ ์•„ ์ด๊ฒŒ ์™œ ์‹ฌํ™”๊ณผ์ •์— ํ•ด๋‹น๋˜๋Š” ํ”„๋กœ์ ํŠธ์ธ์ง€ ์•Œ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋ฐ”๋กœ ๋“ค์–ด๋ฒ„๋ฆฌ๋Š” ยกยกยก( โ€ขฬ€ แด— โ€ขฬ )ูˆ!!!


์ˆ˜์ •๋œ UI

SearchFragment

์œ„์ฒ˜๋Ÿผ SearchView๋กœ ๊ธฐ์กด์— ์„ค์ •ํ–ˆ์—ˆ๋Š”๋ฐ ๋ญ”๊ฐ€ ๋””์ž์ธ์ด ๋งˆ์Œ์— ์•ˆ๋“ค์–ด์„œ editText๋ž‘ imageButton๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ์—ˆ๋‹ค.


item layout

๊ฒฉ์ž๋กœ item์„ ๋ฐฐ์น˜ํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜์ •ํ•ด์คฌ๋‹ค.


Constrant

API_KEY์™€ url์„ Constrant ํŒŒ์ผ์— ์„ค์ •ํ•ด์ค€๋‹ค.


Interface ์„ค์ •

Query๊ฐ€ ๋‹ค์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์— Query ๋Œ€์‹  QueryMap์„ ์ด์šฉํ•ด์ฃผ๋ฉด ๋œ๋‹ค.


MainActivity ์„ค์ •

bottomNavigationView์˜ item์— ๋”ฐ๋ผ SearchFragment๋‚˜ SaveFragment์ด ์ „ํ™˜๋˜๋ฉด ๋œ๋‹ค.


SearchFragment ์„ค์ •

SearchAdapter์„ ์—ฐ๊ฒฐํ•ด์ฃผ๊ณ , ํ•ด๋‹น recyclerview์˜ ๋ ˆ์ด์•„์›ƒ์€ ๊ฒฉ์ž๋ชจ์–‘์œผ๋กœ 2๊ฐœ์”ฉ ์ด๋ฏธ์ง€๊ฐ€ ๋‚˜์˜ค๋„๋ก ์„ค์ •ํ•ด์ฃผ๊ณ  recyclerview์˜ ๊ฐ๊ธฐ ๋‹ค๋ฅธ ํฌ๊ธฐ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ผ์ •ํ•˜๋„๋ก ๊ตฌํ˜„ํ•ด์ฃผ์—ˆ๋‹ค.

๋„คํŠธ์›Œํฌ ์š”์ฒญ์„ ํ†ตํ•ด ์ด๋ฏธ์ง€ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์™€ ํ™”๋ฉด์— ํ‘œ์‹œํ•ด์ค€๋‹ค.

Interface์—์„œ ๊ธฐ์กด์˜ Query์˜ ๋‹ค์ˆ˜๋ฅผ QueryMap์œผ๋กœ ์„ค์ •ํ•ด์ฃผ์—ˆ๊ณ , ์ด๋ฅผ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•ด HashMap์„ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— query ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ•˜๋‹จ์— hashMapOf ํ˜•ํƒœ๋กœ ์„ค์ •ํ•ด์ฃผ์—ˆ๋‹ค. ๊ฒŒ์‹œ๋ฌผ์€ ์ตœ์‹ ์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜๊ธฐ๋ฅผ ์›ํ•ด์„œ sort์—๋Š” recency๋ฅผ ์ ์šฉํ•ด์ฃผ์—ˆ๋‹ค.


SearchAdapter ์„ค์ •

SearchAdapter์—์„œ๋Š” inner class๋ฅผ ์ด์šฉํ•˜์—ฌ searchview์˜ recyclerview์— ๋“ค์–ด๊ฐˆ item ๋ ˆ์ด์•„์›ƒ์˜ id๋ฅผ ์ด์šฉํ•ด ์ƒ์ˆ˜๋กœ ์„ ์–ธํ•ด์ฃผ์—ˆ๊ณ , ๋ฌธ์ž์—ด์„ ํŒŒ์‹ฑํ•ด ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„์„ ์›ํ•˜๋Š” ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•ด ์„ค์ •ํ•ด์ฃผ์—ˆ๋‹ค.

์ด์ด๋ฏธ์ง€๋Š” api์—์„œ์˜ url์„ ๊ฐ€์ ธ์˜ค๊ธฐ ๋•Œ๋ฌธ์— Glide๋ฅผ ์ด์šฉํ•ด์ฃผ๊ณ  ๋‚˜๋จธ์ง€๋Š” Document์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์œผ๋กœ ์„ค์ •ํ•ด์ฃผ์—ˆ๋‹ค.


์‹คํ–‰ํ™”๋ฉด

profile
์†Œ์†Œํ•œ ์ฝ”๋”ฉ ์ผ๊ธฐ

0๊ฐœ์˜ ๋Œ“๊ธ€