개발/Android 6

[Flutter] Riverpod 상태관리 - ConsumerStatefulWidget 가이드

✅ ConsumerStatefulWidget을 사용해야 하는 경우ConsumerStatefulWidget은 setState()와 Riverpod 상태 관리를 동시에 사용해야 할 때 필요하다.예를 들어, 사용자가 버튼을 클릭할 때마다 UI가 변경되지만, 추가적인 상태(예: 애니메이션 컨트롤러, 텍스트 필드 입력 등)도 관리해야 할 경우 ConsumerStatefulWidget을 사용하면 적절하다.🛠 ConsumerStatefulWidget 예제 코드 (텍스트 필드 + 상태 관리)import 'package:flutter/material.dart';import 'package:flutter_riverpod/flutter_riverpod.dart';/// 상태 관리 (카운터)class CounterNotif..

개발/Android 2025.04.02

[Flutter] Riverpod 상태관리 - watch vs read 차이

Riverpod watch vs read 차이와 UI 빌드 영향 분석🔍 watch vs read 차이watch (ref.watch)ref.watch(provider)를 사용하면 해당 provider의 값이 변경될 때마다 UI가 자동으로 리빌드됨.주로 UI에 실시간으로 반영해야 하는 상태 값을 구독할 때 사용.read (ref.read)ref.read(provider)는 현재 상태 값만 한 번 읽고 끝.이후 provider 값이 변경되더라도 UI가 리빌드되지 않음.주로 이벤트 기반 로직 (ex. 버튼 클릭 시 상태 변경)에서 사용.사용 방식 리빌드 여부 설명ref.watch(provider)✅ 리빌드됨provider의 값이 변경될 때마다 UI가 다시 빌드됨. (자동 감지)ref.read(provider)..

개발/Android 2025.04.02

[Flutter] Riverpod 상태관리 - ConsumerWidget 가이드

🔍 ConsumerWidget이란?ConsumerWidget은 flutter_riverpod에서 제공하는 위젯으로, Consumer와 동일한 역할을 하지만 더 간결한 코드 작성을 가능하게 한다.Consumer vs ConsumerWidget ConsumerConsumerWidget사용 방식Consumer(builder: (context, ref, child) {...})build 메서드에서 ref.watch 사용 가능코드 구조StatelessWidget + Consumer 조합 필요StatelessWidget을 대체하여 더 간결함위젯 성능특정 부분만 리빌드 가능특정 부분만 리빌드 가능추천 사용처위젯의 특정 부분만 ref.watch가 필요할 때전체 위젯에서 ref.watch를 사용할 때 1. Consum..

개발/Android 2025.04.02

[Flutter] 간단한 ToDo앱에서 MethodChannel 응용

Flutter 앱과 안드로이드 네이티브 코드(Kotlin) 간의 통신을 위한 플러그인(Platform Channel) 구현 코드📌 주요 역할Flutter에서 보낸 메소드 호출(Method Call) 을 안드로이드 네이티브에서 처리할 일 목록(To-Do List)을 저장하고 불러오는 기능 제공SharedPreferences를 이용해 데이터를 저장 및 관리📂 코드 상세 설명1. 기본 클래스 및 변수 선언class MainActivity : FlutterActivity() { private val CHANNEL_NAME = "com.example.to_do_list/task_channel" private val TAG = "MainActivity"MainActivity는 FlutterActivi..

개발/Android 2025.03.10

[Flutter] MethodChannel이란 ?

Flutter에서 MethodChannel은 Flutter와 네이티브 플랫폼(Android, iOS) 간에 데이터와 메서드를 주고받는 데 사용됩니다. 이를 통해 Flutter 앱 내에서 네이티브 코드(예: Java, Kotlin, Objective-C, Swift)와 상호작용할 수 있습니다. MethodChannel을 사용하면 Flutter와 네이티브 간에 기능을 확장하거나 네이티브 API를 활용할 수 있습니다.1. MethodChannel이란?MethodChannel은 Flutter와 네이티브 플랫폼 간에 메서드 호출과 결과를 전달하는 채널입니다.Flutter에서는 MethodChannel을 사용하여 네이티브 코드에 메서드를 호출하거나 네이티브 코드에서 결과를 Flutter로 반환할 수 있습니다.2. ..

개발/Android 2025.03.10

[Flutter] Riverpod 상태관리 라이브러리

Riverpod 개요Riverpod는 기존 Provider 패키지의 한계를 보완하여 더욱 유연하고 안정적인 상태 관리를 제공하는 라이브러리이다.컴파일 타임에 오류를 감지할 수 있어, 개발 중 발생할 수 있는 실수를 줄일 수 있으며, 반응형 패러다임을 기반으로 한다.특징Riverpod는 다음과 같은 핵심 개념을 기반으로 동작한다.Providers: 데이터의 원본을 선언하는 역할을 한다.Consumers: Provider를 구독하여 데이터의 변경 사항에 따라 UI를 재구성한다.Notifiers: Provider의 상태를 업데이트하는 역할을 한다.또한, 내부적으로 스트림을 활용하여 Provider의 상태 변화가 발생하면 자동으로 Consumer가 업데이트된다.기존 Provider보다 타입 안정성이 향상되었으며..

개발/Android 2025.02.20