VelocityX는 flutter 앱을 빠르게 작성할 수 있는 확장 라이브러리로, flutter 앱의 UI 레이아웃 및 기능을 간단하게 작성할 수 있도록 도와줍니다.
이 포스트에서는 VelocityX를 사용하여 flutter 앱에서 폼 유효성 검사 기능을 구현하는 방법을 다룰 것입니다.
1. VelocityX 및 폼 유효성 검사 라이브러리 추가
우선, flutter 프로젝트의 pubspec.yaml
파일 내에 다음과 같이 VelocityX 및 폼 유효성 검사에 사용할 라이브러리를 추가합니다.
dependencies:
flutter:
sdk: flutter
flutter_velocity_x: ^4.0.0
flutter_form_builder: ^7.0.0
이후에는 flutter pub get
명령을 실행하여 이 변경 사항을 반영합니다.
2. 폼 및 유효성 검사 로직 작성
다음으로, flutter 앱의 폼 및 해당 폼 필드의 유효성을 검사하는 로직을 작성해야 합니다. 이 과정에서 VelocityX와 flutter_form_builder를 활용하여 간편하게 작성할 수 있습니다.
import 'package:flutter/material.dart';
import 'package:flutter_velocity_x/flutter_velocity_x.dart';
import 'package:flutter_form_builder/flutter_form_builder.dart';
class MyFormWidget extends StatelessWidget {
final GlobalKey<FormBuilderState> _formKey = GlobalKey<FormBuilderState>();
@override
Widget build(BuildContext context) {
return VelocityX.m5.child(
FormBuilder(
key: _formKey,
autovalidateMode: AutovalidateMode.onUserInteraction,
child: Column(
children: <Widget>[
FormBuilderTextField(
name: 'username',
decoration: InputDecoration(labelText: 'Username'),
validator: FormBuilderValidators.required(context,
errorText: 'Username is required'),
),
FormBuilderTextField(
name: 'password',
decoration: InputDecoration(labelText: 'Password'),
validator: FormBuilderValidators.required(context,
errorText: 'Password is required'),
),
VelocityX.mt4,
ElevatedButton(
onPressed: () {
if (_formKey.currentState!.saveAndValidate()) {
// 유효성 검사 통과 시 처리 로직
}
},
child: 'Submit'.text.make(),
),
],
),
),
);
}
}
구현된 폼 위젯 내에는 사용자 이름과 비밀번호를 입력하는 두 개의 폼 필드가 포함되어 있습니다. 또한, 제출 버튼을 눌렀을 때 유효성 검사를 수행하고, 통과했을 경우 처리 로직을 수행하는 코드 또한 포함되어 있습니다.
3. 유효성 검사 결과 표시
유효성 검사 결과에 따라 사용자에게 적절한 메시지를 표시해야 합니다. 이를 위해 flutter의 SnackBar
나 경고 다이얼로그를 사용할 수 있습니다. 여기서는 SnackBar
를 사용하는 예제를 제시합니다.
if (_formKey.currentState!.saveAndValidate()) {
// 유효성 검사 통과 시 처리 로직
} else {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: '유효하지 않은 값이 있습니다.'.text.make(),
),
);
}
위 코드에서는 만약 유효성 검사에 실패했을 경우, ScaffoldMessenger
를 통해 SnackBar
를 표시하여 사용자에게 메시지를 전달합니다.
이렇게 하여 VelocityX를 활용하여 flutter 앱의 폼 유효성 검사 기능을 간단하게 구현할 수 있습니다. VelocityX의 간결한 구문과 flutter_form_builder의 폼 관련 편의 기능을 통해, 앱 개발 과정을 더욱 빠르고 즐겁게 진행할 수 있습니다.
참고 문헌:
- https://pub.dev/packages/flutter_velocity_x
- https://pub.dev/packages/flutter_form_builder