안드로이드 리스트 데이터 처리,갱신
조회수 5821회
안드로이드에서 웹 서버와 통신하여 JSON형태로 받아와 RecyclerView를 통해
나타내고 있습니다.
데이터 몇 십건 정도는 딜레이없이 RecyclerView를 통해 나타납니다
그래서 몇백 몇천건 단위로 테스트를 해보았습니다.
통신은 Retrofit1.9를 사용하고 있고 로그를 찍어 확인해보니
JSON 데이터를 받아오는데는 딜레이가 없는데 받아온 후 화면에 띄우기까지
시간이 5초이상 걸립니다.
보통 서비스 중인 어플들은 데이터를 리스트에 뿌려줄때 어떤식으로 돌아가는지 궁금합니다.
일단 데이터를 다 받아온후 자료를 나눠서 갱신을 해주는건가요 ?
경험이 없어 어떤식으로 해결해야할지 잘 모르겠습니다.
예제나 키워드도 알려주시면 도움이 될 것 같습니다.
로직이 잘못된거라면 코드 첨부하겠습니다.
질문하면서 든 생각인데 일단 먼저 보여질 화면만 어댑터에서 갱신 한 후 나머지 데이터를 처리해야 할까요 ?
아래는 테스트 화면입니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
데이터의 개수가 많은 경우, 서버에서는 보통 페이지에 번호를 매겨서 특정 페이지의 데이터만 내리는 페이지네이션을 사용합니다. 해시코드 웹사이트에도 1, 2, 3, 5, 6... 처럼 게시글 목록 하단에 페이지 번호가 매겨져있는데요. 이 부분을 떠올리면 됩니다.
모바일도 동일한 기법을 사용하는데요. 모든 데이터를 한번에 내려받는 것이 아니고, 적절한 크기의(예: 30개) 데이터를 받아서 화면에 보여주는 방식입니다. 특이점은 모바일에서는 Infinite scrolling(Endless scrolling)이라고 하는 모바일에 최적화된 UX입니다. 스크롤이 페이지 하단에 도달하는 것을 감지해서 다음 페이지의 데이터를 받아오는 기법이고요. 트위터, 핀터레스트, 플레이스토어 등등 많은 앱들이 이러한 방식을 사용합니다. (아래 이미지 참고)
구현 방식에 대한 글을 비롯해서 관련 라이브러리도 많으니 어렵지 않에 구현하실 수 있을거에요.
- http://www.avocarrot.com/blog/implement-infinitely-scrolling-list-android/
- https://github.com/codepath/android_guides/wiki/Endless-Scrolling-with-AdapterViews-and-RecyclerView
- https://gist.github.com/polbins/b6830d392e5c687c8e77
- https://github.com/vinaysshenoy/mugen
- https://github.com/cymcsg/UltimateRecyclerView
- https://github.com/pwittchen/InfiniteScroll
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력