일일 회고
바쁘다 바빠
오늘의 키워드
- 트러블 슈팅
원인
공공 데이터 api에서 가져온 image url의 로딩 속도가 너무 느림
실험 - LTE 기준 약 4분
+추가 - 다른 이미지도 로딩 속도가 낮에 비해 굉장히 느려졌음 (작성 시각 오전 12:30)
인터넷 문제였던 것으로 판단, 하지만 그래도 사용자 관점에서 보았을 떄,이미지가 로딩 되는 속도가 느렸음
해결 과정
캐싱이란?
캐싱은 파일 사본을 캐시 혹은 임시 저장소에 저장해서, 보다 빠르게 접근할 수 있도록 하는 하나의 프로세스
파일 또는 데이터 사본을 임시 저장하는 위치를 범용적으로 캐시라고 부름
사용하고 있는 이미지 라이브러리인 Coil의 Caching을 적용
class App : Application() {
override fun onCreate() {
imageLoader = ImageLoader.Builder(baseContext)
.memoryCache {
MemoryCache.Builder(baseContext)
.maxSizePercent(0.25)
.build()
}
.diskCache {
DiskCache.Builder()
.directory(baseContext.cacheDir.resolve("image_cache"))
.maxSizePercent(0.02)
.build()
}
.build()
super.onCreate()
}
companion object {
lateinit var imageLoader: ImageLoader
}
}
itemMainImageView.load(model.imageUrl, App.imageLoader) {
memoryCachePolicy(CachePolicy.ENABLED)
diskCachePolicy(CachePolicy.ENABLED)
}
앱 전역에서 이미지를 사용하기 떄문에 Application()단에서 이미지 캐싱 빌더가 포함된 ImageLoader를 만들어준다.
이 ImageLoader를 캐싱이 필요한 ImageView에 넣어줌으로써 이미지 캐싱을 해 볼 수 있다.
참고자료
'내일배움캠프 7기 > TIL' 카테고리의 다른 글
내일배움캠프 7기 Android TIL 62일차 (2023.10.23) (1) | 2023.10.23 |
---|---|
내일배움캠프 7기 Android TIL 61일차 (2023.10.20) (0) | 2023.10.20 |
내일배움캠프 7기 Android TIL 59일차 (2023.10.18) (1) | 2023.10.18 |
내일배움캠프 7기 Android TIL 58일차 (2023.10.16) (1) | 2023.10.16 |
내일배움캠프 7기 Android TIL 57일차 (2023.10.06) (0) | 2023.10.06 |