๐ฑ Today I Learned
- (12:20 ~ 14:00 / 1์๊ฐ 40๋ถ) Activity Lifecycle, Activity Stack ํ์ต
- (17:30 ~ 18:40 / 1์๊ฐ 10๋ถ) Fragment LifeCycle, Fragment ๋ฐ์ดํฐ ์ ๋ฌ ๋ฐฉ์ ํ์ต
- (12:00 ~ 12:15 / 15๋ถ) TIL ์์ฑ ๋ฐ ๋ฐฐ์ด ๋ด์ฉ ํ๊ณ
- (02:00 ~ 02:50 / 50๋ถ) ์คํ ๋ค๋๋ฐ ์ฌํ UI ์ํ - fragment, recyclerView ์ด์ฉ
- ํค์ค์คํฌ ํ์ต
- ๋ฆฌ์ฌ์ดํด๋ฌ๋ทฐ๊น์ง ์์ต
- ์คํ ๋ค๋๋ฐ ์ฌํ๊ณผ์ ์ํ
- ์ฌ์ฐฝ๊ฒฝ ๊ฐ์
*** ์ ์ฌ 13:00 ~ 14:00 / ์ ๋ 18:00 ~ 19:00 ์ ์ธ
โ
1. Activity Lifecycle, Activity Stack ํ์ต
- ์กํฐ๋นํฐ ๋ผ์ดํ์ฌ์ดํด์์ ์ํฉ๋ณ๋ก ์ด๋ค ๋จ๊ณ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ ์ข์์ง์ ๋ํ ์์ธํ ์ค๋ช
,
๋ผ์ดํ์ฌ์ดํด ์ ํ๋ก์ธ์ค์๊ฒ killed ๋๋ ์ํฉ ๋ฑ์ ๊ธฐ์กด ๊ธ์ ๋ณด๋ค ์์ธํ ๋ณด์ํ์ฌ ์ ๋ฆฌํ๋ค. - ์กํฐ๋นํฐ ์คํ์ ๊ฐ๋
๊ณผ ํ๋ก์ธ์ค์์ ์ฐจ์ด,
๋งค๋ํ์คํธ ํ์ผ ํน์ ์ธํ ํธ ํ๋๊ทธ๋ฅผ ์์ ํ์ฌ ์คํ์ ๋ฐ์น๋ชจ๋๋ฅผ ์ค์ ํ๋ ๋ฒ ๋ฑ์ ์๋ก ์ ๋ฆฌํ์๋ค. - ์คํ์ ๋ฐ์น ๋ชจ๋๋ ์ฌ๋งํ๋ฉด ๊ฑด๋ค๋ฉด ์ ๋๋ ๋ถ์ผ๋ผ ๊ฐ๋ ๋ง ๊ฐ๋จํ ์ ๋ฆฌํ์๋ค.
2. Fragment LifeCycle, Fragment ๋ฐ์ดํฐ ์ ๋ฌ ๋ฐฉ์ ํ์ต
- ํ๋๊ทธ๋จผํธ๋ฅผ ์ด์ฉํ ์ฑ์ ์์ง ๊ฐ๋ฐํด๋ณด์ง๋ ์์์ ์ ํํ ์๋ช ์ฃผ๊ธฐ๋ ๋ฐ์ดํฐ ์ ๋ฌ๋ฐฉ์๊น์ง ์ฐพ์๋ณผ ์ผ์ ์์๋๋ฐ, ์ด๋ฒ ๊ณผ์ ๋ฅผ ์ํํ๋ฉฐ ๋ง์ด ๋ฐฐ์ฐ๊ณ ์๊ฒ๋์๋ค.
- ๋ด๊ฐ ๊ตฌ์ํ๊ณ ์๋ ์ดํ๋ค์ ๋ชจ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋๊ทธ๋จผํธ๋ฅผ ํ์ฉํ ์ดํ๋ค์ด๋ค.
- ๊ณ ์ ์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ฐ๊ณ ์๊ณ , ์ฌ๋ฌ๊ฐ์ง ๋ฐ์ดํฐ ์ ๋ฌ ๋ฐฉ์์ด ์๋ ๊ฒ์ด ํฅ๋ฏธ๋ก์ ๋ค.
- Jetpack Navigation์ ๋ํด์๋ ์ด์ง ์ฐพ์๋ณด์๋๋ฐ ํ๋๊ทธ๋จผํธ ์ด๋์ ํธ๋ฆฌํด๋ณด์ฌ์ ์ฌ์ฉํด๋ณด๊ณ ์ถ๋ค.
3. ์คํ ๋ค๋๋ฐ ์ฌํ UI ์ํ - fragment, recyclerView ์ด์ฉ
๐กNestedScrollView
- NestedScrollView์ ๋ํด์ ์ฒ์ ์์๋ค. ScrollView์ ๊ฑฐ์ 99% ๋๊ฐ์ ๊ฑฐ์ง๋ง, ์คํฌ๋กค๋ทฐ๋ ์์ ๋ฆฌ์ฌ์ดํด๋ฌ๋ทฐ๋ฅผ ์ฌ์ฉํ์ ๋ ์ด์ํ ์ด๋ฒคํธ ์ฒ๋ฆฌ (๋ฆฌ์ฌ์ดํด๋ฌ๋ทฐ๋ง ์คํฌ๋กค ๋๋ค๊ฐ ๋ค ๋๋ฉด ๊ทธ์ ์์ผ ์คํฌ๋กค๋ทฐ๊ฐ ์คํฌ๋กค) ๊ฐ ๋ํ๋๋ค. ๋ฐ๋ฉด, ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด NestedScrollView๋ฅผ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ๋ทฐ๊ฐ ํจ๊ป ์คํฌ๋กค ๋๋ค๊ณ ํ๋ค.
- ์์ ๋๊ฐ์๋ฐ ์ฅ์ ๋ง ์๊ธด ๊ฑฐ๋ NestedScrollView๋ฅผ ์ฌ์ฉํ๋ฉด ๋ ๋ฏ ํ๋ค. appcompat button์ ๋๋๊ณผ ๋น์ทํ๋ค.
- NestedScrollView๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด, ์์ ์๋ RecyclerView์ nestedScrollingEnabled ๊ฐ์ false๋ก ์ค์ ํด์ผ ํ๋ค.
- ๋ค๋ง, ์ด๋ ๊ฒ NestedScrollView์ ๋ฆฌ์ฌ์ดํด๋ฌ๋ทฐ๋ฅผ ํจ๊ป ์ฌ์ฉํ๋ ๊ฒ ๋นํจ์จ์ ์ผ ๋๋ ์๋ค. ๋ฆฌ์ฌ์ดํด๋ฌ๋ทฐ์ ์์ดํ ์ด ๋ง์ ๊ฒฝ์ฐ์ ํจ์จ์ด ๋จ์ด์ง๋, ์ฐจ๋ผ๋ฆฌ ๋ฆฌ์ฌ์ดํด๋ฌ๋ทฐ์์ ViewHolder๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ ๋ซ๋ค.
- ์ฐธ๊ณ ๋ธ๋ก๊ทธ: https://velog.io/@kimbsu00/Android-7
๐กFragment ์์ฑ ๋ฐ ์ฐ๊ฒฐ
- Fragment๋ง๋ค ์ฝํ๋ฆฐ ํด๋์ค ํ์ผ๊ณผ xml ํ์ผ์ ๋ง๋ค์ด ์ฐ๊ฒฐํด์ฃผ๋ฉด ๋๋ค. ์กํฐ๋นํฐ์ ๊ฐ๋ค.
- : Fragment()๋ก ํด๋์ค๋ฅผ ์์ํด์ฃผ๊ณ , ํ๋๊ทธ๋จผํธ ์๋ช ์ฃผ๊ธฐ์ธ onCreateView๋ฅผ ๋ง๋ค์ด inflate๋ก ์ฐ๊ฒฐํด์ค๋ค.
- ์กํฐ๋นํฐ์ ๋ณ ๋ค๋ฅผ ๋ฐ ์์ด์ ์ด ๋ถ๋ถ์ ๊ฐ๋จํ ๋์ด๊ฐ๋ค.
์ค๋์ ๊ธฐ๋ณธ์ ์ธ ํ๋ง ๊ตฌํํ๋ค.
๋ด์ผ๋ถํฐ ์์ธํ UI๋ฅผ ๊ตฌํํ๋ ๋ฐ ๊ณ ๋ฏผํ๊ณ , ๊ฐ์ข
๋ทฐ๋ฅผ ์ฐ๊ฒฐ์ง๊ณ , ๋ฐ์ดํฐ๋ฅผ ๋๊ธฐ๋ ๋ฑ์ ์์
์ ์ํํ ๊ฒ์ด๋ค.
๐ญ Retrospect
๋ด์ผ ์ ๋ ์ ์ ๊น ์ธ์ถํ ์ผ์ด ์์ด ์ค๋์ ์ฃผ๋ง์์๋ ๋ถ๊ตฌํ๊ณ ๊ณต๋ถ๋ฅผ ํ๋ค. ์ญ์ ๊ณต๋ถ๋ ์ฌ๋ฐ๋ค. ์ฒซ ์ทจ์ ์ ํ๋ ์๊ธฐ์๋, ์ด์ง์ ํ๋ ์๊ธฐ์๋ ์ด๋ค ๊ณต๋ถ๋ ํญ์ ์ฌ๋ฐ์๋ ๊ฒ ๊ฐ๋ค. ๊ณต๋ถ ์์ฒด๊ฐ ์ง์ ์ผ ์ ์์๊น?
๋ถํธ์บ ํ๋ฅผ ์์ํ๋๊ฒ ํ ํด๊ฐ ์์๋์ง ์ผ๋ง ๋์ง ์์๋ 2์์ธ๋ฐ, ๋ฒ์จ 4์์ด๋ค. ๋๋์ด ์ด์ํ๋ค... 2024๋ ์ด ๋๋ฌด ๋นจ๋ฆฌ ํ๋ฌ๊ฐ๋ฒ๋ฆฌ๊ณ ์๋ ๊ฑฐ ๊ฐ์์ ์ข ๋๋ ต๊ธดํ๋ค. ๊ธฐ์กด ์๊ฐ์๋ค์ ํ๊ธฐ๋ฅผ ์ฐพ์๋ณด๋ฉด ๊ธฐ๊ฐ์ด ๊ธธ์ด๋ณด์ด๊ณ (๋ ํ์ ๋นํด) ๋ถ๋ด์ค๋ฝ๊ณ ๋ง๋งํด๋ณด์๋๋ฐ, ์ค์ ๋ก ๊ฒช์ด๋ณด๋ ๊ทธ๋ฅ ์๊ฐ์ด ๊ฒ๋ ๋นจ๋ฆฌ๊ฐ๋ ๊ฑฐ์๋ค. ๊ทธ๋ฅ ์ฃผ์ด์ง ๊ฑธ ๊ณต๋ถํ๊ณ , ํผ์ ๊ถ๊ธํ ์ ์ ์กฐ๊ธ์ด๋ผ๋ ์ฐพ์๋ณด๊ณ ํ๋ค๋ณด๋ฉด ๋ฒ์จ ํ ๋ฌ์ด ์ง๋์๋ค. ๊ฐ๋ฐ ๊ณต๋ถ์๋ง ๋งค๋ชฐ๋ผ์ ๋ช ๋ ๋์ ๊ณต๋ถ๋ง ํ๋ ๊ฑธ ๊ฒฝ๊ณ ์ผ์ผ๋ผ๋ ๊ธ์ ๋ณธ์ ์ด ์๋๋ฐ ๊ณต๋ถํ ์๋ก ๋ฌด์จ ๋ง์ธ์ง ๋๊ปด์ง๋ค. ์๋๋ก์ด๋ ํ๋๋ง์ผ๋ก ์ด๋ ๊ฒ ๋๋ ์์ด ๋ฐฐ์ฐ๊ณ ์ถ์๋ฐ, ์์ฌ์ด ๋ง์ ์๋ก ์ ๋ง ํ๋ ๋๋ ์์ด ๊ธฐ์ ์คํ์ ์ถ๊ฐํ๋ฉฐ ๊ณต๋ถ๊ธฐ๊ฐ์ด ๋์ด๋ ๊ฒ ๊ฐ๋ค.
๊ฐ์ธ์ ์ธ ์์ฌ๊ณผ ์ปค๋ฆฌ์ด ๋ชฉํ ์ฌ์ด์์ ์ ์ ์ธ์ง ํ ์ ์๋ ํ๋ช ํ ์ธ์ฌ์ดํธ๋ฅผ ๊ฐ์ง์.
โ