사용자 맞춤 컬러 태그 시스템 구현

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

캘린더에 일정이 많아질수록, 구분과 시각적 구별이 중요해진다.
이럴 때 컬러 태그를 사용하면 일정 유형을 한눈에 파악할 수 있다.

이번 글에서는 Flutter에서 사용자 맞춤형 태그 시스템을 설계하고, 각 태그에 컬러를 부여해 시각적으로 구분하는 기능을 구현해본다.


🏷️ 태그 데이터 구조 설계

이벤트마다 태그와 색상을 함께 저장할 수 있도록 모델을 수정한다.

class Event {
  final String title;
  final String tag;
  final Color tagColor;

  Event({
    required this.title,
    required this.tag,
    required this.tagColor,
  });
}

컬러는 Color 객체로 관리하거나, Hex 코드로 DB에 저장할 수도 있다.


🎨 태그 선택 UI 만들기

✅ 태그 입력 + 색상 선택

TextEditingController _tagController = TextEditingController();
Color _selectedColor = Colors.blue;

Row(
  children: [
    Expanded(
      child: TextField(
        controller: _tagController,
        decoration: InputDecoration(labelText: '태그 입력'),
      ),
    ),
    GestureDetector(
      onTap: _pickColor,
      child: Container(
        width: 30,
        height: 30,
        decoration: BoxDecoration(
          color: _selectedColor,
          shape: BoxShape.circle,
        ),
      ),
    ),
  ],
)

색상 선택은 flutter_colorpicker 패키지를 활용해 컬러 피커 다이얼로그를 띄우면 UX가 좋다.


📅 달력에 컬러 태그 표시하기

calendarBuilders: CalendarBuilders(
  markerBuilder: (context, date, events) {
    final color = events.isNotEmpty ? events.first.tagColor : null;

    return color != null
      ? Container(
          width: 6,
          height: 6,
          margin: EdgeInsets.only(top: 2),
          decoration: BoxDecoration(
            color: color,
            shape: BoxShape.circle,
          ),
        )
      : SizedBox.shrink();
  },
),

이벤트마다 다른 색상으로 마커를 표시해 한눈에 일정 카테고리를 구분할 수 있게 된다.


📖 태그 목록 관리

  • 태그는 중복 없이 저장 (Set으로 관리)
  • 사용자가 직접 태그 이름과 색상 지정 가능
  • 기본 태그(업무, 개인, 운동 등) 몇 개는 미리 제공

UI에서 ChoiceChip으로 선택 가능한 태그 리스트를 제공하면 UX가 훌륭하다.


🧘 마무리하며

일정을 구분 짓는 건 단순한 기능이 아니라 기억을 구조화하는 방식이다.
Flutter 캘린더 앱에 컬러 태그 기능을 더하면, 더 직관적이고 아름다운 일정 관리가 가능해진다.

색으로 기억하는 캘린더, 지금 시작해보자.

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

728x90
반응형

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

서버와 동기화 — Google Calendar API 연동하기  (0) 2025.06.06
다크 모드 캘린더 디자인 적용  (0) 2025.06.05
이벤트 반복 설정 구현 — 매주, 매달 반복 어떻게 할까?  (0) 2025.06.04
할 일 완료 체크 및 삭제 기능 추가  (2) 2025.06.03
이벤트 알림 기능 — Flutter Local Notification 활용하기  (0) 2025.06.02
'Flutter/Flutter 캘린더 앱 만들기' 카테고리의 다른 글
  • 서버와 동기화 — Google Calendar API 연동하기
  • 다크 모드 캘린더 디자인 적용
  • 이벤트 반복 설정 구현 — 매주, 매달 반복 어떻게 할까?
  • 할 일 완료 체크 및 삭제 기능 추가
코드를 걷는 사람
코드를 걷는 사람
devwanderer 님의 블로그 입니다.
  • 코드를 걷는 사람
    터미널 밖으로 나온 개발자
    코드를 걷는 사람
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • Flutter
        • Flutter 게시판 앱 만들기
        • Flutter 뉴스 앱 만들기
        • Flutter 메모 앱 만들기
        • Flutter 캘린더 앱 만들기
        • Flutter 날씨 앱 만들기
      • Next.js
      • Ruby On Rails N
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

  • 반응형
    250x250
  • hELLO· Designed By정상우.v4.10.3
코드를 걷는 사람
사용자 맞춤 컬러 태그 시스템 구현
상단으로

티스토리툴바