월경 주기를 기록하는 데서 그치지 않고, 몸의 변화(월경기 · 난포기 · 배란기 · 황체기)를 알아차리고 일정을 조율하도록 돕는 앱입니다.
iOS 앱 Mithm(SwiftUI + HealthKit + EventKit)을 Flutter로 이식해 Android까지 가져가는 저장소입니다.
- Flutter 3.44 / Dart 3.12
- Clean Architecture + MVVM (Riverpod) — 원본과 같은 구조
- 의존성 방향:
presentation → domain ← data ← core
| 단계 | 상태 |
|---|---|
| Domain 순수 로직 | ✅ |
| 플랫폼 스파이크 (HealthKit / Health Connect) | ✅ |
| Data · Core 계층 | ✅ |
| UseCase | ✅ |
| 화면 전부 (홈 · 캘린더 · 설정 · 온보딩) | ✅ |
| 캘린더 내보내기 | ✅ |
| Android 출시 | ⬜ |
순수 로직의 기댓값을 손으로 쓰지 않습니다. 원본 Swift를 swiftc로 직접 컴파일해
정답 데이터를 뽑고, Dart 이식본과 전 필드를 대조합니다.
./tool/swift_reference/generate.sh # 원본 Swift → test/fixtures/*.json
flutter test # Dart 이식본과 대조예측 24 · 헬퍼 29 · 매퍼 42 · 홈 phase 28 · 캘린더 26 시나리오와 phase 상세 카피
4벌이 원본과 완전히 일치합니다. 매퍼 하네스는 HealthKit을 링크한 커맨드라인 도구라
원본 HealthKitMapper를 그대로 호출합니다.
flutter pub get
flutter run
flutter analyze && flutter test # 항상 통과 상태를 유지합니다건강 데이터 접근이 필요합니다 — iOS는 HealthKit, Android는 Health Connect (Android 14 미만은 Health Connect 앱 설치 필요).
CLAUDE.md— 작업 지침, 절대 규칙, 이 프로젝트에서만 통하는 함정docs/migration-plan.md— 단계별 계획과 완료 현황, 플랫폼 검증 결과, 리스크
미리듬이 제공하는 월경 주기, 배란일 및 관련 예측 정보는 사용자의 월경 기록을 바탕으로 한 추정값입니다. 실제 신체 상태 및 건강 상태와 다를 수 있으며, 피임 · 임신 계획 또는 건강 관련 의사결정의 근거로 단독 사용하지 마십시오. 정확한 진단과 상담은 반드시 의료 전문가에게 받으시기 바랍니다.