선생님, 개발을 잘하고 싶어요.

recycler view 작업 순서 정리 본문

개발/android 개발

recycler view 작업 순서 정리

알고싶은 승민 2019. 9. 14. 02:57

도입

  안드로이드 프로그래밍은 매우 번거로운 일들의 모음이다. 이를 단축하기 위해 여러 가지 라이브러리를 사용하고, 안드로이드 스튜디오의 도움을 받고, 코틀린을 이용해 언어적 지원도 서슴없이 받고 있지만, 여전히 번거롭다.

 

  프로그램 개발에서 리스트의 중요성은 말 안해도 아실 것이다. 프로그램 자체가 데이터를 정리해서 보여주는 것이고, 많은 데이터를 하나의 아이템으로 사용자에게 전달할 때 리스트 만 한 것이 없다. 실제로 유튜브의 무한대에 가까운 동영상은 리스트 형태로 사용자에게 보이고, 인스타그램, 페이스북 그리고 트위터의 피드, 카카오톡의 친구 목록, 카톡방들도 생각해보면 똑같은 형태의 리스트로 구성되어 있다.

 

  그만큼 우리가 어플리케이션을 개발할 때 리스트는 자주 작업하게 되는 것이다. 하지만 서두에도 말했듯 안드로이드에서는 꽤나 번거롭게 리스트를 생성해야 한다. 오늘은 그 방법 중 RecyclerView에 대한 이야기이다. 그리고 기본적인 작업 순서를 정리했다. 

 

구성 요소

  지피지기면 백전백승이다. 왜? 이런 작업 순서로 작업을 해야하는지 알아보기 전에, 우리가 사용자에게 RecylcerView를 보여주기 위해 어떤 것들이 필요한지 정리해보자.

  • 아이템 하나의 UI
  • 아이템 데이터 클래스
  • 리스트 아이템의 ViewHolder
  • 리스트의 Adapter
  • 아이템들의 UI
  • 리스트를 배치할 위치

아이템 하나의 UI

  디자이너에게 전달 받은 리스트를 보면 같은 cell이 반복되는 것을 볼 수 있다. 안드로이드에서는 이러한 cell 하나의 디자인을 layout 파일로 만들어야 한다.

 

  안드로이드에서는 layout 파일로 표현이 된다.

유튜브 피드 디자인이다. 총 3개의 cell로 구성되어 있는 듯 하다.

아이템 데이터 클래스

  cell을 보면 핵심 데이터가 무엇인지 알 수 있다. 유튜브 피드를 예시로 들어보자.

  • 썸네일 이미지 링크
  • 동영상 시간
  • 동영상 제목
  • 동영상 업로더
  • 조회수
  • 업로드 시간
  • 상세 정보

  cell을 그리기 위해 디자이너와 얘기를 하면 어떤 데이터들이 필요할지 조금씩 설계를 할 수 있다.

 

  Kotlin의 data class를 이용해서 표현한다.

 

리스트 아이템의 ViewHolder

  cell하나의 View들을 직접 관리할 클래스를 만들어주어야 한다. 

 

  안드로이드에서는 RecyclerView.ViewHolder로 표현된다.

 

리스트 Adapter

  리스트 전체와 cell을 실제로 그리고 데이터를 cell에 전달해주는 역할을 하는 Adapter를 설계해야 한다.

 

  안드로이드에서는 RecyclerView.Adapter로 표현된다.

 

아이템들의 UI

  cell들이 어떤 형태로 놓여있는지 확인한다. 위의 예에서는 일자로 쭉 늘어져 있다.

 

  안드로이드에서는 LayoutManager로 표현된다.  

 

리스트를 배치할 위치

  실제 리스트가 어디에 위치해야 하는지 자리를 지정해야 한다.

 

작업 순서

  1. cell 한 개의 UI 확인 하기

  2. cell 한개의 layout 파일 만들기 (list_item_youtube.xml)

  3. cell 한 개에 필요한 data class 만들기 (YoutubeListItem.kt)

  4. layout 파일에 대한 ViewHolder 만들기 (YoutubeViewHolder.kt)

  5. list에 대한 adapter 만들기 (YoutubeAdapter.kt)

  6. 리스트를 배치할 layout에 RecylcerView 배치하기

  7. 6에서 배치한 recyclerView에 adapter 연결 하기

  8. cell들 사이의 관계를 고려해 layout manager 연결 하기

  9. adapter에 데이터 갱신하기

결론

  처음 RecyclerView를 만들 때 내가 지금 뭘 빠뜨리지 않았는지, 지금 잘 만들고 있는지, 어느 정도 진행된 건지 감을 잃을 때가 있는데, 이때 사전에 작성해둔 작업 순서를 세기고 작업하면 쉽진 않지만 빼먹는 것 없이 리스트 개발을 수행할 수 있을 것이다.

 

Comments