[flutter] 플러터 커퍼티노 스테퍼를 이용한 사운드 녹음 감도 조절 기능 구현하기

플러터는 크로스 플랫폼 앱 개발 프레임워크로, 여러 가지 플랫폼에서 동작하는 앱을 쉽고 빠르게 개발할 수 있습니다. 이번 포스트에서는 플러터의 Cupertino 스타일 스테퍼 컴포넌트를 사용하여 사운드 녹음의 감도를 조절하는 기능을 구현하는 방법에 대해 알아보겠습니다.

1. Cupertino 스타일 스테퍼 컴포넌트란?

Cupertino 스타일 스테퍼 컴포넌트는 iOS에서 친숙한 스타일을 가지고 있으며, 터치 이벤트로 값을 조절할 수 있는 컴포넌트입니다. 이 컴포넌트를 사용하면 사운드 녹음의 감도를 조정하는 슬라이더를 쉽게 구현할 수 있습니다.

2. 플러터 프로젝트 생성하기

먼저, 플러터 프로젝트를 생성해야 합니다. 터미널에서 다음 명령어를 실행하여 프로젝트를 생성합니다.

flutter create sound_recorder

프로젝트가 생성되면 해당 디렉토리로 이동합니다.

cd sound_recorder

3. 의존성 추가하기

Cupertino 스타일 스테퍼 컴포넌트를 사용하기 위해 다음과 같이 cupertino_icons 패키지를 pubspec.yaml 파일에 추가합니다.

dependencies:
  flutter:
    sdk: flutter
  cupertino_icons: ^1.0.2

변경된 의존성을 적용하기 위해 다음 명령어를 실행합니다.

flutter pub get

4. 사운드 녹음 감도 조절 UI 구현하기

lib/main.dart 파일을 열고, 다음과 같이 코드를 작성합니다.

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:cupertino_icons/cupertino_icons.dart';

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

class SoundRecorderApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return CupertinoApp(
      home: SoundRecorderPage(),
    );
  }
}

class SoundRecorderPage extends StatefulWidget {
  @override
  _SoundRecorderPageState createState() => _SoundRecorderPageState();
}

class _SoundRecorderPageState extends State<SoundRecorderPage> {
  double _sensitivity = 0.5;

  @override
  Widget build(BuildContext context) {
    return CupertinoPageScaffold(
      navigationBar: CupertinoNavigationBar(
        middle: Text('플러터 사운드 녹음 감도 조절'),
      ),
      child: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Text(
              '감도 조절: ${(_sensitivity * 10).toInt()}',
              style: TextStyle(fontSize: 20),
            ),
            SizedBox(height: 16),
            CupertinoSlider(
              value: _sensitivity,
              min: 0.0,
              max: 1.0,
              onChanged: (value) {
                setState(() {
                  _sensitivity = value;
                });
              },
            ),
            SizedBox(height: 16),
            Icon(
              CupertinoIcons.speaker_1,
              size: 100.0 + (_sensitivity * 100),
            ),
          ],
        ),
      ),
    );
  }
}

위의 코드에서, _sensitivity 변수는 스테퍼 UI에서 사용될 감도 값을 저장하는 변수입니다. 스위치 컴포넌트의 onChanged 핸들러를 통해 _sensitivity 값을 업데이트 하며, 해당 값에 따라 Speaker 아이콘의 크기를 조절하도록 구현되어 있습니다.

5. 앱 실행하기

이제 플러터 프로젝트를 실행하여 결과를 확인할 수 있습니다. 터미널에서 다음 명령어를 실행합니다.

flutter run

이제 앱이 시뮬레이터나 연결된 기기에서 실행될 것입니다. 스테퍼를 조절하여 사운드 녹음의 감도를 변경해 보세요.

마무리

이번에는 플러터의 Cupertino 스타일 스테퍼 컴포넌트를 사용하여 사운드 녹음의 감도 조절 기능을 구현하는 방법에 대해 알아보았습니다. 이러한 방법을 응용하여 다양한 기능을 개발해보세요. 플러터의 다양한 컴포넌트를 활용하면 보다 풍부한 앱을 개발할 수 있습니다.

참고 자료