본문 바로가기

Projects/FineByMe4

[Android/Kotlin] StaggeredGridLayout 사용시 발생한 화면 재구성문제 수정 최근에 StaggeredGridLayoutManager를 사용한 즐겨찾기 화면에서 다음과 같은 문제가 발생했습니다:즐겨찾기 화면에서 첫 번째 사진을 클릭하여 상세 보기로 이동사진 상세 화면에서 즐겨찾기를 해제뒤로 가기를 눌러 다시 즐겨찾기 화면으로 돌아오면 빈 화면이 보여짐이 문제는 StaggeredGridLayoutManager에서 아이템을 재배치하는 과정에서 발생했습니다. 아이템들을 제대로 불러오지 못하고 화면을 재구성하는 데 실패하여 빈 화면을 보여주게 된 것입니다.이 문제를 해결하기 위해 RecyclerView의 상태를 복원하는 방법을 적용했습니다. 이를 통해 화면이 빈 화면으로 나타나는 현상을 해결할 수 있었습니다. 다음은 해결 방법입니다.해결 방법: RecyclerView 상태 복원Recycl.. 2024. 7. 29.
[Android/Kotlin]FineByMe 프로젝트 리팩토링: RecyclerView.Adapter에서 ListAdapter로의 전환 최근 FineByMe 프로젝트를 리팩토링하면서, RecyclerView.Adapter에서 ListAdapter로 전환하는 과정에서 많은 것을 배웠습니다. 이 글에서는 그 과정을 공유하고, ListAdapter가 왜 더 효율적인지 설명하고자 합니다.RecyclerView.Adapter에서 DiffUtil을 사용한 구현기존에 RecyclerView.Adapter를 사용할 때, DiffUtil을 사용하여 데이터 변경 사항을 처리하기 위해 추가적인 코드를 작성해야 했습니다. 아래는 그 예시입니다.class PhotoAdapter(private val viewModel: BaseViewModel) : RecyclerView.Adapter() { private var photoList: List = li.. 2024. 7. 10.
[Android/Kotlin] Retrofit 에러 처리 방법: HttpException을 활용한 상태 코드별 에러 메시지 처리 최근 프로젝트에서 Unsplash API를 사용하면서 발생한 에러를 상태 코드별로 처리하는 방법을 공유하고자 합니다. 이 과정에서 Retrofit을 활용하여 서버 응답을 효율적으로 처리할 수 있는 방법을 알게 되었습니다. 특히, HttpException을 활용하여 상태 코드별로 에러 메시지를 처리하는 방법에 대해 자세히 설명드리겠습니다.문제 상황처음에는 Unsplash API를 호출할 때 잘못된 API 키를 사용하여 401 Unauthorized 에러를 발생시키고 이를 처리하고자 했습니다. 하지만 예상과 달리 onFailure 콜백이 호출되지 않았습니다. 이에 대해 원인을 분석하고 해결하는 과정을 통해 Retrofit의 에러 처리 방식을 이해하게 되었습니다.기존 코드먼저, 기존에 사용하던 NetworkU.. 2024. 7. 8.
[Android/Kotlin] 안드로이드에서 Fragment 전환 시 비동기 처리 문제 해결: OnBackStackChangedListener 사용법 안드로이드 앱 개발에서 Fragment 전환 시 발생하는 비동기 처리 문제를 해결하기 위해 FragmentManager.OnBackStackChangedListener를 사용하는 방법을 소개합니다. 이 글에서는 supportFragmentManager.popBackStack()의 비동기적 특성으로 인해 현재 Fragment를 정확하게 가져오지 못하는 문제를 해결하는 과정을 설명합니다.1. 서론안드로이드 앱 개발 시, 뒤로가기 버튼을 커스터마이징하여 사용자의 편의성을 높이고자 할 때가 있습니다. 특히 Fragment 전환 시 발생하는 비동기 처리 문제를 해결하는 것이 중요합니다. 이번 글에서는 이러한 문제를 해결하기 위해 FragmentManager.OnBackStackChangedListener를 어떻게.. 2024. 6. 27.