[flutter] Flutter Riverpod에서 인물 관계도 앱 만들기

Riverpod은 Flutter 애플리케이션에서 상태 관리와 의존성 관리를 위한 강력한 툴입니다. 이번 블로그 포스트에서는 Riverpod를 사용하여 Flutter 앱에서 인물 관계도를 시각적으로 표현하는 간단한 애플리케이션을 만들어보겠습니다.

목차

  1. Riverpod 소개
  2. 프로젝트 설정
  3. 데이터 모델 정의
  4. 인물 관계도 시각화
  5. 완성된 앱 실행

1. Riverpod 소개

Riverpod는 Provider 패키지의 개선된 버전으로, Flutter 앱에서 상태 관리 및 의존성 관리를 효율적으로 수행할 수 있도록 도와줍니다. Riverpod는 Provider보다 더 효율적이며 가독성 높은 코드를 작성할 수 있도록 도와줍니다.

2. 프로젝트 설정

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

dependencies:
  flutter:
    sdk: flutter
  riverpod: ^1.0.3

프로젝트를 업데이트 한 후, Riverpod를 초기화하고 사용할 준비를 합니다.

3. 데이터 모델 정의

우리의 인물 관계도 앱을 만들기 전에, 데이터 모델을 정의해야 합니다. Person 클래스를 만들어 각각의 인물에 대한 정보를 저장합니다.

class Person {
  final String name;
  final List<Person> friends;

  Person({required this.name, this.friends = const []});
}

4. 인물 관계도 시각화

Riverpod를 사용하여 인물 관계도를 시각적으로 표현하는 기능을 구현합니다. 그래프 라이브러리를 이용하여 인물 간의 관계를 시각적으로 표현할 수 있습니다.

final peopleProvider = Provider<List<Person>>((ref) {
  // 인물 데이터를 불러오는 비동기 동작
});

final selectedPerson = StateProvider<Person?>((ref) => null);

class RelationshipGraph extends ConsumerWidget {
  @override
  Widget build(BuildContext context, ScopedReader watch) {
    final people = watch(peopleProvider);
    final person = watch(selectedPerson);

    // 관계도 그래프 생성 및 표시

    return RelationshipGraphWidget(people: people, selectedPerson: person);
  }
}

5. 완성된 앱 실행

위의 코드를 구현하고 나면, 최종적으로 레이아웃과 상태 관리가 정상적으로 동작하는 인물 관계도 앱을 실행할 수 있습니다. 사용자는 각각의 인물을 선택하고, 해당 인물과의 관계를 시각적으로 확인할 수 있게 됩니다.

이렇게 Riverpod를 사용하여 Flutter 앱에서 인물 관계도를 구현할 수 있습니다. Riverpod를 통해 상태 관리와 의존성 관리를 깔끔하게 처리하면서, 보다 유지보수가 쉬운 코드를 작성할 수 있습니다.

참고 자료