(240602) Medium Daily Digest

Godomin·2024년 6월 2일

Medium-Daily-Digest

목록 보기
12/24

Start Using Kotlin Serialization as a Retrofit Converter

https://medium.com/@a.shariat.b/start-using-kotlin-serialization-as-a-retrofit-converter-bbfe86eefa61

KMP를 사용한다면 retrofit을 사용할 때 kotlin을 지원하는 kotlin serialization을 사용할 수 있다.

implementation 'com.squareup.retrofit2:converter-kotlinx-serialization:latest.version'

기존 data class는 다음과 같이 변경한다.

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class UserNetworkModel(
    @SerialName("userId") val userId: Int? = null,
    @SerialName("id") val id: Int? = null,
    @SerialName("title") val title: String? = null,
    @SerialName("body") val body: String? = null
)

모델에 Date가 있는 경우 Instant를 사용하거나 custom serializer를 사용해야 한다.

Optimizing Lazy List in Jetpack Compose: Best Practices

https://medium.com/@vivekbansal19/optimizing-lazy-list-in-jetpack-compose-best-practices-8da06a5dd472

  1. Recomposition을 skip 하기 위해 immutable 객체 사용 (@Stable 가능)
  2. key를 사용해서 필요한 경우에만 recomposition을 하도록 함
  3. 비용이 많이 드는 계산은 remember을 사용
  4. 애니메이션 중 recomposition 제한을 위해 derivedStateOf 사용
  5. 효율적인 이미지 로드를 위해 Coil이나 Glide 등의 라이브러리 사용(이미지 캐싱)
  6. 중첩 list 피하기(items 빌더를 사용해 flatten)
  7. Pagination을 사용해 필요한 만큼의 데이터만 가져옴

0개의 댓글