피드로 돌아가기
Dev.toFrontend
원문 읽기
Flutter WebでTableCalendarによるカレンダービューと、ギタースタジオのshare_plus連携を実装した話
TableCalendar와 Supabase Edge Function 기반의 Notion Parity 캘린더 구현 및 CI 정적 분석 0-Error 달성
AI 요약
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 제거 및 의존성 관리