v1.2.0 - 라이브러리 메이저 업그레이드 및 아키텍처 핵심 약점 보강
요약
2026-05 시점에서 의존성 최신성과 아키텍처 견고성을 점검하고, 보수적 메이저 업그레이드와 핵심 약점 보강을 함께 진행했어요. 동작 변화는 없고, 내부 정합성과 유지보수성이 좋아졌습니다.
라이브러리 업그레이드
보수적 메이저 (Kotlin/AGP/Gradle 환경 호환 가능한 최고 버전 기준)
share_plus9 → 11 (SharePlus.instance.share(ShareParams)새 API)package_info_plus8 → 9local_auth2 → 3 (AuthenticationOptions→persistAcrossBackgrounding새 API)intl0.19 → 0.20file_picker8 → 9
Minor / Patch
flutter_riverpod2.5.1 → 2.6.1go_router14.2.0 → 14.8.1drift/drift_dev2.18 → 2.19google_fonts8.0 → 8.1,image_picker1.1.2 → 1.2.2,printing5.13 → 5.14path_provider2.1.3 → 2.1.5,flutter_local_notifications17.2.1 → 17.2.4build_runner2.4.9 → 2.4.13,sqlite3_flutter_libs0.5.0 → 0.5.42
의존성 정리
riverpod_annotation,riverpod_generator제거 (사용처 0인 dead dependency)
아키텍처 보강
- 라우팅:
app.dart의 3개ref.listen체인을 단일 derived_routerStateProvider로 통합. 라우터 상태 흐름이 일직선화됨 - TodayScreen lifecycle 분리: 자정 갱신 timer 와 앱 재개 갱신 로직을 view 에서 controller (
onAppResumed) 로 이동. widget 은 단순 위임만 담당 - 사진 lifecycle:
PhotoService.cleanupOrphanedPhotos신설. 앱 시작 시 백그라운드로 DB 의 photoPath 와 디스크 photos/ 폴더를 비교해 orphan 파일을 회수 (이전 실행에서 프로세스가 강제 종료되어 파일/DB 가 어긋난 경우 자동 복구) - biometric / share API 마이그레이션: 새 라이브러리 API 에 맞춰 코드 정리
품질
analysis_options.yaml에 보수적 lint 9개 (always_declare_return_types, avoid_dynamic_calls, prefer_final_locals, prefer_const_constructors, unawaited_futures, use_super_parameters 등) enabledart fix --apply로 4개 파일 22건 자동 수정flutter analyze: error 0flutter test: 259/259 통과flutter build apk --debug: 성공
Follow-up (별도 PR 권장)
trade-off 가 큰 항목은 본 릴리즈에서 제외했어요.
flutter_riverpod3.x (사용처 25개, 큰 마이그레이션)go_router17.x (typed routes 도입)flutter_local_notifications21.x (Android 13/14 권한 모델)fl_chart1.x (UI 회귀 검증 필요)share_plus13.x (Kotlin 2.2 + AGP 8.12.1 + Gradle 8.13 동반 필요)sqlite3_flutter_libs0.6+eol (deprecated 임박)drift2.33 (sqlite3 3.x dev dependency 동반 필요)- iOS 빌드 환경 구성 (Podfile 미생성 상태)