# rxdart

RxDart API 뽀개기3 - pub.dev 번역
전 포스팅에서는 rx 라이브러리를 뽀갰다. 살면서 한 번도 라이브러리를 제대로 쳐다 본 적이 없어서 인생에 한 번은 해 보고 싶었던 일을 했다. 그러나 지금 내 수준에서는 그런 작업이 개발 실력 향상에 크게 도움이 되지 않는다는 결론에 다다라 여기서는 나머지 라이브러리들을 굉장히 가볍게 훑을 거다. ㄱㅈㅇ. rx_streams rx_streams는 Dart 언어에서 사용할 수 있는 반응형 프로그래밍을 위한 라이브러리입니다. 주어진 클래스들을 통해 이 라이브러리의 주요 기능들을 다음과 같이 요약할 수 있습니다: 다양한 스트림 생성: 특정 함수를 호출하여 값 생성 (FromCallableStream) 주어진 범위의 숫자 시퀀스 생성 (RangeStream) 지정된 시간 후 값 발생 (TimerStream) 스트림 연결 및 조합: 여러 스트림의 값을 하나로 결합 (CombineLatestStream, ZipStream) 스트림을 순차적으로 연결 (ConcatStre

RxDart API 뽀개기2 - pub.dev 번역
주의: 요약 따윈 없음, 내용 많이 김, 진짜 API 뽀갤 생각 아니면 읽는 거 추천 안 함 ㅇㅋ, 레쯔기릿, ㄱㅈㅇ RxDart에 뭐가 있는가. 까 보면 크게 라이브러리가 다섯 개 있는데 rx: 주요 함수와 클래스들을 포함하며, 기본적인 ReactiveX 연산들을 제공합니다. rx_streams: Dart의 Stream API를 확장하는 다양한 스트림 클래스와 연산들을 제공합니다. rx_subjects: 서브젝트 관련 클래스들을 제공합니다. 서브젝트는 동시에 스트림 및 스트림 컨트롤러로 작동하는 객체입니다. rx_transformers: 스트림의 데이터를 변환하는 연산들을 포함합니다. rx_utils: 내부적으로 RxDart에서 사용되는 유틸리티와 도우미 함수들을 포함합니다. 요러하다. 자... 그러면 하나하나 까 보자. Classes in rx library 클래스를 한 번 보자. 클래스는 이 정도다. 그럼 Extension은 무엇일까? 이는

RxDart API 뽀개기1 - pub.dev 번역
API 톺아보기 RxDart는 다음 세 가지 방법으로 Dart Streams에 기능을 추가합니다: 스트림 클래스(Stream Classes): 여러 스트림을 결합하거나 병합하는 등 특정 기능을 가진 스트림을 생성합니다. 확장 메소드(Extension Methods): 소스 스트림을 다른 기능을 가진 새 스트림으로 변환합니다. 예를 들면, 이벤트를 스로틀링하거나 버퍼링하는 것입니다. 서브젝트(Subjects): 추가 기능이 있는 StreamControllers입니다. 스트림 클래스 스트림 클래스(Stream class)는 Stream.fromIterable 또는 Stream.periodic과 같은 다양한 방법으로 스트림을 생성합니다. RxDart는 스트림을 결합하거나 병합하는 등의 작업을 위해 추가적인 스트림 클래스를 제공합니다! RxDart에서 제공하는 스트림들은 두 가지 방법으로 구성할 수 있습니다. 아래 예제는 기능적으로 동일합니다: -

RxDart 기본 개념 뽀개기 - pub.dev 번역
RxDart란? RxDart는 비동기 프로그래밍을 위한 인기 있는 reactiveX API의 구현체로, 기본 Dart Streams API를 활용합니다. => ReactiveX (Reactive Extensions)는 비동기 및 이벤트 기반 프로그램을 구성하기 위한 API입니다. Observable sequences를 사용하여 비동기 데이터 스트림을 나타내고, 이러한 스트림에 대한 연산을 적용할 수 있는 연산자를 제공합니다. ReactiveX는 다양한 프로그래밍 언어에 적용될 수 있으며, 각 언어별로 독특한 구현이 있습니다. 예를 들면, RxJava는 Java를 위한 ReactiveX 구현이고, RxJS는 JavaScript를 위한 것입니다. 기본적으로 ReactiveX는 데이터의 흐름과 변화에 반응하여 프로그래밍하는 패러다임을 제공합니다. 이를 통해 복잡한 비동기 로직을 더 간단하고, 직관적으로 표현할 수 있게 해줍니다. => ReactiveX (Reactive Ext

[Flutter] 상태 관리 9편(State Management) - Mobx
상태 관리 9편(State Management) - Mobx 상태 관리(State Management) 1편 - State Ful 상태 관리(State Management) 2편 - Value Listenerable 상태 관리(State Management) 3편 - Get X [Simple] 상태 관리(State Management) 4편 - Get X [Reactive] [상태 관리(State M

[Flutter] 상태 관리 8편(State Management) - Riverpod
상태 관리 8편(State Management) - Riverpod 상태 관리(State Management) 1편 - State Ful 상태 관리(State Management) 2편 - Value Listenerable 상태 관리(State Management) 3편 - Get X [Simple] 상태 관리(State Management) 4편 - Get X [Reactive] [상태 관리(Sta

[Flutter] 상태 관리 7편(State Management) - Cubit
상태 관리 7편(State Management) - Cubit 상태 관리(State Management) 1편 - State Ful 상태 관리(State Management) 2편 - Value Listenerable 상태 관리(State Management) 3편 - Get X [Simple] 상태 관리(State Management) 4편 - Get X [Reactive] [상태 관리(State

[Flutter] 상태 관리 6편(State Management) - Bloc
상태 관리 6편(State Management) - Bloc 상태 관리(State Management) 1편 - State Ful 상태 관리(State Management) 2편 - Value Listenerable 상태 관리(State Management) 3편 - Get X [Simple] 상태 관리(State Management) 4편 - Get X [Reactive] [상태 관리(State M

[Flutter] 상태 관리 5편(State Management) - Provider
상태 관리 5편(State Management) - Provider 상태 관리(State Management) 1편 - State Ful 상태 관리(State Management) 2편 - Value Listenerable 상태 관리(State Management) 3편 - Get X [Simple] 상태 관리(State Management) 4편 - Get X [Reactive] [상태 관리(Stat

[Flutter] 상태 관리 3편(State Management) - Get X [Simple]
상태 관리 3편(State Management) - Get X [Simple] 상태 관리(State Management) 1편 - State Ful 상태 관리(State Management) 2편 - Value Listenerable 상태 관리(State Management) 4편 - Get X [Reactive] 상태 관리(State Management) 5편 - Provider [상태 관리(

[Flutter] 상태 관리 1편(State Management) - State Ful
상태 관리(State Management) 1편 - State Ful 상태 관리(State Management) 2편 - Value Listenerable 상태 관리(State Management) 3편 - Get X [Simple] 상태 관리(State Management) 4편 - Get X [Reactive] [상태 관리(State Management) 5편 - Provider](https://velog.io/@tygerhwang/Flutter-상태-관리-5편State-Management-Provi
Flutter BloC 디자인 패턴
Bloc은 Business Logic Component의 약자로 UI와 Business Logic을 분리하기 위한 디자인 패턴입니다. rxdart 패키지를 사용하여 간소 구현합니다. Bloc 패턴은 UI와 비지니스 로직을 분리하여 코드를 효율적으로 관리할 수 있도록 하는 디자인 패턴입니다. 한 화면상에 많은 위젯이 포함되어 있다면 화면을 새로고침 할 때 마다 불필요한 위젯까지 함께 새로고침 되어 부하를 발생시킬 수 있습니다. Bloc 패턴에서는 각 Bloc마다 대응되는 하위 UI요소가 있으며 값의 변경을 인지하여 값의 변경을 확인하고 필요한 UI요소만을 업데이트 합니다. 또한 비지니스 로직이 분리되었기 때문에 기능만을 따로 테스트할 수 있습니다. Bloc 디자인 패턴을 사용하기 위해서는 값의 변경을 인지할 수 있어야 합니다. rxdart패키지를 사용하여 변경을 인지하고 bloc 디자인 패턴을 구현합니다.

[flutter] 빌드 최소화하여 화면 간 데이터 일치시키기 (with Navigator, provider, bloc, stream)
1. 개요 - 무엇을 말하려 하는가 위 앱은 목록페이지와 상세페이지 사이의 데이터 일치시키는 예제이다. 목록(ListVew)에서 특정 항목을 눌러 상세 페이지로 진입 후, 상세 페이지에서 데이터가 변경되는 경우가 있다. 이 경우 이전 화면의 항목 페이지에도 해당 내용이 반영되어야 한다. 2. 응용 - 실제 앱에서 이러한 패턴은 많은 앱에서 나타난다. 예를 들어, 게시글 목록에서 사용자가 상세페이지로 진입한 후 좋아요를 누르거나 댓글을 다는 경우가 있다. 사용자가 좋아요를 누르면 상세페이지의 좋아요 횟수가 증가한다. 여기서 아무 처리를 하지 않으면, 뒤로가기를 눌렀을때 목록(ListView) 페이지에서 반영이 되지 않는다. 이러면 내 반응이 실시간으로 반영된다는 느낌을 받기 어렵다. 3. 주의해야할 방법 유저가 뒤로가기를 눌렀을 때 좋아요 갯수를 받아오는 api를 호출하면 어떻게 될까? 이 방법은 주의가 필요하다. api 요청을 한번더 하게