Flutter 게시판 앱 만들기 — TextField와 Form으로 완성하는 입력 폼

2025. 5. 20. 17:47·Flutter/Flutter 게시판 앱 만들기
728x90
반응형

이제 우리가 만들 게시판 앱에 글을 쓸 수 있는 기능을 더해보자.
Flutter에서는 TextField와 Form 위젯을 이용해 사용자의 입력을 받을 수 있다.

이번 글에서는 제목과 내용을 입력할 수 있는 폼을 만들고,
유효성 검사(Validation)까지 구현해보자.


🧾 입력 폼 구성하기

우선 입력창을 만들기 위한 TextEditingController를 준비하자:

final _titleController = TextEditingController();
final _contentController = TextEditingController();

다음은 전체 글쓰기 화면 예시이다:

class WritePostScreen extends StatefulWidget {
  @override
  _WritePostScreenState createState() => _WritePostScreenState();
}

class _WritePostScreenState extends State<WritePostScreen> {
  final _formKey = GlobalKey<FormState>();
  final _titleController = TextEditingController();
  final _contentController = TextEditingController();

  void _submitPost() {
    if (_formKey.currentState!.validate()) {
      final title = _titleController.text;
      final content = _contentController.text;

      // 저장 로직은 이후 구현
      print('제목: $title');
      print('내용: $content');

      Navigator.pop(context); // 저장 후 돌아가기
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('글쓰기')),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Form(
          key: _formKey,
          child: Column(
            children: [
              TextFormField(
                controller: _titleController,
                decoration: InputDecoration(labelText: '제목'),
                validator: (value) {
                  if (value == null || value.isEmpty) {
                    return '제목을 입력해주세요';
                  }
                  return null;
                },
              ),
              SizedBox(height: 12),
              TextFormField(
                controller: _contentController,
                decoration: InputDecoration(labelText: '내용'),
                maxLines: 5,
                validator: (value) {
                  if (value == null || value.isEmpty) {
                    return '내용을 입력해주세요';
                  }
                  return null;
                },
              ),
              SizedBox(height: 20),
              ElevatedButton(
                onPressed: _submitPost,
                child: Text('등록하기'),
              )
            ],
          ),
        ),
      ),
    );
  }
}

이 폼은 제목과 내용을 검사해서 입력이 없을 경우 에러 메시지를 띄우고,
입력이 완료되면 저장 처리 후 뒤로 돌아가는 구조야.


📌 주요 개념 요약

  • TextEditingController: 입력값을 제어하는 도구
  • Form & GlobalKey: 전체 폼의 상태를 추적
  • validator: 각 필드에 유효성 검사 적용

Flutter에서는 이 구조를 이용해 거의 모든 입력 폼을 깔끔하게 구현할 수 있다.


🌱 다음 단계

다음 글에서는 글 작성 후 작성된 내용을 리스트에 반영하고,
앱에 저장하는 기능까지 구현해보자. (SharedPreferences 혹은 Firebase)

이제 게시판에 글을 '진짜로' 남길 수 있는 준비가 되었다!

✍️ 이 글은 터미널 밖으로 나온 개발자의 Flutter 앱 만들기 여정입니다.

 

728x90
반응형

'Flutter > Flutter 게시판 앱 만들기' 카테고리의 다른 글

Flutter 게시판 앱 만들기 — 게시글 수정 & 삭제 기능 추가하기  (0) 2025.05.21
Flutter 게시판 앱 만들기 — 상태 관리와 SharedPreferences 적용하기  (0) 2025.05.21
Flutter 게시판 앱 만들기 — 감성을 더한 부드러운 움직임 만들기  (0) 2025.05.20
Flutter 게시판 앱 만들기 — Navigator 완전 정복 🌈  (0) 2025.05.20
Flutter 게시판 앱 만들기 — 반복되는 위젯을 더 똑똑하게 그리는 법  (0) 2025.05.20
'Flutter/Flutter 게시판 앱 만들기' 카테고리의 다른 글
  • Flutter 게시판 앱 만들기 — 게시글 수정 & 삭제 기능 추가하기
  • Flutter 게시판 앱 만들기 — 상태 관리와 SharedPreferences 적용하기
  • Flutter 게시판 앱 만들기 — 감성을 더한 부드러운 움직임 만들기
  • Flutter 게시판 앱 만들기 — Navigator 완전 정복 🌈
코드를 걷는 사람
코드를 걷는 사람
devwanderer 님의 블로그 입니다.
  • 코드를 걷는 사람
    터미널 밖으로 나온 개발자
    코드를 걷는 사람
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Flutter
        • Flutter 게시판 앱 만들기
        • Flutter 뉴스 앱 만들기
        • Flutter 메모 앱 만들기
        • Flutter 캘린더 앱 만들기
        • Flutter 날씨 앱 만들기
      • Next.js
      • Ruby On Rails
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    캘린더앱
    flutter앱개발
    뉴스앱
    UI디자인
    RubyOnRails
    flutter게시판
    UIUX
    개발블로그
    flutter개발
    flutter디자인
    코드를걷는사람
    rails보안
    openweather
    flutterui
    Firebase
    날씨앱
    모바일앱개발
    정적사이트
    메모앱
    다크모드
    Flutter
    ActiveRecord
    Nextjs
    북마크기능
    table_calendar
    flutter상태관리
    flutter기초
    백엔드개발
    감성앱
    fluttertips
  • 최근 댓글

  • 최근 글

  • 반응형
    250x250
  • hELLO· Designed By정상우.v4.10.3
코드를 걷는 사람
Flutter 게시판 앱 만들기 — TextField와 Form으로 완성하는 입력 폼
상단으로

티스토리툴바