피드로 돌아가기
Flutter 地方選挙アプリ — スケジュールフィルターとXコンポーザーをワンタップで連動させた話
Dev.toDev.to
Frontend

Flutter 地方選挙アプリ — スケジュールフィルターとXコンポーザーをワンタップで連動させた話

Optional Parameter 도입을 통한 Filter 상태 동기화 및 UX 마찰 제거

kanta13jp12026년 4월 12일2beginner

Context

스케줄 필터링 정보가 X Composer 다이얼로그로 전달되지 않아 발생하는 중복 선택 문제 존재. 기존 로직은 다이얼로그 진입 시 데이터가 존재하는 첫 번째 윈도우를 자동 선택하는 정적 방식에 의존함.

Technical Solution

  • ElectionXPostComposerDialog에 initialWindowIndex 파라미터를 추가하여 외부 상태 주입 구조로 변경
  • Optional Parameter 설계를 통한 기존 호출부의 영향도를 제로화하여 Backward Compatibility 유지
  • initState 내에서 주입된 인덱스를 우선 적용하고 null일 경우 기존 자동 선택 로직을 수행하는 Fallback 전략 채택
  • _filterToWindowIndex 헬퍼 함수를 구현하여 UI 레이어의 필터 문자열을 서비스 레이어의 인덱스로 변환하는 매핑 로직 분리
  • 특정 필터 선택 및 데이터 존재 여부를 확인하는 조건부 렌더링으로 불필요한 API 호출 및 진입점 차단

1. 신규 기능 추가 시 기존 호출부의 수정을 최소화하기 위해 Optional Parameter와 Fallback 로직을 결합했는가?

2. UI 상태(문자열)를 내부 데이터 구조(인덱스)로 변환하는 매핑 로직을 별도 헬퍼 함수로 분리하여 유지보수성을 높였는가?

3. 상태 전이가 필요한 컴포넌트 설계 시 초기 상태(Initial State)를 외부에서 주입받을 수 있는 인터페이스를 제공하는가?

원문 읽기