플러터에서는 커퍼티노 디자인을 적용하여 iOS 스타일의 위젯을 구현할 수 있습니다. 이번에는 커퍼티노 스테퍼를 이용하여 노래 가사의 크기를 조절하는 기능을 구현해 보겠습니다.
커퍼티노 스테퍼란?
커퍼티노 스테퍼는 iOS에서 제공하는 스테퍼 위젯으로, 숫자 값을 증감시키는 버튼을 포함한 UI를 갖추고 있습니다. 사용자가 버튼을 누르면 설정된 값이 변경되는 역할을 합니다.
프로젝트 설정
플러터 프로젝트를 생성하고, cupertino_icons
패키지를 pubspec.yaml
파일에 추가합니다.
$ flutter create lyrics_app
$ cd lyrics_app
pubspec.yaml
:
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^1.0.3
pubspec.lock
파일은 자동으로 생성됩니다. 이후 패키지를 가져오기 위해 다음 명령어를 실행합니다.
$ flutter pub get
노래 가사 화면 구현
lib/main.dart
파일을 열고, MaterialApp
위젯을 CupertinoApp
위젯으로 변경합니다. CupertinoApp
은 커퍼티노 디자인을 적용하는 기본 앱 위젯입니다.
import 'package:flutter/cupertino.dart';
void main() {
runApp(LyricsApp());
}
class LyricsApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return CupertinoApp(
title: 'Lyrics App',
home: HomePage(),
);
}
}
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return CupertinoPageScaffold(
navigationBar: CupertinoNavigationBar(
middle: Text('Lyrics App'),
),
child: Center(
child: Text(
'Lyrics',
style: CupertinoTheme.of(context).textTheme.navLargeTitleTextStyle,
),
),
);
}
}
위 코드에서는 CupertinoApp
으로 앱의 기본 위젯을 설정하고, CupertinoPageScaffold
를 사용하여 노래 가사를 표시하는 화면을 구성합니다. 여기서는 Text
위젯을 사용하여 “Lyrics”라는 텍스트를 화면 가운데에 표시합니다.
가사 크기 조절 기능 추가
이제 CupertinoPageScaffold
위젯의 child
에 커퍼티노 스테퍼를 추가하여 가사 크기를 조절할 수 있는 기능을 구현해 보겠습니다.
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
double lyricSize = 16.0;
@override
Widget build(BuildContext context) {
return CupertinoPageScaffold(
navigationBar: CupertinoNavigationBar(
middle: Text('Lyrics App'),
),
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'Lyrics',
style: TextStyle(fontSize: lyricSize),
),
SizedBox(height: 16.0),
CupertinoSlider(
value: lyricSize,
min: 12.0,
max: 30.0,
divisions: 18,
onChanged: (newValue) {
setState(() {
lyricSize = newValue;
});
},
),
],
),
),
);
}
}
위 코드에서는 lyricSize
라는 변수를 사용하여 가사의 크기를 관리합니다. CupertinoSlider
를 사용하여 사용자가 가사 크기를 변경할 수 있도록 합니다. CupertinoSlider
위젯의 onChanged
콜백에서 setState
함수를 호출하여 lyricSize
값을 변경하고 화면을 다시 그리도록 합니다.
Column
위젯을 사용하여 가사 텍스트와 슬라이더를 수직으로 정렬하였으며, SizedBox
를 사용하여 가사 텍스트와 슬라이더 사이의 간격을 지정하였습니다.
실행 및 테스트
터미널에서 다음 명령어를 실행하여 앱을 실행합니다.
$ flutter run
시뮬레이터나 디바이스에서 앱이 실행되면 노래 가사가 표시되고 슬라이더를 조절하여 가사 크기를 변경할 수 있습니다.
결론
이번 포스트에서는 플러터의 커퍼티노 스테퍼를 이용하여 노래 가사의 크기를 조절하는 기능을 구현하는 방법을 알아보았습니다. 커퍼티노 디자인을 적용하여 iOS 스타일의 UI를 만들 수 있다는 점을 기억해 두세요. 플러터를 사용하여 멋진 앱을 개발하는 데 도움이 되길 바랍니다.