[flutter] Flutter Riverpod에서 메모장 앱 만들기

이 블로그 포스트에서는 Flutter와 Riverpod을 사용하여 간단한 메모장 앱을 만드는 방법을 알아보겠습니다. Riverpod은 Flutter 애플리케이션의 상태 관리를 간편하게 해주는 툴입니다.

도입

메모장 앱은 기본적인 CRUD(Create, Read, Update, Delete) 기능을 제공해야 합니다. 우리는 Riverpod을 사용하여 이러한 기능을 구현할 것입니다.

프로젝트 설정

먼저, Flutter 프로젝트를 생성합니다. 그리고 riverpod 패키지를 pubspec.yaml 파일에 추가합니다.

dependencies:
  flutter:
    sdk: flutter
  riverpod: ^1.0.3

dependencies 블록 내에 위와 같이 riverpod 패키지를 추가한 후에 flutter pub get 명령어로 패키지를 설치합니다.

Provider 생성하기

다음으로는 Riverpod Provider를 생성하여 애플리케이션 전체에서 사용할 수 있는 상태를 관리합니다.

import 'package:flutter_riverpod/flutter_riverpod.dart';

final memoProvider = StateNotifierProvider<MemoNotifier, List<Memo>>((ref) {
  return MemoNotifier([]);
});

위의 코드는 memoProvider라는 Riverpod Provider를 생성하며, MemoNotifierList<Memo>을 기반으로 상태를 관리합니다. MemoNotifier는 CRUD 기능을 구현하고, List<Memo>은 메모 데이터를 저장합니다.

UI 구성

이제 UI를 설계하고, Provider로부터 데이터를 가져와서 UI에 표시합니다. 또한 사용자 입력에 따라 Provider를 통해 상태를 업데이트합니다.

final memoProvider = useProvider(memoProvider);

return ListView.builder(
  itemCount: memoProvider.length,
  itemBuilder: (context, index) {
    final memo = memoProvider[index];
    return ListTile(
      title: Text(memo.title),
      subtitle: Text(memo.content),
      onLongPress: () {
        context.read(memoProvider.notifier).deleteMemo(memo);
      },
    );
  },
);

위의 코드는 Riverpod Provider에서 데이터를 가져와서 ListView에 표시하는 예시입니다.

결론

이제 Riverpod을 사용하여 Flutter 메모장 앱을 만드는 방법을 알아보았습니다. Riverpod을 사용하면 상태 관리를 간편하게 할 수 있으며, UI와 비즈니스 로직을 분리하여 개발할 수 있습니다.

이상으로 Riverpod을 이용한 Flutter 메모장 앱 만들기에 대한 블로그 포스트를 마치겠습니다. 감사합니다.

참고 자료