일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ReactiveProgramming
- 자바
- 안드로이드강좌
- Compose
- Coroutine
- 병렬프로그래밍
- 안드로이드스튜디오
- 코틀린
- mockito
- 병럴프로그래밍
- k8s
- kotlin강좌
- 커스텀상태
- 스레드
- 디자인패턴
- viewmodel
- Kotlin
- 알게되는
- theming
- Gradle
- 책
- 안드로이드
- 테스트
- Rxjava
- 코루틴
- g 단위테스트
- 글또
- android
- 알고리즘
- 회고
- Today
- Total
선생님, 개발을 잘하고 싶어요.
recycler view 작업 순서 정리 본문
도입
안드로이드 프로그래밍은 매우 번거로운 일들의 모음이다. 이를 단축하기 위해 여러 가지 라이브러리를 사용하고, 안드로이드 스튜디오의 도움을 받고, 코틀린을 이용해 언어적 지원도 서슴없이 받고 있지만, 여전히 번거롭다.
프로그램 개발에서 리스트의 중요성은 말 안해도 아실 것이다. 프로그램 자체가 데이터를 정리해서 보여주는 것이고, 많은 데이터를 하나의 아이템으로 사용자에게 전달할 때 리스트 만 한 것이 없다. 실제로 유튜브의 무한대에 가까운 동영상은 리스트 형태로 사용자에게 보이고, 인스타그램, 페이스북 그리고 트위터의 피드, 카카오톡의 친구 목록, 카톡방들도 생각해보면 똑같은 형태의 리스트로 구성되어 있다.
그만큼 우리가 어플리케이션을 개발할 때 리스트는 자주 작업하게 되는 것이다. 하지만 서두에도 말했듯 안드로이드에서는 꽤나 번거롭게 리스트를 생성해야 한다. 오늘은 그 방법 중 RecyclerView에 대한 이야기이다. 그리고 기본적인 작업 순서를 정리했다.
구성 요소
지피지기면 백전백승이다. 왜? 이런 작업 순서로 작업을 해야하는지 알아보기 전에, 우리가 사용자에게 RecylcerView를 보여주기 위해 어떤 것들이 필요한지 정리해보자.
- 아이템 하나의 UI
- 아이템 데이터 클래스
- 리스트 아이템의 ViewHolder
- 리스트의 Adapter
- 아이템들의 UI
- 리스트를 배치할 위치
아이템 하나의 UI
디자이너에게 전달 받은 리스트를 보면 같은 cell이 반복되는 것을 볼 수 있다. 안드로이드에서는 이러한 cell 하나의 디자인을 layout 파일로 만들어야 한다.
안드로이드에서는 layout 파일로 표현이 된다.
아이템 데이터 클래스
cell을 보면 핵심 데이터가 무엇인지 알 수 있다. 유튜브 피드를 예시로 들어보자.
- 썸네일 이미지 링크
- 동영상 시간
- 동영상 제목
- 동영상 업로더
- 조회수
- 업로드 시간
- 상세 정보
cell을 그리기 위해 디자이너와 얘기를 하면 어떤 데이터들이 필요할지 조금씩 설계를 할 수 있다.
Kotlin의 data class를 이용해서 표현한다.
리스트 아이템의 ViewHolder
cell하나의 View들을 직접 관리할 클래스를 만들어주어야 한다.
안드로이드에서는 RecyclerView.ViewHolder로 표현된다.
리스트 Adapter
리스트 전체와 cell을 실제로 그리고 데이터를 cell에 전달해주는 역할을 하는 Adapter를 설계해야 한다.
안드로이드에서는 RecyclerView.Adapter로 표현된다.
아이템들의 UI
cell들이 어떤 형태로 놓여있는지 확인한다. 위의 예에서는 일자로 쭉 늘어져 있다.
안드로이드에서는 LayoutManager로 표현된다.
리스트를 배치할 위치
실제 리스트가 어디에 위치해야 하는지 자리를 지정해야 한다.
작업 순서
-
cell 한 개의 UI 확인 하기
-
cell 한개의 layout 파일 만들기 (list_item_youtube.xml)
-
cell 한 개에 필요한 data class 만들기 (YoutubeListItem.kt)
-
layout 파일에 대한 ViewHolder 만들기 (YoutubeViewHolder.kt)
-
list에 대한 adapter 만들기 (YoutubeAdapter.kt)
-
리스트를 배치할 layout에 RecylcerView 배치하기
-
6에서 배치한 recyclerView에 adapter 연결 하기
-
cell들 사이의 관계를 고려해 layout manager 연결 하기
-
adapter에 데이터 갱신하기
결론
처음 RecyclerView를 만들 때 내가 지금 뭘 빠뜨리지 않았는지, 지금 잘 만들고 있는지, 어느 정도 진행된 건지 감을 잃을 때가 있는데, 이때 사전에 작성해둔 작업 순서를 세기고 작업하면 쉽진 않지만 빼먹는 것 없이 리스트 개발을 수행할 수 있을 것이다.
'개발 > android 개발' 카테고리의 다른 글
[잡학] 액티비티 라이프 사이클, 프래그먼트 라이프 사이클 케이스 정리하기 (0) | 2020.03.08 |
---|---|
[안드로이드 잡학] Android ScrollView, ScrollTo 정복하기 + Custom Smooth Scroll (2) | 2020.01.14 |
[아틱 프로젝트] 안드로이드 PopupSystem 구축하기 (0) | 2019.08.13 |
[아틱 프로젝트] 스플래쉬 화면의 구현, rxjava, combineLatest (0) | 2019.08.05 |
내가 쓰는 Android Studio 단축키 (0) | 2019.08.05 |