gyu__b (90) 썸네일형 리스트형 [RxJava] 조건 연산자, amb(), takeUntil(other), skipUntil(other), all() 1. 조건 연산자 조건 연산자는 Observable의 흐름을 제어하는 역할을 합니다. 필터 연산자가 발행된 앖을 채택하느냐 기각하느냐 여부에 초점을 맞춘다면, 조건 연산자는 지금까지의 흐름을 어떻게 제어할 것인지에 초점을 맞추죠! 조건 연산자에는 다음과 같은 함수들이 있습니다. - amb() 함수: 둘 중 어느 것이든 먼저 나오는 Observable을 채택 - takeUntil(other) 함수: other Observable에서 데이터가 발행되기 전까지만 현재 Observable을 채택 - skipUntil(other) 함수: takeUntil(other) 함수와는 반대로 other Observable에서 데이터가 발행될 때까지 현재 Observable에서 발행되는 값을 무시 - all() 함수: Ob.. [ Android / Design ] 화면 전환 애니메이션( 상하좌우) 다들 앱 개발하시면서 화면 전환할 때 슬라이드 형식으로 나타내고 싶을 때가 있으실텐데여 그런 분들을 위해 화면 전환 효과를 아주~~ 쉽게 적용하는 법과 살짝의 팁(?)을 드리려고 합니다. Android Resource Directory를 클릭하고 Resource type을 anim으로 설정한 후 디렉토리를 만들어줍니다. 생성된 anim 폴더에서 Animation Resource File을 생성해줍니다. (Resource type: set) 그 후 다음과 같은 코드를 넣어주시면 됩니다! 위 예시는 250ms의 속도로 화면을 중앙에서 아래로 넘어가는 애니메이션이에요 ! 보통 값을 각각 100% 0% -100%를 사용합니다. 좌우로 슬라이드를 하고 싶으시면 X의 값을 조절하면 되겠죠?? 그리고 코드로 이 애니.. [RxJava] 결합 연산자 zip(), combineLastest(),merge(), concat() 결합 연산자 1. zip() zip() 함수의 특징은 각각의 Observable을 모두 활용해 2개 혹은 그 이상의 Observable을 결합하는다는데 있습니다. 예를 들어 A,B 두 개의 Observable을 결합한다면 2개의 Observable에서 모두 데이터를 발행해야 결합할 수 있습니다. 그전까지는 발행을 기다려요. 그림으로 보시겠습니다! 이렇듯 두 개의 Observable이 발행될 때까지 기다렸다가 결합을 한 후 발행을 하는 애에요~~ 2. combineLatest() 이 함수는 2개 이상의 Observable을 기반으로 Observable 각각의 값이 변경되었을 때 갱신해주는 함수입니다! 예를 들면 첫 번째 Observable과 두 번째 Observable을 결합하는 기능을 만든다고 하면 첫 .. [RxJava] 결합 연산자 zip(), combineLastest(),merge(), concat() 결합 연산자 1. zip() zip() 함수의 특징은 각각의 Observable을 모두 활용해 2개 혹은 그 이상의 Observable을 결합하는다는데 있습니다. 예를 들어 A,B 두 개의 Observable을 결합한다면 2개의 Observable에서 모두 데이터를 발행해야 결합할 수 있습니다. 그전까지는 발행을 기다려요. 그림으로 보시겠습니다! 이렇듯 두 개의 Observable이 발행될 때까지 기다렸다가 결합을 한 후 발행을 하는 애에요~~ 2. combineLatest() 이 함수는 2개 이상의 Observable을 기반으로 Observable 각각의 값이 변경되었을 때 갱신해주는 함수입니다! 예를 들면 첫 번째 Observable과 두 번째 Observable을 결합하는 기능을 만든다고 하면 첫 .. [RxJava] 변환 연산자 concatMap(), switchMap(), groupBy(), scan() 1. 변환 연산자 변환 연산자는 데이터 흐름을 원하는 대로 변형할 수 있는 연산자입니다. 이번 글에서는 flatMap()과 동일한 계열인 concatMap()과 switchMap() 함수, reduce() 함수와 유사한 scan()함수, 색다른 groupBy() 함수를 다뤄보겠습니다. 2. concatMap() 함수 concatMap() 함수는 flatMap() 함수와 비슷합니다. flatMap()는 먼저 들어온 데이터를 처리하는 도중에 새로운 데이터가 들어오면 나중에 들어온 데이터의 처리 결과가 먼저 출력 될 수도 있습니다. 이것을 인터리빙(=끼어들기, interleaving)이라고 합니다. 이와 반대로 concatMap() 함수는 먼저 들어오는 데이터 순서대로 처리해서 결과를 낼 수 있도록 보장해줍니.. [RxJava] 변환 연산자 concatMap(), switchMap(), groupBy(), scan() 1. 변환 연산자 변환 연산자는 데이터 흐름을 원하는 대로 변형할 수 있는 연산자입니다. 이번 글에서는 flatMap()과 동일한 계열인 concatMap()과 switchMap() 함수, reduce() 함수와 유사한 scan()함수, 색다른 groupBy() 함수를 다뤄보겠습니다. 2. concatMap() 함수 concatMap() 함수는 flatMap() 함수와 비슷합니다. flatMap()는 먼저 들어온 데이터를 처리하는 도중에 새로운 데이터가 들어오면 나중에 들어온 데이터의 처리 결과가 먼저 출력 될 수도 있습니다. 이것을 인터리빙(=끼어들기, interleaving)이라고 합니다. 이와 반대로 concatMap() 함수는 먼저 들어오는 데이터 순서대로 처리해서 결과를 낼 수 있도록 보장해줍니.. [ 알고리즘 / Kotlin ] 이진 탐색(Binary Search) 알고리즘 이진 탐색 알고리즘은 배열 내부에서 특정한 값을 찾아내는 알고리즘입니다. 이진 탐색 알고리즘의 과정부터 설명하겠습니다. 1) 배열의 중간에 있는 값을 선택하여 찾고자 하는 값 x와 비교 2) x가 중간 값보다 작으면 중간 값을 기준으로 좌측의 데이터들을 대상으로, 3) x가 중간값보다 크면 배열의 우측을 대상으로 다시 탐색 4) 값을 찾을 때까지 2번 3번 반복 즉 , 이진 탐색 알고리즘은 정렬되어있는 배열에서 사용해야합니다.( 크기로 비교하기 때문이죠) 예시를 들어볼게요 1 2 4 6 9 10 11 19 이러한 배열이 있다고 했을 때, 4라는 값을 찾는 과정입니다. 1) 먼저 이 배열의 중간값은 6입니다. 배열의 끝점의 인덱스가 7이므로 그의 중간은 3.5에서 소수점을 버리기 때문이죠. 2) 4 hig.. [RxJava] 생성 연산자 interval(), timer(), range(), intervalRange(), defer() 생성 연산자의 역할은 데이터 흐름을 만드는 것입니다. 간단하게 말해서 Observable(Observable, Single, Maybe 객체 등 )을 만든다고 생각하면 됩니다! 1. interval() 함수 interval() 함수는 일정 시간 간격으로 데이터 흐름을 생성합니다. 위 그림처럼 주어진 시간 간격으로 0부터 1씩 증가하는 Long 객체를 발행합니다 이러한 interval()함수의 두 개의 원형들만 일단 알아보겠습니다! 첫 번째 원형은 일정 시간 (period)를 쉬었다가 데이터를 발행합니다. 두 번째 원형은 동작은 같고 최초 지연 시간(initialDelay)을 조절할 수 있죠. 보통 초기 지연 시간없이 바로 데이터를 발행하기 위해 (initialDelay =0) 사용합니다. 여기서 다소 주.. 이전 1 ··· 4 5 6 7 8 9 10 ··· 12 다음