최적화 3

Coil 인터셉터를 활용한 이미지 로딩 최적화 방법

Coil의 이미지 파이프라인은 아래 5가지의 메인 파트로 이루어져 있는데, Interceptor는 그 중 첫번째로 실행되는 녀석이다. Interceptor -> Mapper > Keyer -> Fetcher -> Decoder 커스텀 Interceptor를 이용하면 일종의 캐시 레이어(Cache Layer)를 만들 수 있다. 요청을 가로채서 요청 파라미터를 수정하거나...HTTP Request를 했지만 휴대폰 내에 파일이 있다면 File로 돌려버리거나 말이다. 또, 앱에서 정의한 커스텀 스키마로 이미지를 불러오는 것도 가능해진다. 어찌되었건 지금 간단히 예시로 볼 것은 Unsplash 이미지를 불러올때 이미지 사이즈를 최적화 시켜주는 Interceptor다. (Github에 많이 떠돌아다니는 코드다 ㅋㅋ..

마인크래프트 앱 개발기 7편 "앱 레이아웃 정리!"

안드로이드 앱 성능에 관한 강의를 듣고, 마인크래프트 조합 가이드 앱을 최적화 시키기 시작했다.프로그래밍적인 부분 보다는 디자인적인 부분만 일단 살펴보고 레이아웃 정리에 들어갔다.깔끔하게 짠건 최근에 만든 부분이었고 옛날에 만든건 LinearLayout > LinearLayout > RelativeLayout > LinearLayout 이딴식(?)으로마구마구 뷰가 엉켜있었다. 메인화면 부터 말이다...디자인 타협이 살짝 들어간 부분도 있으나 수정 전 뷰를 그리는 시간이 25ms 였다면 수정 후 15ms 정도로 줄여 뿌듯하다!레이아웃 드로잉에 걸리는 시간 측정은 Hierarchy Viewer를 통해 할 수 있다.

안드로이드 앱 성능을 최적화 하는 방법 - (1) Render

다음은 Udacity의 Android Performance 강의를 듣고 정리한 내용이다.안드로이드 앱 성능은 가장 중요하다! 유저들은 앱이 느리거나 1초라도 버벅되면 당장 앱을 삭제할 수도 있다.그건 그 사람들의 인내심이 없기 때문이아니라 앱을 애초에 잘못만든 탓이다.나는 내 앱의 성능을 최적화하고 유저들에게 원활한 사용 경험을 제공하기 위해 강의를 수강했다. 첫번째 섹션은 Render 부분이다.안드로이드 기기의 CPU는 그려야 할 것들을 GPU로 보내GPU에게 이러 이러한 것들을 그리라고 명령한다.GPU는 drawable에 있는 파일들을 래스터화 시켜 그림을 그린다. Overdraw이럴때 발생할 수 있는 성능 낭비는 Overdraw가 있다.글자 그대로, 과잉으로 그림을 그린 것이다.태극기의 태극 문양을..