android

드로이드 나이츠 2021 보고 인상 깊었던 세션 #1

sieunju 2021. 10. 23. 11:20
반응형

https://sites.google.com/view/dk21/

 

Droid Knights 2021

드로이드나이츠는 기술 세션으로 개발자들의 경험을 공유하는 안드로이드 컨퍼런스 입니다. 2021.09.25(토) 13시 온라인 스트리밍으로 진행 예정입니다.

sites.google.com

작년 말부터 개발 안목을 넓히고자 안드로이드 개발자 컨퍼런스인 드로이드 나이츠를 보고 싶다는 생각이 들었습니다.

티켓을 구입후 라이브로 세션들을 이리저리 왔다 갔다 하면서 봤습니다.

진짜 티켓을 구입한 만원이 전~~혀 아깝지 않았고, 정말 유익한 정보였습니다.(나중에 유튜브 동영상으로 풀렸지만,,)

 

서론이 길었다 각설하고 드로이드 나이츠를 보면서 가장 인상 깊었고 한번 만들어 보고 싶었던 세션들을 차례대로 소개하도록 하겠습니다.

복잡한 RecyclerView, 군더더기 없이 데이터로 표현하기

https://www.youtube.com/watch?v=mqY3GWid7ug

(만약 저작권 따지면 바로 내리겠습니다.!)

보통 안드로이드 개발할때 RecyclerView를 아주 많이 사용합니다... 심지어 ViewPager2 도 RecyclerView 기반이라는 사실..

그래서 안드로이드 개발자는 RecyclerView 와 아주 친합니다.. RecyclerView를 만들게 되면 Adapter 클래스도 필요하게 되는데 

Adpater를 만들고 그에 맞는 ViewHolder를 만들고..어디엔가 ViewType 지정하고..그러다 보면 아래 그림과 같이 됩니다.

물론 현업에서는 이런식으로 하지는 않을것이다..

 

솔직히 저렇게 만들면 유지보수하기 빡쎈 구조가 됩니다.. 

분명 저기 있는 Adapter 중에 ViewHolder 레이아웃을 재사용하는 것들이 있음에도 불구하고 Adapter 들을 새로 생성하고 ViewHolder 또한 새로 생성하는 불필요한 과정을 개발하게 됩니다..

 

하지만 드로이드 나이츠에서 설명한 세션은 정말 좋은 방법을 제시했다.

 

제가 이 세션을 보고 나서 이해한 것으로는 Adapter 클래스를 하나로 두고 ViewHolder와 ViewType을 외부에서 관리하면서 데이터 추가, 갱신 처리를 ViewModel에서 간단하게 할 수 있는 방법을 제시했습니다.

WOW....

솔직히 ViewHolder와 ViewType을 외부에서 관리하고 뭐 onCreateView..onBindView.. 여기까지는 제가 안 해본 건 아닙니다. 하지만.. 데이터 추가 및 갱신 처리.. 이거는 어차피 DiffUtil API를 사용하니까 해당 Adapter 가 바라보고 있는 데이터를 clear 하고 다시 addAll 시키면 되는 문제라 그렇게 신경을 쓰지는 않았습니다.  하지만 이 부분과 ViewHolder 관리에 대해서 고민을 정말 많이 했구나..라는걸 느끼게 됐습니다....

그래서 저도 제가 현재 사용하고 있는 설계 방식을 좀 바꿔야겠다는 생각이 들었습니다.. 우선 제가 사용하고 있는 방식은

대충 이런 방식..

페이징 처리하는 Adapter와 페이징 처리를 안 하는 Adapter 이렇게 2벌 분리하고 ViewType 관련 EnumClass 에는 레이아웃 아이디 및 필요한 정보들이 저장되어 있는 구조로 되어있습니다..

제가 사용하는 방법도 나쁘진(?) 않지만.. 위에서 말한 세션을 보고 나서 다시 보니 정말 구데기 방법이었다는 걸 깨닫게 된 계기가 되었습니다. ㅠㅠ

만약에 좀 더 나은 방법으로 바뀌게 된다면 여기에 포스팅을 해보도록 하겠습니다.

 

다시 한번 말하지만 정말 유익한 정보였고 개발자로서 아주 좋은 경험이었습니다.

반응형