Closed jung0115 closed 3 weeks ago
현재페이지/전체페이지
ViewPager2
HomeBannerViewPagerAdapter.kt
nt.MAX_VALUE
timer
HomeFragment
HomeBannerDetailFragment
HomeViewModel
selectBannerId
BitmapFactory
ImageLoader.kt
ImageRepository.kt
ImageRepositoryImpl.kt
LoadImageUseCase.kt
HomeBannerItemVO
Bitmap
HomeBannerAllFragment
ViewModel
구현내용
1. 홈 > 배너
현재페이지/전체페이지
표시2. 배너 구현 내용
ViewPager2
사용HomeBannerViewPagerAdapter.kt
nt.MAX_VALUE
로 잡고, 실제 데이터 수로 나눈 나머지를 index로 설정timer
로 3초마다 자동 전환 + 사용자가 수동 전환한 경우 전환 시점부터 3초를 다시 카운트3. API
4. 배너 선택 시, 세부 페이지 이동
HomeFragment
와HomeBannerDetailFragment
가 둘다HomeViewModel
과 연결되고HomeFragment
에서HomeViewModel
의selectBannerId
(LiveData)를 세팅HomeBannerDetailFragment
로 이동 시,HomeViewModel
에서selectBannerId
가져와서고민사항
1. 배너 무한 반복
2. 이미지 Load
BitmapFactory
로 이미지를 로드하는 코드를 구현했습니다.ImageLoader.kt
,ImageRepository.kt
,ImageRepositoryImpl.kt
,LoadImageUseCase.kt
HomeBannerItemVO
에서는Bitmap
이 아닌 ImageUrl 정보를 가지고 있고,Bitmap
과 id 정보를 포함한 data class를 따로 정의해야 할지, 그렇다면 data class는 어떤 모듈에 위치해야 할지 고민입니다. 또는 이미지 로더 라이브러리를 쓰는 게 오히려 나은 것인지도 고민이 됩니다.3. 하나의 ViewModel
HomeFragment
,HomeBannerDetailFragment
,HomeBannerAllFragment
가HomeViewModel
하나를 공유하고 있는데,ViewModel
을 만들어서 Fragment마다 필요한 ViewModel과 연결하는 게 나을지 고민입니다4. 같은 데이터 재활용
HomeFragment
에서 보이는 배너 데이터와HomeBannerAllFragment
가 같은 내용이라서기타
배너에서 + 버튼 선택 시, 배너 리스트 전체가 나오는 기능은 아직 구현 중이라 해당 PR에는 포함되지 않았습니다-> 추가했습니다