ย ์ด๋ฒ ์ฃผ ๋ชฉํย 
โข
[ V ] ์ฝ๋ฉ ํ
์คํธ ์ผ์ฃผ์ผ 3๋ฌธ์
โข
[ X ] ํด๋ก ์ฝ๋ฉ ์งํ
โข
[ V ] ์ด๋ฒ ์ฃผ ๊ฐ์ ์ ๋ฆฌํ์ฌ ๋ธ๋ก๊ทธ ์์ฑ
โข
[ V ] ์คํฐ๋ ์ฑ ์ ์
ย Liked(์ข์๋ ์ )
์๋๋ก์ด๋์ UI ์์์ ๋ํด ๋ฐฐ์ฐ๋ค
โข
๋ํ์์ ์ฌ๋ฌ UI์ ๋ํด ๋ฐฐ์ฐ๊ธด ํ์์ง๋ง ์๋์ ์ผ๋ก ์๋ ์๋ฃ๋ค๋ก ๊ฐ์๋ฅผ ๋ค์ด ํ์ฌ ํธ๋๋์ ๋ง์ง ๋ง์ง ์๊ณ ๊ธฐ๋ณธ๊ธฐ๋ฅผ ์ตํ๊ธฐ ์ํด ์์
์ ํ์๋ ๋๋์ด ๊ฐํ๋ค. ๊ทธ ๋ง์ ๋ ๋ด๊ฐ ์ง์ ํ๋ก์ ํธ๋ฅผ ํ๊ธฐ ์ํด ๊ฒ์์ ํ๋ฉด์ ์๊ฒ ๋์๋ค.
โข
์ฑ์ค์ฟจ์ ์๊ฐํ๋ฉด์ ๊ฐ์ฌ๋์ด ํ์ฌ ํธ๋๋๋ฅผ ์๋ ค์ฃผ์๊ณ ๊ทธ์ ๋ง์ถฐ ์ง๋๋ฅผ ๋๊ฐ๋ ์ ์์ ๋งค์ฐ ๋ง์กฑ์ค๋ฝ๋ค. ์๋ฅผ ๋ค๋ฉด RecyclerView์ ๋์ ๋ฐฉ์์ด๋ TextInputLayout ์ฌ์ฉ ๋ฐฉ๋ฒ ๋ฑ๋ฑ)
RecyclerView ๋์ ๋ฐฉ์์ ๋ํด ํ์ตํ๋ค
โข
RecyclerView๋ฅผ ์ฌ์ฉํด๋ณธ ๊ฒ์ ์ด๋ฒ์ด ์ฒ์์ด ์๋ ๋ฟ๋๋ฌ ๋๊ฐ์ง ํ๋ก์ ํธ์๋ ์ ์ฉ์์ผฐ์๋ค.
โข
๊ทธ ๋๋ ListView๋ณด๋ค ์ปค์คํ
๋ถ๋ถ์ด๋ ํจ์จ์ฑ์ด ๋ ์ข๊ณ , ๊ตฌ๊ธ์์๋ย RecyclerView ์ฌ์ฉ์ ๊ถ์ฅํ๋ค๋ ๊ฒ์ ์๊ณ ๋ ์์๋ค.ย ํ์ง๋ง ๋ด๋ถ์ ์ผ๋ก ์ย RecyclerView๊ฐ ํจ์จ์ด ์ข์์ง, ์ ์ปค์คํ
๋ถ๋ถ์์ ๋ ์ฉ์ดํ๋ค๊ณ ์๊ธฐํ๋ ๊ฒ์ธ์ง๋ ListView๋ฅผ ๋ค๋ค๋ณด์ง ์์ ๋ชจ๋ฅด๊ณ ์์๋ค.
โข
๊ทธ๋๋ ListView๋ณด๋ค ์ข์ ์ ์ด ๋ง๋ค๊ณ ํ๋ ์ฌ๋ฌ ๋ธ๋ก๊ทธ๋ฅผ ๋ณด๊ณ ์ฝ๋๋ฅผ ์ฐธ๊ณ ํ์ฌ ์์ ํ๊ณ ๋ฅผ ๋ช๋ฒ์ด๋ ๋ฐ๋ณตํ์ฌ ์ ์ฉ์์ผฐ์๋ค. ์ด๋ค ๋ฉ์๋๊ฐ ์ด๋ค ์ญํ ์ธ์ง๋ฅผ ์ธ์งํ์ง ๋ชปํ ์ํ์์ ํ๋ค๋ณด๋ ๋ ์ด๋ ค์ ๋ ๊ฒ ๊ฐ๋ค.
โข
์ด๋ฒ์ฃผ ๊ฐ์์์ ๊ฐ์ฌ๋์ด ์ง์ ListView์ย RecyclerView๋ฅผ ๋น๊ตํด์ฃผ์๋ฉด์ ๊ฐ์๋ฅผ ํด์ฃผ์
จ๊ณ ์ด ๋์ ์ฐจ์ด์ ๊ณผ ๋์ ๋ฐฉ์์ ์ ์ ์๊ฒ ๋์๋ค.
์ด๋ ฅ์ ๊ฐ์์ ํฌํธํด๋ฆฌ์ค ๋๊ณต์ฌ ์์
โข
์ด์ ๊น์ง ๋ง์ ๊ธฐ์
์ ๋ฃ์์๋ค. ์ ์ผ ์ถฉ๊ฒฉ์ ์ด์๋ ๊ฒ์ ์ด๋ ฅ์๋ฅผ ์ด๋ํ๋ค๋ ์๋ฆผ์ด ์ค๊ณ 1๋ถ๋ง์ ํ๋ฝ ์๋ด๊ฐ ์๋ ๊ฒ์ด์๋ค.
โข
์ด๋ ฅ์ ๊ฐ์๋ฅผ ๋ฃ๊ณ ๋ด ์ด๋ ฅ์๋ฅผ ๋ค์ ์ดํด๋ณด๋ ๊ฐ๋
์ฑ์ด ์ข ๋จ์ด์ง๋ ์ถ๊ธฐ๋ ํ๊ณ , ํ ๋์ ๋ณด๊ธฐ ์ด๋ ค์ ์ ๊ฒ ๊ฐ๊ธฐ๋ ํ๋ค. ๊ฑฐ๊ธฐ๋ค ๊ฐ์ฌ๋์ด ๋น์ถ์ฒํ๋ค๋ '์ ์
'์ด๋ผ๋ ๋จ์ด๋ฅผ ๋งจ ์ ๋ถ์ ๋ชฉ์ผ๋ก ๋ถ์ฌ๋ฃ์๋ ๊ฒ๋ ์ ๊ฒฝ ์ฐ์๋ค.
โข
๊ฐ์ ๋ ๋ฉ๋ชจํด๋ ๊ฒ์ ํ ๋๋ก ์ ๋ถ ๊ฐ์์์ด์ผํ ๊ฒ ๊ฐ๋ค. ๋ฒ์จ ์ด์ง๋ฝ๋ค.
๋ฐฑ์ค ๋ ๋ฒจ ์์น
โข
ํ ํ๊ณ ์์ ์ฃผ๋ง๋ค ์ฃผ์ด์ง๋ ์ฝ๋ฉ ํ
์คํธ ๋ฌธ์ ๋ฅผ ํ์๋๋ฐ ์๊ณ ๋ณด๋ ๋ฐฑ์ค ๋ ๋ฒจ ์
์ด ์ผ๋ง ๋จ์ง ์์์๋ค. ๊ทธ ๋์์ ํ๋ก๊ทธ๋๋จธ์ค์์ ๊ธฐ๋ณธ๊ธฐ๋ฅผ ์ํด 0๋ ๋ฒจ ๋ฌธ์ ๋ฅผ ๋ง์คํฐํ๊ธฐ์ ๋ฐฑ์ค๋ณด๋ค ํ๋ก๊ทธ๋๋จธ์ค๋ฅผ ๋ง์ด ์ฌ์ฉํ์๋ค.
โข
10์ ์ ๋ ๋จ์ ๊ฒ์ ๋ณด๊ณ ํ ๋ฌธ์ ๋ง ํ๋ฉด ์ค๋ฅผ ์๋ ์๊ฒ ๋ค ์ถ์๋ค. ๋์ ํฉ์ ๋ํ ๋ฌธ์ ๋ฅผ ํ์๋๋ฐ ์๊ณ ๋ณด๋ ๊ณจ๋ ๋ฌธ์ ์ฌ์ ์ค๋ฒ 3์ ๋ฌ์ฑํด๋ฒ๋ ธ๋ค.
โข
๊พธ์คํ ํ๋ค๋ณด๋ฉด ๊ณจ๋๋ ์ฐ์ ์ ์๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์๋ค.
ย Lacked (์์ฌ์ ๋ ์ )
FLO ํด๋ก ์ฝ๋ฉ ์ง๋ ๋ถ์ง
โข
์ด๋ฒ์ ์๋ก Jetpack ์คํฐ๋๋ฅผ ์งํํ๋ฉด์ ์ฃผ๋ง์ ๋ชฝ๋
์คํฐ๋ ์ฑ ์ ์์ ์์๋ฒ๋ ธ๋ค. ๊ฐ์๋ฅผ ๋ฃ์ง ์๊ณ ๊ฒฐ๊ณผ ํ๋ฉด๊ณผ ์ฌ์ฉ๋ ๊ธฐ๋ฅ๋ง ์ฐธ๊ณ ํ์ฌ ๋ง๋ค๋ค๋ณด๋ ๋ ์ค๋ ๊ฑธ๋ ธ๋ ๊ฒ ๊ฐ๋ค.
โข
ViewPager2์ TabLayout์ ์ฐ๋ํ์ฌ ์ค์์ดํ๊ฐ ๊ฐ๋ฅํ Tab์ ์ ์ํ๋ ๊ฒ์ ๊ทธ๋ ๊ฒ ์ค๋ ๊ฑธ๋ฆฌ์ง ์์๋ค.
โข
๋ด๊ฐ ํค๋งธ๋ ๋ถ๋ถ์ WebView์ ์ด์ ๋ฐฉ๋ฌธ ๊ธฐ๋ก ๋ถ๋ฌ์ค๊ธฐ์ ์๋ก๊ณ ์นจ์ด์๋ค. WebView๋ฅผ ์ฒ์ ๋ค๋ค๋ณด๋ค๋ณด๋ ์ด๋ ต๊ฒ ๋๊ปด์ก๋ค.
โข
์ด๋ฒ ์ด๋ ฅ์ ๊ฐ์์์ ์ง์์๋ต ์๊ฐ์ ๊ฐ์ฌ๋์ด WebView๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ ์ถ์ธ๋ผ๊ณ ํ์
์ ์์ธํ ๋ฐฐ์๋ณผ ํ์๊ฐ ์๋ค๊ณ ์๊ฐํ๊ฒ ๋์๋ค.
์ปจ๋์ ๊ด๋ฆฌ ์คํจ?
โข
JetPack ์คํฐ๋๋ฅผ ํ๋ฉด์ ๋ง๋ ์นํฐ ์ฑ์ ์ฃผ๋ง ์์ ๋๋ด๊ณ ์ ์ผ์์ผ ~ ์์์ผ ๋ฐค์ ์๋ฒ๋ ธ๋ค... ํ ๋ฒ ์ค๋ฅ๊ฐ ๋๋ ์ฐ๋ฌ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ณ ์ค๊ธฐ๊ฐ ์๊ฒผ์๋ค.
โข
๊ฒฐ๊ตญ ์์
์ ์๋ฒฝ 6์ ์ ๋๊น์ง ๋ถ์ก์ ํด๊ฒฐํ ๋์ ํ๋ก์ ํธ ํ์ผ์ ๋ซ์๋ค. ๋ซ๊ณ ๋๋ ์ฝ๊ฐ์ ํํ๊ฐ ๋ฐ๋ ค์๋ค. '์ค๋ ์ผ์ ๋ ์๋๋ฐ ๋๋ฌด ์ค๊ธฐ๋ก ๋ถ์ก๊ณ ์์๋'๋ผ๋ ์๊ฐ์ด ๋ค์๊ณ , ๊ฒฐ๊ตญ ์ด๋ฒ์ฃผ ๋ด๋ด ์ฝ๊ฐ์ ํผ๊ณคํจ์ ๊ณ์ ๋ฌ๊ณ ์ง๋๋ค.
โข
์์
์๊ฐ์ ์กธ๊ณ ๊ทธ ์ ๋๊น์ง๋ ์๋์์ง๋ง ๋ญ๊ฐ ๊ณ์ 'ํผ๊ณคํ๋ค'๋ผ๋ ๋๋์ด ๋ค์๋ค. ํ๊ต ๋ค๋ ๋ ๊ณผ์ ๋ฅผ ํ๊ฑฐ๋ ์ํ ๊ณต๋ถ๋ฅผ ํ ๋๋ ๊ฑฐ๋ฌํ๋๋ฐ ๋ผ๋ ์๊ฐ๋ ๋ค๊ณ ...
โข
ํ๋ฃจ ๋ฐค์ ์๋ค๊ณ ์ด๋ฌ๋๊ฑด์ง ๊ทธ๋ฅ ํผ๊ณคํ๊ฑด์ง ์ฌ์ค ์ ๋ชจ๋ฅด๊ฒ ๋ค.
ย Learned (๋ฐฐ์ด ์ )
onSaveInstanceState์ย onRestoreInstanceState
โข
Bundle์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค. ์ ์ฅํ ๋ฐ์ดํฐ๋ฅผ onSaveInstanceState()์ onRestoreInstanceState()๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฅ ๋ฐ ๋ณต๊ตฌํ ์ ์๋ค.
โข
onSaveInstanceState()๋ Activity๊ฐ onStop() ํจ์ ๋ค์์ ํธ์ถ๋๋ฏ๋ก Activity ์ข
๋ฃ ์ ์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ค.
โข
onRestoreInstanceState()๋ Activity๊ฐ onStart() ํจ์ ๋ค์์ ์คํ๋๊ธฐ ๋๋ฌธ์ Activity๊ฐ ์คํ๋ ํ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์จ๋ค.
ListView์ RecyclerView
โข
ListView๋ RecyclerView ๋๋น ๋น๊ต์ ๊ฐ๋จํ๊ฒ ๊ตฌํํ ์ ์์ง๋ง Layout ์ปค์คํ
์ด๋ ํจ์จ์ฑ ์ธก๋ฉด์์ RecyclerView๊ฐ ๋ ๋ซ๋ค.
โข
ListView๋ ํญ๋ณต View๋ฅผ ์์ฑํ์ฌ Pool์ ์ ์ฅํ๋ค.ย ๋ฐ๋ผ์ ๋ฐ์ดํฐ๋ฅผ ํญ๋ชฉ View์ ๋ฃ์ด ๋ณด์ฌ์ฃผ๋ ค๋ฉด Pool์ ์ ๊ทผ - Pool์์ ํด๋น ํญ๋ชฉ ์ ๊ทผ - ํด๋น ํญ๋ชฉ์์ View ID์ ์ ๊ทผํ๋ฏ๋ก ์๋์ ์ผ๋ก ๋ ๋ง์ ์ ์ฐจ๋ฅผ ๊ฑฐ์ณ์ผ ํ๋ค.
โข
RecyclerView๋ Adapter๊ฐ ํญ๋ชฉ View๋ฅผ ์์ฑํ๊ณ ์ด๋ Holder๊ฐ ๊ด๋ฆฌํ๋ค. ๋ฐ๋ผ์ Holder ์ ๊ทผ - ํญ๋ชฉ์ View ID์ ์ ๊ทผํ๋ฏ๋ก ListView๋ณด๋ค ์ ์ ์ ์ฐจ๋ฅผ ๊ฑฐ์น๋ค. ๋ฐ๋ผ์ ๋ฉ๋ชจ๋ฆฌ ํจ์จ๊ณผ ์๋ ์ธก๋ฉด์์ RecyclerView๊ฐ ๋ ์ข๋ค.
์ ๊ทผ ๋ฐฉ์ | Adapter์ ์ญํ | Pool์ ์ญํ | |
ListView | Pool์ ์ ๊ทผ - Pool์์ ํด๋น ํญ๋ชฉ ์ ๊ทผ - ํด๋น ํญ๋ชฉ์์ View ID์ ์ ๊ทผ | ํญ๋ชฉ View ์์ฑ | ํญ๋ชฉ View ์ ์ฅ |
RecyclerView | Holder ์ ๊ทผ - ํญ๋ชฉ์ View ID์ ์ ๊ทผ | ํญ๋ชฉ View ์์ฑ,Holder ๊ด๋ฆฌ | ํ๋ฉด์ ํญ๋ชฉ์ ๋ณด์ฌ์ค |
ย Longed for (์์ผ๋ก ๋ฐ๋ผ๋ ์ )
ํด๋ก ์ฝ๋ฉ ๋ง๋ฌด๋ฆฌ
โข
Restful API๋ฅผ ์ฌ์ฉํ๋ '์ปด๊ณต ์ ๋ฐฐ' FLO ํด๋ก ์ฝ๋ฉ์ ๋ง๋ฌด๋ฆฌ ์ง์ ๊ฒ์ด๋ค.
โข
๋ง๋ฌด๋ฆฌ ํย ์คํฐ๋์ ์ง์คํ ๊ฒ์ด๋ค.
ํฌํธํด๋ฆฌ์ค ๋๊ณต์ฌ
โข
๊ฐ์๋ฅผ ๋ฃ๊ณ ๋ณด๋ ๋ด ํฌํธํด๋ฆฌ์ค ํฌํ๋ฆฟ์ด ๋ง์์ ๋ค์ง ์๋๋ค.
โข
์ฃผ์ด์ง ํฌํ๋ฆฟ์ผ๋ก ๋ณ๊ฒฝํ๊ฑฐ๋ ๋ค๋ฅธ ํฌํ๋ฆฟ์ ์ฐพ์ ๋๊ณต์ฌ๋ฅผ ํด์ผํ ๊ฒ ๊ฐ๋ค.