Flutter 게시판 앱 만들기 — 게시글 수정 & 삭제 기능 추가하기

2025. 5. 21. 16:09·Flutter/Flutter 게시판 앱 만들기
728x90
반응형

게시판의 기본은 ‘쓰기’지만, 그 다음은?
바로 수정과 삭제다.
이번 글에서는 작성된 게시글을 앱 내에서 수정하거나 삭제하는 기능을 구현해보자.


✏️ 수정 기능 구현

수정을 위해선 기존 글의 데이터를 TextEditingController에 불러오고,
사용자가 수정한 내용을 저장하면 된다.

PostProvider에 수정 메서드를 추가하자:

void updatePost(int index, Post updatedPost) {
  _posts[index] = updatedPost;
  notifyListeners();
  savePosts();
}

이제 EditPostScreen에서 다음과 같이 활용한다:

class EditPostScreen extends StatefulWidget {
  final int index;
  final Post post;

  const EditPostScreen({required this.index, required this.post, super.key});

  @override
  State<EditPostScreen> createState() => _EditPostScreenState();
}

class _EditPostScreenState extends State<EditPostScreen> {
  late TextEditingController _titleController;
  late TextEditingController _contentController;

  @override
  void initState() {
    super.initState();
    _titleController = TextEditingController(text: widget.post.title);
    _contentController = TextEditingController(text: widget.post.content);
  }

  void _submitEdit() {
    final updatedPost = Post(
      title: _titleController.text,
      content: _contentController.text,
    );

    context.read<PostProvider>().updatePost(widget.index, updatedPost);
    Navigator.pop(context);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('글 수정')),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          children: [
            TextField(controller: _titleController),
            SizedBox(height: 8),
            TextField(controller: _contentController, maxLines: 5),
            SizedBox(height: 20),
            ElevatedButton(onPressed: _submitEdit, child: Text('수정하기'))
          ],
        ),
      ),
    );
  }
}

🗑️ 삭제 기능 구현

삭제는 리스트에서 해당 인덱스를 제거하면 된다.

PostProvider에 deletePost() 추가:

void deletePost(int index) {
  _posts.removeAt(index);
  notifyListeners();
  savePosts();
}

글 상세보기 화면이나 리스트에서 다음과 같이 호출:

IconButton(
  icon: Icon(Icons.delete),
  onPressed: () {
    context.read<PostProvider>().deletePost(index);
    Navigator.pop(context);
  },
)

삭제 후에는 자동으로 리스트에 반영되며, 저장된 데이터도 갱신된다.


📌 UI 팁

  • 수정 버튼은 상세보기 화면에 AppBar action으로
  • 삭제 버튼은 IconButton으로 오른쪽 상단에 배치
  • 삭제 시 AlertDialog로 한 번 확인받으면 UX가 좋아짐

🌱 다음 단계

이제 게시판 앱의 기본 기능은 모두 갖췄다.
다음 글에서는 전체 UI를 감성 있게 다듬고, 앱 완성도를 높이는 마무리 작업을 해보자.

Flutter 게시판 앱, 진짜 게시판처럼 완성되어 가고 있다.

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

728x90
반응형

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

Flutter 게시판 앱 만들기 — 실시간으로 게시글 찾기  (0) 2025.05.21
Flutter 게시판 앱 만들기 — Flutter 테마와 커스텀 스타일 적용하기  (0) 2025.05.21
Flutter 게시판 앱 만들기 — 상태 관리와 SharedPreferences 적용하기  (0) 2025.05.21
Flutter 게시판 앱 만들기 — TextField와 Form으로 완성하는 입력 폼  (0) 2025.05.20
Flutter 게시판 앱 만들기 — 감성을 더한 부드러운 움직임 만들기  (0) 2025.05.20
'Flutter/Flutter 게시판 앱 만들기' 카테고리의 다른 글
  • Flutter 게시판 앱 만들기 — 실시간으로 게시글 찾기
  • Flutter 게시판 앱 만들기 — Flutter 테마와 커스텀 스타일 적용하기
  • Flutter 게시판 앱 만들기 — 상태 관리와 SharedPreferences 적용하기
  • Flutter 게시판 앱 만들기 — TextField와 Form으로 완성하는 입력 폼
코드를 걷는 사람
코드를 걷는 사람
devwanderer 님의 블로그 입니다.
  • 코드를 걷는 사람
    터미널 밖으로 나온 개발자
    코드를 걷는 사람
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Flutter
        • Flutter 게시판 앱 만들기
        • Flutter 뉴스 앱 만들기
        • Flutter 메모 앱 만들기
        • Flutter 캘린더 앱 만들기
        • Flutter 날씨 앱 만들기
      • Next.js
      • Ruby On Rails
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

  • 반응형
    250x250
  • hELLO· Designed By정상우.v4.10.3
코드를 걷는 사람
Flutter 게시판 앱 만들기 — 게시글 수정 & 삭제 기능 추가하기
상단으로

티스토리툴바