RxJava2, RxAndroid2 26

[RxAndroid2] RxAndroid로 안드로이드 스레드 대체하기. AndroidSchedulers.mainThread()

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 안드로이드는 기본적으로 싱글 스레드 모델이기 때문에처리하는데 시간이 오래걸리는 데이터의 전송이나파일의 입출력 등은 별도의 스레드로 분리하여서 작업을 해야 합니다.그렇지 않으면 앱의 성능이 나빠지거나, 앱이 응답하지 않는 일이발생하기도 합니다. 스레드를 효과적으로 관리하려면 스케줄러를 만들어서 관리해야 하는데요.Rx 프로그래밍에서 안드로이드의 스레드를 어떻게 구현하는지 공부합니다. 안드로이드의 View or ViewGroup 은 UI 스레드에서만 업데이트할 수 있도록설계되어 있는데, 그 이유는 여러 스레드에서 동시에 UI를 업데이트할 때발생할 수도 있는..

RxJava2, RxAndroid2 2018.10.10

[RxAndroid2] 스마트폰에 설치된 앱 목록 보기

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 이번 포스팅에서는 RxAndroid2를 사용한 간단한 예제를 보려고 합니다. 스마트폰에 설치된 애플리케이션 목록을 보는 예제인데요. 앱 레벨 gradleandroid {} 블록에 dataBinding { enabled true } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } 를 추가해주시고, dependencies {} 블록에implementation"org.jetbrains.kotlin:kotlin-std..

RxJava2, RxAndroid2 2018.10.10

[RxAndroid2] RxAndroid 란?

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 이번 포스팅부터는 RxAndroid에 대해 간단히 공부합니다. 안드로이드에 사용하기에 유용한 java8의 기능들이 있습니다.Stream API 와 같은 푸시 기반 데이터 처리 기능입니다.아직까지는 안드로이드에서 자바8의 기능들을 완벽하게 사용할 수는 없습니다. 때문에 안드로이드에서 RxJava를 활용한 RxAndroid 라이브러리를 사용한다면큰 장점이 생깁니다. RxAndroidRxJava 에 최소한의 클래스를 추가해서 안드로이드 앱에 리액티브 구성요소를쉽고 간편하게 사용할 수 있도록 만드는 라이브러리입니다. 기존 안드로이드 개발 중 겪는 어려움 중 ..

RxJava2, RxAndroid2 2018.10.05

[RxJava2] 스케줄러 종류와 사용 법 : newThread(), computation(), io(), trampoline(), single(), from(executor)

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 이번 포스팅에서는 스케줄러의 종류와 사용법에 대해 공부합니다.여러 종류의 스케줄러가 있는데, 오늘 공부할 종류 중RxJava 에서는 computation() 스케줄러, io() 스케줄러, trampoline() 스케줄러의사용을 권장합니다. 첫 번째로 공부할 newThread() 스케줄러는 특수한 상황에서만 사용하시면되겠습니다. newThread()새로운 스레드를 생성새 스레드를 만들어 어떠한 동작을 실행하고 싶을 때Schedulers.newThread() 를 인자로 넣어주면 됩니다.예제)123456789101112131415161718192021222..

RxJava2, RxAndroid2 2018.10.04

[RxJava2] 스케줄러 Schedulers

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 이번 포스팅부터는 스케줄러에 대해서 공부합니다. 이전까지의 포스팅에서 예제들의 공통점은 대부분 main 스레드에서동작한다는 것이었는데요.실무에서 사용할 때는 요구사항에 맞게 비동기로 동작할 수 있도록바꿔야겠죠? 이 때 스케줄러를 사용합니다.스케줄러스레드를 지정할 수 있게 해줍니다. 예제)123456789101112131415161718192021222324252627package rx.java.chapter05; import io.reactivex.Observable;import io.reactivex.schedulers.Schedulers; publ..

RxJava2, RxAndroid2 2018.10.02

[RxJava2] 리액티브 RxJava2Extensions 라이브러리에 있는 연산자 : count(), max(), min(), sumInt(), averageDouble(), delay(), timeInterval()

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 이번 포스팅에서는 RxJava2Extenions 라이브러리에 있는 연산자들 중count(), max(), min(), sumInt(), averageDouble() 에 대해 공부합니다.그리고 delay(), timeInterval() 에 대해서도 공부합니다. count()Observable에서 발행한 데이터의 갯수를 발행합니다.결과 값은 항상 한 개의 값만 가지므로 Single으로 발행합니다. max(), min()이름처럼 최댓값과 최솟값을 발행합니다. sumInt(), averageDouble()이 함수들도 이름 그대로 입니다. 정수 값으로 합을 구..

RxJava2, RxAndroid2 2018.10.02

[RxJava2] 리액티브 조건 연산자 : amb(), takeUntil(), skipUntil(), all()

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 이번 포스팅에서는 조건(condition) 연산자에 대해 공부합니다. 조건 연산자흐름을 제어하는 역할 amb()Observable이 여러개 들어왔을 때 먼저 나오는 Observable을 선택해서 발행함.123456789101112131415161718192021222324252627282930313233343536373839package rx.java.chapter04.condition; import java.util.Arrays;import java.util.List;import java.util.concurrent.TimeUnit; import i..

RxJava2, RxAndroid2 2018.10.01

[RxJava2] 리액티브 결합 연산자 : zip(), zipWith(), combineLatest(), merge(), concat()

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 이번 포스팅에서는 결합 연산자에 대해서 공부합니다. 결합 연산자여러 개의 Observable을 조합하여 활용하는 연산자. zip()입력 Observable에서 데이터를 모두 새로 발행했을 경우 데이터들을 합해줍니다.입력되는 모든 Observable을 활용해서 Observable을 결합합니다.1234567891011121314151617181920package rx.java.chapter04.combine; import io.reactivex.Observable; public class ZipNumberEx { public static void main..

RxJava2, RxAndroid2 2018.10.01

[RxJava2] 리액티브 변환 연산자 : concatMap(), switchMap(), groupBy(), scan()

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 이번 포스팅에서는 변환 연산자 4 개에 대해 공부합니다. 변환 연산자만들어진 데이터의 흐름을 원하는 대로 변형할 수 있다. concatMap()이전에 배운 flatMap()은 먼저 들어온 데이터를 처리하는 도중 새로운 데이터가들어오게 되면 나중에 들어온 데이터가 먼저 출력될 수도 있는데,이것을 인터리빙이라고 합니다.concatMap()은 이 인터리빙 없습니다.즉. 항상 먼저 들어온 데이터를 먼저 처리합니다. => 순서 보장.예제와 주석.12345678910111213141516171819202122232425262728293031323334353637..

RxJava2, RxAndroid2 2018.10.01

[RxJava2] 리액티브 생성 연산자 : interval(), timer(), range(), intervalRange(), defer(), repeat()

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 이번 포스팅에서는 생성 연산자에 대해 공부합니다. 생성 연산자: 데이터의 흐름을 만드는 역할을 합니다=> Observable을 만든다. interval()일정 시간 간격으로 데이터 흐름을 생성합니다.1234567891011121314151617181920212223242526272829package rx.java.chapter04.constructor; import java.util.concurrent.TimeUnit; import io.reactivex.Observable; public class IntervalEx { public static vo..

RxJava2, RxAndroid2 2018.09.28