코틀린(2)
-
[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