분류 전체보기(4)
-
[Rx] 2. 연산자[2]
1. map - 입력받은 데이터를 어떤 함수나 로직에 의해 데이터를 가공한다. private val listIntArray = arrayOf(1,2,3,4,5,6,7,8,9) fun AA() = Observable.fromArray(*listIntArray) .map { it+1 } .subscribe(::println) //결과값 2 3 4 5 6 7 8 9 10 listIntArray 리스트의 원소값에 +1을 더해 콘솔에 출력해주는 코드이다. map을 통해 입력받은 입력값에 +1로 데이터를 새로운 데이터로 가공한다. 2. filter - 입력받은 데이터에서 원하는 데이터만 걸러낸다. fun BB()= Observable.range(1,200) .filter{ it % 10 == 0 } .subscri..
2020.05.09 -
[Rx] 2. 연산자[1]
Observeble 연산자 1. just fun A(){ val item = Observable.just(1,2,3,4,5,6,7,8,9,3) val observer = item.subscribe(::println) } - just는 입력받은 순서대로 데이터를 발행 해준다. - 최대 10개까지 입력을 받을 수 있다. - 입력받은 데이터를 모두 발행하면 dispose를 실행하여 더 이상 구독자는 데이터를 받지 않게된다. 2. Create fun B(){ val item = Observable.create { it.onNext(1000) it.onNext(5000) it.onNext(10000) it.onComplete() } val observer = item.subscribe(::println) } - ..
2020.05.05 -
[Kotlin] 1. Sealed,Data class
Sealed Class ? java에 enum 형태에서 확장된 형태라고 볼수있다. 클래스를 한대 묶어놓은 형태의 클래스를 말하고, 봉인 클래스를 사용할 경우 when에서 경우에 수를 이미 봉인 클래스는 알고 있기에 예외인 else를 붙히지 않아도 된다. sealed class Test{ class A():Test() class B():Test() } fun main( test:Test ){ when(test){ is test.A -> //처리 프로세싱 is test.B -> //처리 프로세싱 } } 위와 같이 처리가 가능하다. 어디에 사용될까? 최근에 Rx 형태의 함수형 프로그래밍으로 안드로이드 아키텍쳐를 설계할 경우 아주 유용하다고 생각된다. Sealed Class로 Ui의 상태관리에 아주 좋다고 한다..
2020.05.04 -
[Rx] 1. 리액티브 프로그래밍
리액티브 프로그래밍이란? 비동기 스트림을 이용한 데이터 처리 각각의 연산자를 통해 데이터를 가공 (filter, map, fold, switchmap... 등등) OOP, FP과 같은 프로그래밍 패러다임 it.debounce(400, TimeUnit.MICROSECONDS) .switchMap { query -> handler(query,api)} .startWith(QueryViewState.idel()) .distinctUntilChanged() 간단하게 설명하자면 데이터 가공을 400 밀리세 컨트로 제한하고 switchmap 가공되는 데이터를 미러링하여 인풋이 또 들어온다면 현재 가공 중인 데이터를 버리고 최신 데이터만 가공하며 또한 이 가공일 시작될때 QueryViewState.idle()이 먼저..
2020.05.02