[flutter] 플러터 TimePicker의 시각 장애인 지원 기능

시각 장애인을 위한 애플리케이션을 개발할 때는 사용자 경험을 최우선으로 고려해야 합니다. 이를 위해 Flutter 프레임워크의 TimePicker 위젯을 시각 장애인에게 친화적으로 수정하여야 합니다. 이 글에서는 플러터 TimePicker가 시각 장애인을 위한 어떠한 지원 기능을 제공할 수 있는지 알아보겠습니다.

1. 음성 출력 지원

시각 장애인은 시각적인 정보를 구할 수 없기 때문에 음성 출력 기능이 필요합니다. TimePicker에서 시간을 선택하거나 조작할 때, 선택된 시간을 음성으로 알려주는 기능을 추가할 수 있습니다.

아래는 Flutter에서 음성 출력을 위한 TTS(Text-to-Speech) 패키지 예제 코드입니다.

import 'package:flutter_tts/flutter_tts.dart';

void speakTime(DateTime time) {
  FlutterTts tts = FlutterTts();
  tts.speak('선택된 시간은 ${time.hour}${time.minute}분입니다.');
}

TimePicker에서 시간이 변경될 때마다 speakTime 함수를 호출하여 음성으로 선택된 시간을 출력할 수 있습니다.

2. 진동 피드백 지원

진동 피드백은 시각 장애인이 터치나 버튼을 조작할 때 물리적인 피드백을 제공하여 조작 결과를 알려줍니다. TimePicker에서 시간을 선택하거나 조작할 때, 진동을 통해 사용자에게 시간 변경이 반영되었음을 알려줄 수 있습니다.

아래는 Flutter에서 진동 제어를 위한 vibration 패키지 예제 코드입니다.

import 'package:vibration/vibration.dart';

void vibrateFeedback() async {
  if (await Vibration.hasVibrator()) {
    Vibration.vibrate(duration: 100);
  }
}

TimePicker에서 시간이 변경될 때마다 vibrateFeedback 함수를 호출하여 진동을 실행시킬 수 있습니다.

3. 텍스트 크기 조절 기능

시각 장애인은 작은 텍스트를 읽는 데 어려움을 겪을 수 있습니다. TimePicker에서 선택할 수 있는 시간을 나타내는 텍스트의 크기를 조절하여 시각 장애인이 쉽게 읽을 수 있도록 도움을 줄 수 있습니다.

Flutter에서는 TextStyle 클래스를 사용하여 텍스트 스타일을 설정할 수 있습니다. 아래는 TimePicker에서 텍스트 크기를 조절하는 예제 코드입니다.

TextStyle _getTimeTextStyle() {
  return TextStyle(fontSize: 20.0);
}

void showTimePicker() {
  DateTime selectedTime = await showTimePicker(
    context: context,
    initialTime: TimeOfDay.now(),
    builder: (BuildContext context, Widget child) {
      return MediaQuery(
        data: MediaQuery.of(context).copyWith(textScaleFactor: 1.2),
        child: child,
      );
    },
    helpText: '시간 선택',
    cancelText: '취소',
    confirmText: '확인',
    initialEntryMode: TimePickerEntryMode.input,
    initialTimerDuration: Duration(seconds: 0),
  );
}

위 예제 코드에서 showTimePicker 함수 내부에서 MediaQuery를 사용하여 textScaleFactor를 조정함으로써 텍스트 크기를 변경할 수 있습니다.

결론

위에서 살펴본 시각 장애인을 위한 플러터 TimePicker 지원 기능은 시각적인 정보를 대체하여 사용자가 시간을 선택하고 조작하는 데 필요한 피드백을 제공합니다. 이러한 기능을 통해 시각 장애인 뿐만 아니라 모든 사용자가 플러터 애플리케이션을 쉽게 이용할 수 있도록 도와줄 수 있습니다.