[flutter] 플러터에서 useTheme 훅(hook)을 이용한 테마 스위칭

플러터(Flutter) 앱을 개발할 때 앱의 테마를 동적으로 변경하는 것은 사용자 경험을 향상시키는 데 중요합니다. 테마를 변경하는 가장 간단한 방법 중 하나는 useTheme 훅을 사용하여 테마 스위칭을 구현하는 것입니다. 이 기능을 통해 앱 사용자는 테마를 자유롭게 변경하여 앱을 더 맞춤화하거나 시각적으로 흥미로운 경험을 할 수 있습니다.

테마 스위칭 기능 구현하기

먼저, 플러터에서 제공하는 useTheme 훅을 이용하여 테마 스위칭 기능을 구현해보겠습니다.

import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends HookWidget {
  @override
  Widget build(BuildContext context) {
    final isDarkTheme = useState(false);

    return MaterialApp(
      theme: isDarkTheme.value ? ThemeData.dark() : ThemeData.light(),
      home: Scaffold(
        appBar: AppBar(
          title: Text('테마 스위칭 테스트'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Switch(
                value: isDarkTheme.value,
                onChanged: (newValue) {
                  isDarkTheme.value = newValue;
                },
              ),
              Text(
                isDarkTheme.value ? '다크 모드' : '라이트 모드',
              ),
            ],
          ),
        ),
      ),
    );
  }
}

위 코드에서 useState 훅을 사용하여 isDarkTheme 변수를 선언하고, 해당 상태를 토글할 수 있는 Switch 위젯을 구현했습니다. 사용자가 스위치를 조작하면 isDarkTheme 상태가 변경되어 앱의 테마가 동적으로 변경됩니다.

마치며

플러터의 useTheme 훅은 테마 스위칭을 간편하게 구현할 수 있는 강력한 도구입니다. 사용자가 선호하는 테마를 선택할 수 있는 기능을 제공함으로써, 앱의 사용자들에게 더 나은 경험을 제공할 수 있습니다.

더 많은 정보를 원하시면 공식 플러터 문서를 참고하세요!