피드로 돌아가기
Flutter WebでTableCalendarによるカレンダービューと、ギタースタジオのshare_plus連携を実装した話
Dev.toDev.to
Frontend

Flutter WebでTableCalendarによるカレンダービューと、ギタースタジオのshare_plus連携を実装した話

TableCalendar와 Supabase Edge Function 기반의 Notion Parity 캘린더 구현 및 CI 정적 분석 0-Error 달성

kanta13jp12026년 4월 12일2intermediate

Context

Notion Database Parity 달성을 위한 캘린더 뷰 구현 필요성 대두. 기존에 구축된 calendar-events Edge Function과 TableCalendar 패키지 간의 통합을 통한 개발 비용 최소화 전략 채택.

Technical Solution

  • YYYY-MM-DD 포맷의 문자열 키를 활용한 Map 기반 이벤트 매핑으로 O(1) 시간 복잡도의 데이터 조회 성능 확보
  • onPageChanged 콜백 내 월 단위 데이터 Fetch 로직을 구현하여 필요한 시점에만 Edge Function 호출
  • 메모리 내 _eventsByDate 맵을 통한 캐싱 구조 설계로 이전 페이지 이동 시 불필요한 네트워크 요청 억제
  • supabase_flutter의 functions.invoke API와 HttpMethod.get 조합을 통한 효율적인 쿼리 파라미터 전달
  • async gap 이후의 BuildContext 사용 시 mounted 체크 로직을 강제하여 런타임 예외 방지 및 안정성 확보
  • share_plus의 XFile 재내보내기 특성을 활용한 import 최적화로 의존성 구조 단순화

1. 비동기 작업 후 context 참조 전 반드시 mounted 여부를 확인하여 메모리 누수 및 크래시 방지

2. 리스트 형태의 날짜 데이터를 조회할 때 Key-Value Map으로 변환하여 조회 성능 최적화 검토

3. 패키지 간 재내보내기(re-export) 관계를 파악하여 불필요한 import 제거 및 의존성 관리

원문 읽기