json ๋ฐ์ดํฐ ์ ๊ทผ์ ์ฃผ์์ฌํญ
json์ ๊ฐ์ฅ ๋ฐ๊นฅ์ด ๋ฐฐ์ด์
์ธ๋ฑ์ค๋ก ์ ๊ทผ
Video ๊ฒ์ ํ๋ฉด ๊ตฌํํ๊ธฐ
๋ ์ด์์ ์ค์ ์ ๋ถ๋ฑํธ ์ฌ์ฉํ๊ธฐ
์ ๋ชฉ์ด ๊ธธ์ด์ง๋ฉด ๋๋ฒ์งธ ๋ผ๋ฒจ์ด ๊ฐ๋ ค์ง ์ ์์
๋๋ฒ์งธ ๋ผ๋ฒจ bottom ๋ง์ง 8๋ก ์ค → ์์ ๋ด๋ ค๊ฐ๋ฒ๋ฆผ
8๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ฒ๋ก ๋ณ๊ฒฝ.
๋ ์ด์์ ๋ฌธ์ ์์ด ์ ์ค์ ๋จ
๋์์ ๊ฒ์ ๋ทฐ(Kakao API)
- video ๋ด์ ๊ตฌ์กฐ์ฒด ์ ์ธ
- ๋คํธ์ํฌํต์ ํด์ ์ป์ video ๋ด์ ๋์ struct ๋ฐฐ์ด ์ ์ธ
- json์ผ๋ก ์ป์ ๊ฐ๋ค๋ก Struct ์ด๊ธฐํ ํด์ Struct ๋ฐฐ์ด์ ์ถ๊ฐํ์ฌ ์ ์ฅ
์ํ์ฝ๋ ์ ํจ์ฑ ๊ฒ์ฌ
request์ ๋ฌธ์ ์์ ๊ฒฝ์ฐ ์๋์ ๊ฐ์ด ์๋ฌ๋ฉ์ธ์ง ๋ธ.
validate์ ๋ฒ์๋ฅผ ๋ฃ์ด์ฃผ์ด ํด๋น ๋ฒ์ ๋ฉ์ธ์ง response๋ก ๋ฐ์ผ๋ฉด ์ค๋ฅ์ฌ๋ success๋ก ๋ค์ด์ค๊ณ ์นด์นด์ค๊ฐ ๋ณด๋ธ ์๋ฌ ๋ฉ์์ง ์์์์
reponse ์ํ ์ฝ๋ ๋ณด๋ ๋ฒ
status code์ ๋ฐ๋ผ ์์ธ์ฒ๋ฆฌํ๊ธฐ
์ฐ์ฐ ํ๋กํผํฐ๋ก description ๋ง๋ค๊ธฐ
์๋ก์ด ํค์๋ ๊ฒ์ํ ๋๋ง๋ค ๊ฒ์ ๊ฒฐ๊ณผ ์ ์ฅํด ๋ videoList ๋น์์ค์ผ ํจ
ํ์ด์ง๋ค์ด์
size:ํ ํ์ด์ง์์ ๋ฐ์์ฌ ๊ฐ์
page: ๋ช๋ฒ์งธ ํ์ด์ง
page ๋งค๊ฐ๋ณ์๋ก ๋ฐ์ ์์ฒญํ๊ธฐ
์คํฌ๋กค ๋ด๋ฆฌ๋ฉด์ ๋ฏธ๋ฆฌ ์๋ฒ ์์ฒญํ๊ธฐ
:์คํฌ๋กค ๋ด๋ฆด๋ ์๋ฅธ ๊ฐ์ค์ ๋๊ฐ ์ ๋ ๋จ์์ ๋ ์ ๋ ์๋ฒ ์์ฒญ
UITableViewDataSourcePrefetching
iOS10์ด์ ์ฌ์ฉ ๊ฐ๋ฅํ ํ๋กํ ์ฝ, cellForRowAt ๋ฉ์๋๊ฐ ํธ์ถ๋๊ธฐ ์ ์ ํธ์ถ ๋จ.
cellForRowAt → ์ ์ด ๋์ ๋ณด์ผ ๋ ์คํ ๋จ(๋ณ์ฌ์ง๊ฐ์ด ์ฉ๋ํฐ ์ฌ์ง ๊ทธ ๋ ํธ์ถ ํ๋ฉด ๋ฆ์.)
prefetch → ํธ์ถ ์ ์๋ฏธ๋ฆฌ ๋ค์ด๋ก๋
์ ์ด ํ๋ฉด์ ๋ณด์ด๊ธฐ ์ง์ ์ ํ์ํ ๋ฆฌ์์ค๋ฅผ ๋ฏธ๋ฆฌ ๋ค์ด ๋ฐ๋ ์ฝ๋
videoList๋ indexPath.row ์์น๋ฅผ ๋น๊ตํด ๋ง์ง๋ง ์คํฌ๋กค ์์ ์ ํ์ธ → ๋คํธ์ํฌ ์์ฒญ ์๋
์๋ก์ด ๊ฒ์์ด์ผ๋ ํ์ด์ง ์ด๊ธฐํ
kakao๋ ํ์ด์ง 15๊น์ง๋ง ์ ๊ณต
Q: page ๋ง์ง๋ง์ธ์ง๋ isEnd ๋๋ค ์ฒดํฌํด์ค์ผ ํ๋ ์ด์
→ api๋ง๋ค ๋ฌ๋ผ์ ์ฒ๋ฆฌํด์ค์ผํจ. ๋ง์ง๋ง ํ์ด์ง์ฌ๋ isEnd๋ true๊ฐ ์๋ false๋ก ์ค ์๋ ์์
ํ์ด์ง๋ค์ด์ ๋ฐฉ์
offSetBased: ์๋ฒ์ ์ค๋ณต๋ฐ์ดํฐ๊ฐ ์ ์๊ฒฝ์ฐ ๊ทธ๋๋ก ๋ณด์ฌ์ฃผ๋ ๊ฒ.
๋ช๋ฒ์งธ ํ์ด์ง์ ๋ช๋ฒ์งธ ๋ฐ์ดํฐ
cursor:์ค๋ณต๋์ง ์๋ ๊ณณ์ผ๋ก ์ปค์ ์ฎ๊ฒจ์ ๋ณด์ฌ์ค. ๋๋ฝ๊ฐ๋ฅ์ฑ์์
ios์์ ํ ์ด๋ทฐ ์ ๋ฐ์ดํฐ ๋ฏธ๋ฆฌ ์ค๋น ํ๋ ๋ฐฉ๋ฒ
- prefetching
- tableview willDisplayCell
- ์ ์ด ํ์๋๊ธฐ ์ง์ ์ ํธ์ถ. ์์ ์ ๋ง์ด ์.
- ์ ์ด ์๋ณด์ด๋๋ฐ ํธ์ถ, ํ์์๋ ์์ฒญ๋ค์ด ๋ค์ด๊ฐ. ๋ง์ง๋ง ์คํฌ๋กค ์์ ์ก๊ธฐ๊ฐ 1๋ฒ๋ณด๋ค ์ด๋ ค์. → prefetching ์ฐ๋๊ฒ ๋์.
- ScrollView offset
- scrollview content size height = ๊ธธ๋ค๋ ์ด ์ ์ฒด ์คํฌ๋กค๋ทฐ ํฌ๊ธฐ
- scrolllview.contentoffset.y : ์คํฌ๋กค๋ทฐ์์ ๋์ ๋ณด์ฌ์ง๋ ๊ธฐ๊ธฐ์ ๊ฐ์ฅ ๋ฐ๋ถ๋ถ ์์น ์๋ฏธ
- ์ด ๋๊ฐ์ด ๊ฐ์์ง๋ฉด ๋์ด์ ์คํฌ๋กคํ๊ธฐ ์ด๋ ค์ด ์ํฉ์ด๋ผ๊ณ ๊ฐ์ง .
์ด๋ฏธ์ง ๋ถ๋ฌ์ค๊ธฐ
Kingfisher ์ด์ฉํด์ ์ด๋ฏธ์ง ๋ถ๋ฌ์ค๊ธฐ
'SeSAC' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[iOS] TIL_20230811 (0) | 2023.08.15 |
---|---|
[iOS] TIL_230810 (0) | 2023.08.14 |
[iOS] TIL_230808 (0) | 2023.08.09 |
[iOS] TIL_230807 (0) | 2023.08.09 |
[iOS] TIL_230804 (0) | 2023.08.06 |