프로젝트로 돌아가기
Flutter PackagesActive

just_save_gallery

이미지와 비디오를 디바이스 갤러리에 저장하는 것만 하는 경량 Flutter 플러그인

dartflutter

Pub Version License

개요

just_save_gallery는 이름 그대로 갤러리에 저장만 하는 Flutter 플러그인이다. 갤러리 읽기, 삭제, 목록 조회 같은 기능 없이 오직 이미지와 비디오 저장 한 가지에만 집중한다. Uint8List 바이트 데이터와 파일 경로 입력을 모두 지원하며, Android와 iOS에서 동작한다.

주요 기능

  • 바이트 데이터 저장: Uint8List로 이미지/비디오를 직접 갤러리에 저장
  • 파일 경로 저장: 파일 경로를 넘기면 확장자로 미디어 타입을 자동 판별하여 저장 (대용량 비디오에 메모리 효율적)
  • 커스텀 앨범 지원: 원하는 앨범/폴더명을 지정하여 저장 가능
  • 자동 파일명 넘버링: 중복 파일명이 있으면 자동으로 번호를 매겨 충돌 방지
  • 내장 권한 처리: 저장 시 자동으로 권한을 요청하며, requestPermission: false로 직접 제어 가능
  • 타입 기반 에러 핸들링: SaveExceptionSaveErrorCode로 권한 거부, 디스크 풀, 잘못된 포맷 등을 구분 처리

지원 플랫폼

플랫폼지원 여부
Android
iOS

기술적 특징

  • Android: MediaStore API를 사용하며, API 29 이상에서는 IS_PENDING 플래그를 활용한 Scoped Storage를 지원한다. API 28 이하에서만 WRITE_EXTERNAL_STORAGE 권한이 필요하다.
  • iOS: PHPhotoLibrary를 사용한다. 기본적으로 add-only 권한(NSPhotoLibraryAddUsageDescription)만 요청하고, albumName 파라미터를 사용할 때만 read/write 권한을 요청하여 TCC 크래시를 방지한다.
  • 최소 의존성: plugin_platform_interface 외에 추가 의존성이 없어 패키지 크기가 가볍다.
  • Platform Channel 구조: 표준 Flutter 플러그인 아키텍처를 따르며, Method Channel 기반으로 네이티브 코드와 통신한다.

왜 주목할까?

갤러리 관련 Flutter 패키지들은 대부분 읽기, 삭제, 목록 조회 등 다양한 기능을 포함하고 있어 불필요한 권한을 요구하거나 패키지가 무거운 경우가 많다. just_save_gallery는 "저장만 한다"는 단일 책임 원칙에 충실하여, 카메라 앱이나 다운로더처럼 갤러리에 미디어를 저장하기만 하면 되는 앱에서 최소한의 권한과 의존성으로 목적을 달성할 수 있다. 타입 기반 에러 핸들링과 자동 권한 처리로 보일러플레이트 코드도 줄여준다.

댓글