도리안의 2025년 개발기 #163 - 다운로드 관련 오류 거의 다 해결 (안드로이드)
다운로드 관련 오류 거의 다 해결 (안드로이드)
No. 163
2025. 09. 23 (화) | Written by @dorian-dev
오늘의 개발기
지난 주 금요일부터 시작된 다운로드 관련 버그 해결. 어제 문제 해결이 보였고 오늘은 거의다 해결했다. 내일이면 마무리 가능하다. 지금까지 작업 내용을 다음과 같이 정리한다.
이슈 제목
다운로드 중 화면에서 다운로드 항목의 우측 버튼 클릭시 크래쉬 발생
재현 방법
- 다운로드 항목의 우측 버튼(중지/재개)을 반복해서 누르면 크래쉬 발생
- 크래쉬 발생 후, 동일 화면에서 동일 버튼 누르면 또 크래쉬 발생
중간 결정
- 다운로드 현황이 업데이트 되지 않는 버그부터 먼저 해결하기로 함
- 다운로드가 진행 중인지 사용자가 알기 어려워 버튼을 계속 누르는 상황이 발생하기 때문
다운로드 현황 업데이트 되지 않는 버그
- 원인
- 상태 관리하는 다운로드 리스트의 항목들 자체는 유지되기 때문
- 리스트 항목의 내용의 업데이트는 Jetpack Compose가 상태 변경으로 인식하지 않음
- 완료된 다운로드 항목은 화면에서 사라짐 (리스트 개수 변경은 Jetpack Compose가 상태 변경으로 인식)
- 상태 관리하는 다운로드 리스트의 항목들 자체는 유지되기 때문
- 해결 방법
- 다운로드 항목이 업데이트될 때 리스트 자체를 복사해 새로 구성하도록 변경
- 적용 후, 실시간으로 다운로드 현황이 정상적으로 업데이트되는 것을 확인
추가 발견 이슈 - 앱 재시작 후, 다운로드 화면에서 항목의 우측 재개 버튼을 누르면 크래쉬 발생
- 원인
- LectureRepositoryImpl 클래스의 user_id 필드가 빈 값이었음
- 해결
- DownloadingViewModel 클래스의 init 함수 안에서 user_id 초기화 코드 작성
- 이미 LectureRepositoryImpl 클래스에 이를 초기화 하는 함수가 구현되어 있었음
- DownloadingViewModel 클래스의 init 함수 안에서 user_id 초기화 코드 작성
남은 문제
- 앱 재시작 -> 다운로드 화면 이동 -> 항목의 값이 기본 값 (다운로드 하려면 버튼을 눌러주세요)
- 어렵지 않을 것으로 예상
이번 이슈는 여러 서브 이슈들이 복합적으로 얽혀 있어 간단치 않았다. 남은 문제가 하나 있지만, 오늘이 가장 어려운 하루였다. 가장 큰 고비를 넘어서 퇴근길이 매우 가볍다. 내일 오전에 이 문제도 마저 해결할 예정이다.
지난 2025년 개발기
- #162 - 다운로드 관련 오류 해결 중 (안드로이드)
- #161 - 다운로드 화면 업데이트는 왜 안 되는 걸까? (안드로이드)
- #160 - API를 기다리지 않고 먼저 화면 개발을 한 것은 이번 직장에서 사실상 처음
- #159 - 오늘 손코딩 하면서 느낀 점
- #158 - 당분간 신규 화면의 프리뷰 구현 예정
- #157 - 안드로이드에서 추가 요구 사항: 16KB 페이지 크기 지원
- #156 - 추가 요구사항이 나왔다
- #155 - 프리뷰의 화면이 실제 기기의 그것과 다르게 나오기도...
- #154 - 수면 부족으로 인한 컨디션 저하
- #153 - 홈 전용 API 적용시 발생할 수 있는 문제점
- #152 - 홈 화면 전용 API를 만드는 게 좋을까?
- #151 - 이해한줄 알았지만 잠시 잊어먹은 Hilt
- #1 ~ #150
Layout provided by Steemit Enhancer hommage by ayogom
Posted through the ECblog app (https://blog.etain.club)
안녕하세요.
SteemitKorea팀에서 제공하는 'steemit-enhancer'를 사용해 주셔서 감사합니다. 개선 사항이 있으면 언제나 저에게 연락을 주시면 되고, 관심이 있으신 분들은 https://cafe.naver.com/steemitkorea/425 에서 받아보실 수 있습니다. 사용시 @응원해 가 포함이 되며, 악용시에는 모든 서비스에서 제외될 수 있음을 알려드립니다.
안녕하세요.
이 글은 SteemitKorea팀(@ayogom)님께서 저자이신 @dorian-dev님을 응원하는 글입니다.
소정의 보팅을 해드렸습니다 ^^ 항상 좋은글 부탁드립니다
SteemitKorea팀에서는 보다 즐거운 steemit 생활을 위해 노력하고 있습니다.
이 글은 다음날 다시 한번 포스팅을 통해 소개 될 예정입니다. 감사합니다!
Upvoted! Thank you for supporting witness @jswit.