Skip to content

v1.2.0 - 라이브러리 메이저 업그레이드 및 아키텍처 핵심 약점 보강

Choose a tag to compare

@devcsb devcsb released this 07 May 15:19
· 98 commits to main since this release

요약

2026-05 시점에서 의존성 최신성과 아키텍처 견고성을 점검하고, 보수적 메이저 업그레이드와 핵심 약점 보강을 함께 진행했어요. 동작 변화는 없고, 내부 정합성과 유지보수성이 좋아졌습니다.

라이브러리 업그레이드

보수적 메이저 (Kotlin/AGP/Gradle 환경 호환 가능한 최고 버전 기준)

  • share_plus 9 → 11 (SharePlus.instance.share(ShareParams) 새 API)
  • package_info_plus 8 → 9
  • local_auth 2 → 3 (AuthenticationOptions → persistAcrossBackgrounding 새 API)
  • intl 0.19 → 0.20
  • file_picker 8 → 9

Minor / Patch

  • flutter_riverpod 2.5.1 → 2.6.1
  • go_router 14.2.0 → 14.8.1
  • drift / drift_dev 2.18 → 2.19
  • google_fonts 8.0 → 8.1, image_picker 1.1.2 → 1.2.2, printing 5.13 → 5.14
  • path_provider 2.1.3 → 2.1.5, flutter_local_notifications 17.2.1 → 17.2.4
  • build_runner 2.4.9 → 2.4.13, sqlite3_flutter_libs 0.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 등) enable
  • dart fix --apply 로 4개 파일 22건 자동 수정
  • flutter analyze: error 0
  • flutter test: 259/259 통과
  • flutter build apk --debug: 성공

Follow-up (별도 PR 권장)

trade-off 가 큰 항목은 본 릴리즈에서 제외했어요.

  • flutter_riverpod 3.x (사용처 25개, 큰 마이그레이션)
  • go_router 17.x (typed routes 도입)
  • flutter_local_notifications 21.x (Android 13/14 권한 모델)
  • fl_chart 1.x (UI 회귀 검증 필요)
  • share_plus 13.x (Kotlin 2.2 + AGP 8.12.1 + Gradle 8.13 동반 필요)
  • sqlite3_flutter_libs 0.6+eol (deprecated 임박)
  • drift 2.33 (sqlite3 3.x dev dependency 동반 필요)
  • iOS 빌드 환경 구성 (Podfile 미생성 상태)