Android (7) 썸네일형 리스트형 [RxJava3] 스케줄러 Rx는 비동기 프로그래밍에 관한 것으로 어느 스레드에서 실행시킬지가 중요한 이슈이다. 스케줄러가 비동기 프로그래밍이 가능하도록 어느 스레드에서 실행을 시킬지를 결정하고, 관리를 하는 클래스이다. 스케줄러에서 기억해야할 할 함수는 아래 2가지 이다. subscribeOn()과 observeOn(). subscribeOn() observeOn() - Observable (데이터 흐름) 이 발행되는 스레드 지정 - subscribe() 호출 시 실행되는 스레드 지정. - 처리된 결과를 전달하는 스레드 지정 - ObserveOn() 호출 이후부터 지정된 스레드에서 데이터흐름이 함수 수행 처음에 지정한 스레드로 고정 중간에 스레드 변경이 가능 (default: subscribeOn() 스레드) 스케줄러의 종류에는.. [RxJava3] Reactive 연산자 - 2.필터 연산자, 결합 연산자 이번 포스팅에서는 이전 생성, 변환 연산자에 이어서 필터 연산자, 결합연산자, 그리고 그 외 자주 사용하게 될 연산자들에 대해서 알아보고자 합니다. 1. Filter(필터) 연산자 Observable에서 아이템을 선택적으로 발행하는 연사자입니다. 대표적인 연산자에는 filter(), first(), 그리고 debounce(), sample() 이 있습니다. filter() : 조건이 true가 되는 데이터만 발행. 직관적인 함수명대로 predicate 가 true가 되는 조건의 아이템에 대해서만 발행을 하는 함수입니다. @SchedulerSupport(SchedulerSupport.NONE) public final Observable filter(@NonNull Predicate [RxJava3] Reactive 연산자 - 1.생성 연산자, 변환 연산자 ReactiveX 연산자는 Observable을 생성도 하고, 변환도 하며, 흐름제어를 하는 기능도 있는 함수 입니다. Rx 연산자를 사용할 줄 안다는 것은 Observable 데이터 흐름을 다룰 줄 안다는 것이고 즉, Reactive 프로그래밍을 하고 있다는 것이라고도 볼 수 있겠네요. (다음 포스팅에서 스케줄러 등 중요한 개념들을 더 다루어야하기는 하지만) 다양한 연산자들이 있지만, 공식문서에서 그룹핑한 내용을 보면 Creating Observables, Transforming Observables, Filtering Observables, Combining Observables 등이 있습니다. 하나씩 천천히 알아봅시다. 1. Creating (생성) 연산자 이전에 다루었던 create(), just.. [RxJava3] Observable RxJava 의 핵심 중 핵심이라할 수 있는 클래스이자 데이터 흐름에서 데이터 발행을 담당하는 Observable에 대해서 알아보겠습니다. Observable은 3가지 event를 가집니다. onNext : 데이터 발행을 알림 onComplete : 데이터 발행 완료를 알림 onError : 에러 발생을 알림 onError 발생 이후에는 onNext 와 onComplete 가 발생하지 않음. 그러면, Observable은 어떻게 생성할 수 있을까요? just(), fromXX(), create(), interval(), timer(), range() 와 같은 정적 팩토리 함수를 활용하여 생성할 수 있습니다. Observable의 종류는 총 4가지가 있습니다. Observable: 기본 Maybe: 0개 .. [Android] RxJava2 + Retrofit2 RxJava와 가장 많은 조합으로 사용된다고 알고 있는 Retrofit 사용법을 정리해보고자 합니다. RxJava 스타일대로 Retrofit을 사용할 수 있게 해주는 adapter 라이브러리가 RxJava3 버전으로 아직 나오지 않아서 이번 글은 RxJava2 + Retrofit의 조합으로 Android에서 REST API 통신을 하는 방법에 대해 작성하였습니다. RxJava3 정리는 아래 링크에서 확인 가능합니다 :) -> https://dev-eunji.tistory.com/19 역시 가장 빠르게 배우고, 써먹을 수 있는 방법은 직접 해보는 것이기 때문에 Fake REST API 사이트, https://jsonplaceholder.typicode.com 의 json 데이터의 도움을 받아서 테스트 코드.. [Android] WorkManager 0. 개요 WorkManager는 즉시 실행하지 않아도되는 백그라운드 작업을 구현할 때 사용할 수 있다. (즉시 실행이 필요 -> Foreground service) 또한, 앱이 종료 되거나 단말이 다시 시작 되더라도 안정적 실행이 필요한 작업을위한 것이다. 아래와 같이 종속성을 추가하고, Worker와 WorkRequest 를 정의하고 사용하면 된다. 각각에 대해서 알아봅시다 :) 종속성 dependencies { implementation "androidx.work:work-runtime-ktx:2.3.2" // 최신버전을 확인해주세요. } 1. Worker 작업의 단위를 정의 샘플 코드 class MyWorker(context: Context, workerParams: WorkerParameters.. [Android] BottomSheet 개요 화면 하단에서 어느 정도 높이로 고정이 되어있지만 손 드래그에 따라 올라가기도, 내려가기도, 또 사라지기도 하는 뷰를 만들고 싶을 때 사용할 수 있는 안드로이드 컴포넌트이다. 종류 일반 (Persistent BottomSheet) Dependency 추가 implementation 'com.google.android.material:material:1.0.0' Persistent BottomSheet 특징 BottomSheet는 1) CoordinatorLayout의 자식으로 적용해야 한다. 2) 모든 레이아웃에 app:layout_behavior 정의로 간단하게 사용 가능하다. * app:behavior_peekHeight: 기본 높이 * app:behavior_hideable: 레이아웃을 아래로.. 이전 1 다음