[flutter] 플러터 훅 위젯을 활용한 테마 변경 방법

플러터 앱에서 테마는 사용자 경험에 큰 영향을 미치는 중요한 부분입니다. 사용자에게 어두운 또는 밝은 모드를 선택할 수 있는 옵션을 제공하는 것은 극히 중요합니다. 이번에는 flutter_hooks 패키지를 사용하여 간단한 방법으로 앱의 테마를 변경하는 방법을 알아보겠습니다.

기존 테마 설정

우선, MaterialApp 위젯에서 기본 테마를 설정합니다.

return MaterialApp(
  theme: ThemeData.light(), // 밝은 모드
  darkTheme: ThemeData.dark(), // 어두운 모드
  themeMode: themeMode, // 사용자가 선택한 모드에 따라 테마 모드 설정
  home: MyHomePage(),
);

훅을 활용한 테마 변경

이제 flutter_hooks 패키지를 사용하여 테마를 변경합니다. useTheme 훅을 사용하여 현재 테마 정보를 가져올 수 있습니다.

ThemeData theme = useTheme();

이제 이 theme을 사용하여 앱 전체적으로 적용합니다.

return MaterialApp(
  theme: theme,
  home: MyHomePage(),
);

그런 다음 사용자가 선택한 모드에 따라 테마를 업데이트하는 함수를 만듭니다.

void _updateTheme(bool isDarkMode) {
  if (isDarkMode) {
    // 어두운 테마로 변경
    ThemeManager.setTheme(ThemeData.dark());
  } else {
    // 밝은 테마로 변경
    ThemeManager.setTheme(ThemeData.light());
  }
}

마치며

이제 flutter_hooks 패키지를 사용하여 간단하게 앱의 테마를 변경하는 방법을 살펴보았습니다. 사용자에게 어두운 모드와 밝은 모드를 선택할 수 있도록 옵션을 제공함으로써 사용자의 선호에 맞는 테마를 선택할 수 있습니다.

Reference: