이용자가 로그인하면 응답받은 회원 정보로 계좌목록 조회해 주시고 각 계좌별 은행 서버에 잔액 조회해 주시고 대표계좌는 최근 일주일 거래내역 조회해 주시고 각 거래내역 별 ..... 위 상황은 물론 과장한 가상의 케이스이지만 API 요청에 대한 응답을 받은 후 다른 API 요청을 보내는 일은 실제로 빈번하다. 꼭 API 요청이 아니더라도 비동기적으로 처리하는 로직에 대해 종료시점 또는 응답값 반환시점에 필요한 행위를 하기 위해 Callback 을 많이 사용한다. Callback 위와 같은 상황을 해결하기 위해선(네트워크 요청이 비동기적이라는 가정 하에) 아래처럼 응답을 받은 후 호출할 함수를 인자로 넘겨주어 순차적으로 호출되도록 만든다. fun main() { foo() { boo(it) { // ... ..
이전 포스팅에서 RecyclerView.Adapter를 ListAdapter로 변경하면 에러가나는 모습을 보여드렸습니다. 이번 포스팅에선 ListAdapter에서 문제없이 ItemTouchHelper를 사용하는 방법을 적어보겠습니다. ListAdapter 우선 ListAdapter에 대해 간략히 알아보고 가겠습니다. RecyclerView.Adapter base class for presenting List data in a RecyclerView, including computing diffs between Lists on a background thread. This class is a convenience wrapper around AsyncListDiffer that implements Adapt..
RecyclerView의 아이템을 드래그 앤 드롭으로 순서를 변경하는 방법을 알아보겠습니다. RecyclerView의 아이템을 드래그&드롭할 때 onTouchListener, onInterceptTouchEvent, GestureDetector 등을 통해 이벤트 감지를 할 수 있지만, 안드로이드 RecyclerView 라이브러리에서 지원하는 ItemTuchHelper 클래스를 통해 쉽게 감지할 수 있습니다. ItemTuchHelper This is a utility class to add swipe to dismiss and drag & drop support to RecyclerView. It works with a RecyclerView and a Callback class, which configu..