Notice
Recent Posts
Recent Comments
올해는 머신러닝이다.
Flutter cached_network_image 만료 기간 설정 본문
Flutter에서 cached_network_image 패키지를 사용할 때 이미지의 **만료 기간(Cache Expiration)**을 설정하는 방법은 여러 가지가 있습니다. 주요 방법은 다음과 같습니다.
1. CacheManager를 직접 사용하여 만료 기간 설정
기본적으로 cached_network_image는 내부적으로 flutter_cache_manager를 사용합니다. 따라서 CacheManager를 커스텀하여 만료 기간을 설정할 수 있습니다.
✅ Custom CacheManager 만들기
import 'package:flutter_cache_manager/flutter_cache_manager.dart';
class CustomCacheManager extends CacheManager {
static const key = 'customCacheKey';
static CustomCacheManager _instance = CustomCacheManager._();
factory CustomCacheManager() => _instance;
CustomCacheManager._()
: super(
Config(
key,
stalePeriod: const Duration(days: 3), // 만료 기간 설정 (예: 3일)
maxNrOfCacheObjects: 100, // 최대 캐시 개수 설정
),
);
}
2. cached_network_image에서 cacheManager 옵션 사용
위에서 만든 CustomCacheManager를 cached_network_image에서 사용할 수 있습니다.
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
class CachedImageExample extends StatelessWidget {
final String imageUrl = 'https://example.com/image.jpg';
@override
Widget build(BuildContext context) {
return CachedNetworkImage(
imageUrl: imageUrl,
cacheManager: CustomCacheManager(), // 커스텀 캐시 매니저 적용
placeholder: (context, url) => CircularProgressIndicator(),
errorWidget: (context, url, error) => Icon(Icons.error),
);
}
}
3. 캐시 삭제 (수동으로 만료)
만약 특정 조건에서 캐시를 제거해야 한다면 removeFile() 또는 emptyCache() 메서드를 사용할 수 있습니다.
✅ 특정 이미지 캐시 삭제
await CustomCacheManager().removeFile(imageUrl);
✅ 전체 캐시 삭제
await CustomCacheManager().emptyCache();
4. imageCache.clear()로 Flutter의 메모리 캐시 삭제
flutter_cache_manager는 디스크 캐시를 관리하지만, Flutter 자체도 메모리에 이미지를 캐싱합니다. 따라서 메모리 캐시까지 삭제하려면 아래 방법을 사용할 수 있습니다.
imageCache.clear();
imageCache.clearLiveImages();
📌 결론
- 자동 만료 설정: CustomCacheManager에서 stalePeriod를 설정
- 캐시된 이미지 강제 삭제: removeFile() 또는 emptyCache()
- 메모리 캐시 삭제: imageCache.clear()
이 방법을 활용하면 Flutter에서 cached_network_image의 만료 기간을 조절할 수 있습니다. 🚀
'스터디 > Flutter' 카테고리의 다른 글
Flutter의 IntrinsicWidth 위젯 이해 및 사용법 (0) | 2025.03.17 |
---|---|
Figma Mcp server + Cursor를 이용해서 Flutter 페이지 클론하기 (0) | 2025.03.10 |
Flutter MVVM 아키텍쳐 추천(Riverpod과 Freezed) (0) | 2025.02.17 |
flutter 인앱 결제 구독 복원 Flow (0) | 2025.02.16 |
flutter에서 인앱 결제 구독 단계별 성명 (0) | 2025.02.16 |