안드로이드 썸네일형 리스트형 [안드로이드] RxJava3CallAdapterFactory 이번 포스팅에서는 RxJava3CallAdapterFactory에 대한 내용을 알아보고자 한다. 안드로이드에서 Http 통신을 할 때 대부분 Retrofit 라이브러리를 사용한다. 만약 Retrofit과 Rxjava3를 함께 사용한다면 한 번쯤은 이런 에러를 경험했을 수 있다. 아래와 같이 Retrofit 인스턴스와 UserApi 인터페이스를 정의했다고 가정해 보자. val retrofit = Retrofit.Builder() .baseUrl("https://openapi/base") .addConverterFactory(GsonConverterFactory.create(gson)) .build() interface UserApi { @GET("api/v1/users") fun getUser(): Sin.. 더보기 [안드로이드] Retrofit 분석 안드로이드 개발에서 필수적으로 알아야 하는 Retrofit에 대해 알아보자. 우선 Retrofit이 무엇인지 알아야 한다. Retrofit은 OkHttp를 기반으로 한 type-safe 한 HTTP client 오픈소스 라이브러리이다. 쉽게 말해서 안드로이드에서 클라이언트와 서버 간 HTTP 통신을 쉽게 해주는 라이브러리라고 생각하면 될 것 같다. Retrofit 내부 코드에 나와있는 설명을 보면 아래와 같이 나와있다. Retrofit adapts a Java interface to HTTP calls by using annotations on the declared methods to define how requests are made. Create instances using the builder a.. 더보기 [Android] Fragment ViewBinding 사용 시 주의할 점 Fragment에서 ViewBinding을 사용할 시 주의할 점에 대해 알아보자. ViewBinding을 사용할 때 Activity와 Fragment에서 binding을 생성하는 코드를 작성해야 한다. 하지만 프로젝트의 크기가 커질수록 Activity와 Fragment의 수가 많아지면 바인딩에 대한 boilerplate 코드가 생길 수 있다. 그래서 Base 코드들을 작성해 ViewBinding에 대한 코드를 적어놓기도 한다. View Binding을 Activity에서 사용할 때 abstract class BaseActivity( @LayoutRes val layoutRes: Int ) : AppCompatActivity() { protected lateinit var binding: T overrid.. 더보기 [Android] Fragment Lifecycle Fragment의 Lifecycle에 대해 알아보자. 안드로이드 개발을 하면서 수많은 Fragment들을 사용하게 된다. Fragment들은 모두 각각의 lifecycle을 가지고 있다. Fragment 클래스를 보면 LifecyclerOwner 인터페이스를 구현하는 것을 알 수 있다. public interface LifecycleOwner { // return the lifecycle of the provider. @NonNull Lifecycle getLifecycle(); } Fragment에서는 getLifecycle 메서드를 통해 Lifecycle을 알 수 있다. Lifecycle의 상태는 아래와 같다. public enum State { // Destroyed state for a Lifec.. 더보기 [안드로이드] ListAdapter ListAdapter에 대해 알아보자. ListAdapter를 간단하게 이해한 바로는 Recyclerview를 사용하면서 데이터를 더 쉽고 효율적으로 관리할 수 있도록 구현된 Adapter이다. ListAdapter를 사용하게 된 배경은 크게 아래와 같다. 기본 RecyclerView.Adapter를 사용하면서 데이터를 변경하고 이를 알리기 위해 notify 함수들을 호출한다 효율적인 사용을 위해 현재 데이터와 새 데이터를 비교해서 필요한 데이터만 바꿔주는 RecyclerView.DiffUtil 클래스를 사용한다 DiffUtil 비교 연산을 background thread에서 실행하기 위해 AsyncListDiffer 클래스를 Adapter 내에 구현한다 AsyncListDiffer의 기능을 wrappi.. 더보기 이전 1 다음