FW, Lib 공부/Flutter
-
IsolateFW, Lib 공부/Flutter 2023. 6. 27. 23:18
Flutter, dart는 싱글 스레드 환경이다. 즉, 화면 그리기, api 통신, 계산 등 모두 하나의 스레드에서 처리된다. 물론 비동기 처리를 지원하기 때문에 api 통신을 함에 있어, 데이터가 들어올 때 까지 화면이 그려지지 않는다거나 하는 문제는 발생하지 않는다. 하지만, 복잡한 연산을 수행하는 동기 연산의 경우에는 화면이 버벅이게 되는 문제가 발생한다. 이를 해결하기 위해 복잡하거나 무거운 연산을 수행하는 로직을 별도의 Isolate에서 처리하면 화면이 부드러워진다. Isolate Dart의 동시성 Isolate를 사용하여 멀티 프로세서 코어에서 병렬 코드를 실행하세요. dart-ko.dev 일반적으로 모든 언어는 스레드 단위로 처리된다. 스레드는 같은 메모리와 코드를 공유하기 때문에 뮤텍스, ..
-
bloc 디자인 패턴FW, Lib 공부/Flutter 2023. 6. 27. 22:10
bloc | Dart Package A predictable state management library that helps implement the BLoC (Business Logic Component) design pattern. pub.dev bloc을 사용하는 이유 내 경우에는 프로젝트의 크기가 커질수록 bloc 패턴을 사용해야 할 필요성이 절실해졌는데, 아래와 같은 상황에서 필요했다. 예시를 위해 아래와 같은 위젯 트리가 형성되어 있다고 생각해보자. 1. 깊은 위젯간 의존 관계 Flutter는 기본적으로 위젯 객체를 인자로 넘겨주는 식으로 구조를 형성하게 된다. 이런식으로 위젯을 쌓다보면 위젯 트리가 깊어지게 되는데, 여기서 문제가 발생한다. 최 상단의 Arkhive 위젯의 멤버 변수의 값을 ..