할 일 완료 체크 및 삭제 기능 추가

2025. 6. 3. 09:00·Flutter/Flutter 캘린더 앱 만들기
728x90
반응형

이벤트를 등록하는 것만큼 중요한 건 할 일 완료 체크와 삭제 기능이다.
이번 글에서는 날짜별 할 일을 체크박스로 완료 처리하고, 필요 시 삭제까지 가능한 캘린더 할 일 관리 UI를 만들어본다.


📌 이벤트 모델 구조 확장

이제 단순 문자열이 아닌 객체로 이벤트를 관리하자.

class Event {
  final String title;
  bool isDone;

  Event({required this.title, this.isDone = false});
}

이제 이벤트는 제목과 완료 여부를 포함하는 구조가 된다.


🗓️ 날짜별 이벤트 리스트 구조

Map<DateTime, List<Event>> _events = {
  DateTime(2024, 10, 10): [Event(title: '운동하기')],
  DateTime(2024, 10, 11): [Event(title: '블로그 작성')],
};

이제 각 날짜마다 Event 객체 리스트를 연결한다.


✅ 할 일 완료 체크 UI

ListView(
  children: (_events[_selectedDay] ?? [])
      .asMap()
      .entries
      .map((entry) {
        int index = entry.key;
        Event event = entry.value;

        return CheckboxListTile(
          title: Text(
            event.title,
            style: TextStyle(
              decoration: event.isDone ? TextDecoration.lineThrough : null,
            ),
          ),
          value: event.isDone,
          onChanged: (bool? value) {
            setState(() {
              event.isDone = value ?? false;
            });
          },
        );
      })
      .toList(),
)

CheckboxListTile을 사용하면 체크박스와 텍스트를 한 번에 표현할 수 있다.


🗑️ 할 일 삭제 기능

각 항목 옆에 삭제 아이콘을 추가해 간단하게 제거할 수 있게 하자.

ListTile(
  leading: Checkbox(
    value: event.isDone,
    onChanged: (value) {
      setState(() {
        event.isDone = value ?? false;
      });
    },
  ),
  title: Text(event.title),
  trailing: IconButton(
    icon: Icon(Icons.delete, color: Colors.red),
    onPressed: () {
      setState(() {
        _events[_selectedDay]?.removeAt(index);
      });
    },
  ),
)

삭제는 리스트에서 해당 인덱스를 제거하는 방식으로 구현한다.


💡 UX 향상 팁

  • 완료된 항목은 흐릿한 스타일로 표시
  • 삭제 전 확인 다이얼로그 추가
  • 완료된 항목 자동 숨기기 toggle 기능

🧘 마무리하며

Flutter 캘린더 앱이 더 실용적으로 느껴지는 순간은 할 일을 직접 완료 체크하고, 관리할 수 있을 때다.

단순한 일정 등록을 넘어, 내가 실천한 것을 확인하는 것.
이제 Flutter 앱이 당신의 할 일 관리자 역할을 해줄 것이다.

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

728x90
반응형

'Flutter > Flutter 캘린더 앱 만들기' 카테고리의 다른 글

다크 모드 캘린더 디자인 적용  (0) 2025.06.05
이벤트 반복 설정 구현 — 매주, 매달 반복 어떻게 할까?  (0) 2025.06.04
이벤트 알림 기능 — Flutter Local Notification 활용하기  (0) 2025.06.02
오늘 날짜 강조 및 마커 표시 기능 구현하기  (1) 2025.06.01
주간/월간 보기 전환 — 다양한 뷰 모드 지원하기  (0) 2025.05.31
'Flutter/Flutter 캘린더 앱 만들기' 카테고리의 다른 글
  • 다크 모드 캘린더 디자인 적용
  • 이벤트 반복 설정 구현 — 매주, 매달 반복 어떻게 할까?
  • 이벤트 알림 기능 — Flutter Local Notification 활용하기
  • 오늘 날짜 강조 및 마커 표시 기능 구현하기
코드를 걷는 사람
코드를 걷는 사람
devwanderer 님의 블로그 입니다.
  • 코드를 걷는 사람
    터미널 밖으로 나온 개발자
    코드를 걷는 사람
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Flutter
        • Flutter 게시판 앱 만들기
        • Flutter 뉴스 앱 만들기
        • Flutter 메모 앱 만들기
        • Flutter 캘린더 앱 만들기
        • Flutter 날씨 앱 만들기
      • Next.js
      • Ruby On Rails
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

  • 반응형
    250x250
  • hELLO· Designed By정상우.v4.10.3
코드를 걷는 사람
할 일 완료 체크 및 삭제 기능 추가
상단으로

티스토리툴바