| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
- 디자인패턴 #
- android designsystem
- 싱글톤
- Design Pattern
- ㅓ
- compose
- Functional Programming
- 추상 팩토리
- 코틀린
- Singleton
- 안드로이드 디자인시스템
- 프로토타입 패턴
- ㅋㅁ
- define
- 코루틴
- factory method
- Coroutines
- 팩토리 메소드
- 옵저버 패턴
- Abstract Factory
- builderPattern
- 빌터패턴
- material3
- 함수형프로그래밍
- PrototypePattern
- designPattern
- Kotlin
- Observer Pattern
- 추상팩토리패턴
- 디자인패턴
- Today
- Total
목록전체 글 (339)
오늘도 더 나은 코드를 작성하였습니까?
map - 기존 코틀린 collection 확장함수인 map 동일하다. - flow 값을 변환 시켜 보낸다. - 람다로 변환함수만 넘기면 알아서 전부 emit된다. suspend fun main() { val intFlow = (1..10).asFlow().map { it*it } intFlow.collect { int -> println(int) } } transFrom - map과 비슷하지만 단순 값의 변환 보다는 타입을 명식적으로 기재해 타입을 변환할때 사용한다. - 타입을 변환후 emit()사용하여 보낸다. suspend fun main() { val intFlow = (1..10).asFlow().transform { num -> val str = num.toString()+"번" emit(st..
Take - flow에서 특정 개수만 받을경우 사용한다. suspend fun main() { val alphabetFlow = ('a'..'z').asFlow().take(4) alphabetFlow.collect { alphabet -> println(alphabet) } } TakeWhile - flow의 첫번째 보내는 값이 조건을 만족하면 내보낸다. 즉, 조건에 맞는 첫번쨰 값을 내보내는것이 아니라, 첫번째 값이고 조건에 맞아야 한다. suspend fun main() { val intFlow = (1..10).asFlow().takeWhile{ num -> num.equals(1) } intFlow.collect { int -> println(int) } } Buffer( 생산자 소비자 한쪽/양..
combine - 2개 이상의 flow를 통합하여 새로운 flow를 생성할 수도 있다. - 모든 플로우의 emit이 완료될때까지 작동되어진다. - 작동 과정에서 최신기준의 데이터를 내보낸다. 결합되는 Flow 모두 최소 하나의 데이터를 방출한 경우에 첫 번째 결합 데이터가 방출되고, 이후로는 둘중 어느 하나 Flow 라도 데이터를 방출하면 모든 Flow의 최신 데이터를 결합하여 방출해준다. suspend fun main() { val charFlow = ('a'..'c').asFlow() val intFlow = flow { (1..5).forEach { delay(1000) emit(it) } } val stringFlow = charFlow.combine(intFlow) { int, char -> v..
stateflow - Observable하며 state를 지니고 있다. - StateFlow는 최신 및 새로운 state가 생성된 경우에만 반환하고 동일한 state는 반환하지 않는다. - flow는 일반적으로 cold stream(터미널 연산자가 실행시 생산자를 실행시킴), StateFlow는 hot stream입니다. 즉 일반 Flow는 최신의 state를 보유 할 수 없으며 터미널 연산자가 실행시 활성화 되는 반면 StateFlow는 최신의 state를 보유 할 수 있으며 생성하자마자 상태를 보유하며, 그렇기 때문에 반드시 초기값이 필요로한다. StateFlow는 ConflatedBoradcastChannel을 대체하기 위해 설계되었습니다. StateFlow는 기본 콘셉트로 distinctUntil..