[flutter] 플러터에서 훅(hook)을 사용해 로그인 상태 관리하기

플러터(Flutter) 앱을 개발할 때 로그인 상태를 관리하는 것은 매우 중요합니다. 훅(hook)을 사용하여 상태 관리를 수행하면 코드를 간결하게 유지하면서도 효율적으로 상태를 관리할 수 있습니다.

이 포스트에서는 flutter_hooks 패키지를 사용하여 플러터 앱의 로그인 상태를 관리하는 방법에 대해 알아보겠습니다.

1. flutter_hooks 패키지 설치하기

먼저, flutter_hooks 패키지를 사용하기 위해 pubspec.yaml 파일에 의존성을 추가합니다.

dependencies:
  flutter:
    sdk: flutter
  flutter_hooks: ^0.18.0

의존성을 추가한 후에는 터미널에서 flutter pub get 명령을 실행하여 패키지를 설치합니다.

2. useProvider로 로그인 상태 관리하기

flutter_hooks 패키지를 사용하면 useProvider 훅을 통해 전역 상태를 관리할 수 있습니다. 아래는 간단한 예제 코드입니다.

import 'package:flutter_hooks/flutter_hooks.dart';

final loggedUserProvider = StateProvider<String>((ref) => null);

Widget MyWidget() {
  final loggedUser = useProvider(loggedUserProvider).state;
  
  if(loggedUser == null) {
    return LoginScreen();
  } else {
    return HomeScreen();
  }
}

위 코드에서 loggedUserProvider는 현재 로그인한 사용자를 상태로 갖습니다. useProvider를 사용하여 이를 감지하고 상태에 따라 로그인 화면 또는 홈 화면을 반환합니다.

3. 상태 업데이트하기

loggedUserProvider의 상태를 업데이트하는 방법은 다양합니다. 예를 들어, 사용자가 로그인을 성공하면 다음과 같이 상태를 업데이트할 수 있습니다.

final loggedUserProvider = StateProvider<String>((ref) => null);

void login(String username) {
  // 사용자 로그인 처리 로직
  
  // 로그인에 성공하면 상태 업데이트
  loggedUserProvider.state = username;
}

마무리

이제 을 통해 flutter_hooks 패키지를 사용하여 플러터 앱의 로그인 상태를 관리하는 방법에 대해 알아보았습니다. 을 사용하면 상태 관리를 간편하게 처리할 수 있고, 코드의 가독성을 향상시킬 수 있습니다. 앱의 규모가 커지더라도 코드를 효율적으로 유지할 수 있습니다.

더 많은 정보를 원하시면 flutter_hooks 패키지 공식 문서를 참고하시기 바랍니다.