Flutter 캠프 31일차

은성·2026년 1월 8일

Flutter 본캠프

목록 보기
33/57
post-thumbnail

모닝 스터디

Riverpod

  • 용도 : 상태 관리

사용법

  • 상태 클래스 만들기
  • 뷰모델 만들기
  • 뷰모델 관리자 만들기

이전 버전과 변동사항

  • 이전 버전에서는 뷰모델의 종류가 다양
    • Notifier : 기본 뷰모델. 한번 사용되면 앱이 종료될 때까지 유지됨
    • AutoDisposeNotifier : 한번 사용되고 더 이상 사용되지 않을 때 메모리에서 제거
    • FamilyNotifier : Notifier와 동일하나 인자(아규먼트) 받을 때 사용
    • AutoDisposeFamilyNotiFier : AutoDisposeNotifier + FamilyNotifier 의 결합체
    • ...
  • Notifier 클래스가 너무 많다
  • Notifier 하나만 쓰자
// 색상을 관리하는 뷰모델
class ColorState {
  Color color;
  ColorState(this.color);
}

class ColorViewModel extends Notifier<ColorState> {
  
  ColorState build() {
    return ColorState(Colors.yellow);
  }
}

// Notifier는 똑같음
final colorViewModel = NotifierProvider<ColorViewModel, ColorState>(() {
  return ColorViewModel();
});

// AutoDisposeNotifier
final colorViewModel2 = NotifierProvider<ColorViewModel, ColorState>(() {
  return ColorViewModel();
}, isAutoDispose: true);

//FamilyNotifier
class ColorViewModel2 extends Notifier<ColorState> {
  final String pageName;
  ColorViewModel2(this.pageName);

  
  ColorState build() {
    return ColorState(Colors.yellow);
  }
}

final colorViewModel3 =
    NotifierProvider.family<ColorViewModel2, ColorState, String>((String arg) {
      return ColorViewModel2(arg);
    }, isAutoDispose: true);
    // true 하면 AutoDisposeFamilyNotifier
    // false 하면 FamilyNotifier

갤러리 연동 (숙련 3-12)

image_picker

패키지 추가

  • flutter pub add image_picker
    파일에서 추가
  • 경로 : ios > Runner > info.plist
<dict>
  *****하단 영역에 입력하기******
	<key>NSPhotoLibraryUsageDescription</key>
	<String>사진 업로드를 위한 라이브러리 권한을 허용해 주세요</String>

0개의 댓글