팀(Tim)
개발자의 글쓰기
팀(Tim)
전체 방문자
오늘
어제
  • 분류 전체보기 (49)
    • 알고리즘 (2)
    • 개발전반 (1)
    • 안드로이드 앱개발 (25)
    • 코틀린 (1)
    • C++ (11)
    • Unity (0)
    • 공지사항 (4)
    • WebGL (0)
    • Flutter (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • d

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
팀(Tim)

개발자의 글쓰기

라이브러리는 이해하고 사용하자.
안드로이드 앱개발

라이브러리는 이해하고 사용하자.

2020. 10. 27. 01:27

 

틴더처럼 스와이프로 게시물을 탐색하는 앱을 만들고있다.

이는 swipeCardView라는 어댑터뷰를 통해 구현되고, 그 어댑터뷰에 연결할 어댑터는 ArrayAdapter를 상속받는다.

그렇게 잘 개발하다가 스와이프시에 카드뷰를 생성하는데 버벅거리는 이슈가 발생했다.

처음에는 카드에 들어갈 사진을 서버로 http요청하는게 잦아서 그런 줄 알고, 한번 요청할때 좀더 많은양의 데이터를 받아놓는 방식으로 최적화했는데 그래도 여전히 이슈가 해결되지 않았다.

그래서 나는 호출스택을 타고들어갔다.

그리고 라이브러리의 어댑터뷰가 ArrayAdapter의 getView의 convertView를 아예 null로 하드코딩해서 넣고있는걸 발견했다.

도대체 왜 이렇게 만들었는지 모르겠다.

 

이말은 어댑터의 최대이점인 ‘뷰를 재활용한다' 라는 기능을 아예 못하고 있는 것이였다.

 

이걸 못한다.

 

 

아무튼 나는 라이브러리를 바꿨다. 전의 건 오래된 라이브러리인 탓인지 RecyclerAdapter와 호환이 안됬었지만 새로 바꾼 라이브러리는 가능했다. 적용을 하고 나니 스와이프가 아주 부드러웠다.

View를 infalte하고 findviewById로 View를 찾는게 내 생각보다 비용이 많이드는 작업이였나보다.

이번 이슈로 얻은 교훈은 라이브러리는 그냥 쓰는 것이 아니라 어느정도 이해를 바탕으로 사용해야 한다는 것이다. 

'안드로이드 앱개발' 카테고리의 다른 글

파일입출력2 : 저장소 (Android Studio Internal/External Storage)  (0) 2020.10.27
파일입출력 1 : 쓰고 읽기 (File I/O in Kotlin)  (0) 2020.10.27
AdMob nativeAd 를 RecyclerView를 활용해 표시하기 (nativeAd with RecyclerView)  (0) 2020.10.27
volley로 이미지 업로드 (volley multipart request)  (0) 2020.10.27
액티비티(Activity)와 인텐트(Intent)  (0) 2020.10.27
    '안드로이드 앱개발' 카테고리의 다른 글
    • 파일입출력 1 : 쓰고 읽기 (File I/O in Kotlin)
    • AdMob nativeAd 를 RecyclerView를 활용해 표시하기 (nativeAd with RecyclerView)
    • volley로 이미지 업로드 (volley multipart request)
    • 액티비티(Activity)와 인텐트(Intent)
    팀(Tim)
    팀(Tim)

    티스토리툴바