Flutter 9기 창업/📚 Today I Learned

[Flutter 9기 창업반] 앱 개발 창업 부트캠프 42일차

히니미니마니모✦🇸​​🇹​​🇴​​🇷​​🇾​✦ 2026. 1. 21. 23:37

1. 🏗️ Riverpod Refactoring Design

Singleton Repository 패턴의 한계를 극복하고 유지보수성을 높이기 위해 

Riverpod 3.0으로의 전환 계획을 수립했습니다.

  • 목표: 의존성 주입(DI), 테스트 용이성 확보, 명확한 상태 추적.
  • 주요 전략:
    - riverpod_generator를 사용한 코드 생성 기반 설계.
    - UserPrefs -> MedsDraftRepository -> MedsDataRepository 순서의 점진적 마이그레이션.
    - StatefulWidget을 ConsumerWidget으로 전환하여 ref.watch 활용.
  • 문서: docs/plans/2026-01-21-riverpod-refactoring-design.md에 상세 계획 정리 완료.

2. Favorites & Side Effects

자주 먹는 약과 부작용 정보를 관리하는 기능을 구현했습니다.

  • Data Model: MedsData에 isFavorite, hasSideEffect 필드 추가.
  • UI (Detail Page):
    - 직관적인 스위치(Switch) UI 적용 (박스 장식 제거로 깔끔함 강조).
    - 파란색(자주 먹는 약) / 빨간색(부작용 있음)으로 상태 색상 구분.
  • UI (Home Page):
    - 탭 3개로 확장: [현재 먹는 약] / [자주 먹는 약] / [부작용 관련 약].
    - TabBar와 필터링 로직을 통해 각 상태에 맞는 약 리스트 노출.

3. 👥 People Page Group Management

사용자 프로필 관리 페이지의 기능을 대폭 강화했습니다.

  • 우선순위 정렬 (Sorting Logic):
  • 그룹 관리 (Group Mode):
    1) + 버튼으로 선택 모드 진입 (체크박스 활성화).
    2) 다중 선택 후 그룹 이름 지정하여 저장.
    3) 상단 탭에 생성된 그룹 탭 자동 추가 및 필터링 적용.
    4) 그룹 탭의 X 버튼으로 그룹 삭제 기능 (삭제 시 확인 팝업 제공).

4. 🎨 UI/UX Polish

세심한 UI 개선 작업을 진행했습니다.

  • Meds Detail Image:
    - 기존 텍스트 안내("사진을 누르면...") 삭제.
    - 이미지 중앙에 확대 아이콘(돋보기)을 배치하여 직관적으로 터치 유도.
  • Calendar Interaction:
    이미 선택된 날짜를 재클릭해도 복약 정보 시트가 열리도록 수정
    (기존의 닫히거나 무반응 동작 개선).

 

Next Step: 수립한 Riverpod 설계에 따라 내일부터 본격적인 리팩토링을 시작할 예정.
(Phase 1: 기본 설정 및 UserPrefs 전환)