Mobile22 [Flutter] Riverpod 뽀개기 (3) (feat.Freezed) 이번 글에서는 Riverpod 2.0에서 공개된 (Async) NotifierProvider 활용환 상태관리를 소개해보겠습니다.StateNotifier, FutureProvider 등 여러가지 Provider가 있지만, 공식문서에서는 새로 공개된 NotifierProvider로 migration 하는 것을 권장하고 있습니다.NotifierProviderNotifierProvider는 동기 상태 관리를 위한 Provider입니다. 기존의 StateNotifier와 유사한 역할을 하지만, 더 간단하고 명확한 API를 제공합니다.특징상태 관리: NotifierProvider는 동기적으로 상태를 관리합니다. 상태를 읽거나 업데이트할 때마다 앱이 자동으로 업데이트됩니다.간단한 API: 기존 StateNotifie.. 2024. 8. 6. [Flutter] Riverpod 뽀개기 (2) 이전 글에서는 Riverpod의 소개와 Provider의 종류를 소개해보았는데요, 이번 글에서는 Riverpod에서 Provider를 사용하는 방법부터 설명까지 소개해보겠습니다.WidgetRefProvider를 생성하거나, Provider에 접근할 떄에는 모두 WidgerRef 값이 필요합니다.아래 예시를 통해 알아보겠습니다. 예시에서는 Notifier 에서 초기값을 0으로 설정하고, increment 함수를 통해 state를 변화시키고 있습니다.이제 선언을 했다면 버튼 같은 상호작용을 통해 메서드를 호출해야겠죠?그런데 이렇게 Provider에 접근을 할려면 WidgetRef가 필요합니다. 아래는 WidgetRef 클래스에 대한 정의입니다.사진을 보시면 많은 메서드 들이 있는데요, 많이 사용하게될 4가지.. 2024. 8. 5. [Flutter] Riverpod 뽀개기 (1) 앞의 글에서 상태관리의 필요성에 대해 알아보았는데 이번에는 그 중에서 Riverpod에 대해 알아보겠습니다.Riverpod 반응형 캐싱 및 데이터 바인딩 프레임워크입니다.Riverpod는 비동기 코드로 작업하는 것을 쉬운 일로 만듭니다. 공식페이지에 접속하면 위 두 2문장으로 Riverpod을 소개하고있습니다. 하지만 Riverpod이전에 Provider가 존재합니다. 사용하기 쉽고 pub.dev에서 굉장히 사랑받고 있지만 이 Provider에도 근본적인 문제가 있습니다.그래서 개발팀은 아래의 문제점 들을 제시하였고, 이 문제들을 해결한 Riverpod이라는 새로운 프레임워크를 개발하였습니다.문제점• 공급자가 동일한 유형의 두 개 이상의 공급자를 유지할 수 없습니다.• 공급자는 한 번에 하나의 값만 배출.. 2024. 8. 1. [Dart] Stream 뽀개기 이번 글에서는 Dart의 Stream에 대해 알아보겠습니다.우선 Stream을 다루기 전에 비동기 프로그래밍에 대해 간단히 소개하고 넘어가겠습니다.비동기 프로그래밍특정 작업이 완료될 때까지 프로그램의 실행을 중지하지 않고 다른 작업을 계속 진행할 수 있도록 하는 프로그래밍 패러다임 아래 예시를 통해 예시를 들어보겠습니다.기존에는 First, Second, Third 이렇게 3가지가 순서대로 출력되어야 합니다.하지만 위 코드에서는 1초 뒤에 Second가 출력되도록 하였는데, 이렇게 작성을 해도 코드가 중지되지 않고 콘솔에서는 1초 뒤에 Second라는 결과가 출력됩니다. 이렇게 비동기 프로그래밍을 이용하면 작업을 중지시키지 않고 다른 작업을 진행시킬 수 있습니다. 비동기 프로그래밍에 대한 소개를 마쳤으니.. 2024. 7. 31. [Dart] sealed class 뽀개기 이 글은 중고나라 기술 블로그의 글을 참고하여 작성하게 되었습니다. 우선 저 같은 경우에는 게시글의 목록을 보여주는 화면을 생성하는데, 각각의 페이지에서 다루는 게시글의 타입이 다르지만 보여주는 형태는 비슷했습니다. 하지만 타입이 다르다고 각각의 타입에 따라 위젯을 그리는 것은 비효율적이라고 생각하고 있었는데 중고나라 기술 블로그를 보고 도움이 되어서 정리해보려고 합니다. Selaed ClassDart 3.0 에 추가된 새로운 기능으로 Sealed Class 가 나왔습니다.TypeScript의 union types를 대체할 수 있는거같은데요, 같은 성질을 지니는 유형을 생성하고 해당 유형의 멤버를 생성할 수 있습니다. sealed class를 사용하면 아래의 이점을 얻을 수 있습니다.- 무분별한 클래스.. 2024. 7. 30. [Flutter] 상태관리의 필요성 상태관리(State Management)란?먼저 상태(State)는 위젯이 활성화되고 데이터를 메모리에 저장한 것입니다. 쉽게 말해 상태는 데이터입니다. 아래 화면에서 필요한 데이터를 나열 해봅시다. Flutter의 상태관리Flutter와 같은 선언형 프레임워크는 UI를 변경하기 위해서 위젯을 다시 빌드 해야 합니다. 명령형 UI 처럼 외부에서 메서드를 호출해 위젯을 강제로 변경하는 것이 어렵습니다. 그렇다면 Flutter에서 어떻게 새로운 상태로 위젯을 업데이트 하는지 간단히 알아봅시다.먼저 createState()를 호출해 상태를 별도의 State 클래스에 저장합니다. 상태를 수정해야 할 경우에 setState()를 호출하면 build()가 호출되면서 수정된 상태로 UI가 다시 그려집니다. 그리고 .. 2024. 7. 30. 이전 1 2 3 4 다음