일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 리펙터링
- Human interface guide
- UITextView
- RxCocoa
- collectionview
- UICollectionView
- 애니메이션
- Refactoring
- SWIFT
- uiscrollview
- rxswift
- 클린 코드
- 리펙토링
- ribs
- 스위프트
- map
- tableView
- Observable
- uitableview
- ios
- combine
- clean architecture
- HIG
- Protocol
- swift documentation
- Xcode
- 리팩토링
- MVVM
- Clean Code
- swiftUI
- Today
- Total
목록NSCache (5)
김종권의 iOS 앱 개발 알아가기
1. SDWebImage 오픈소스 까보기 - 캐싱 처리 로직 2. SDWebImage 오픈소스 까보기 - 메모리 캐싱, 디스크 캐싱 SDWebImage 메모리 캐시 SDMemoryCache.m 코드를 보면 SDMemoryCache를 선언해 놓았으며 이것은 NSCache 타입이므로 일반적으로 swift에서 메모리 캐싱을 사용하는 방법과 유사 (NSCache를 통해 메모리 캐싱하는 방법은 이전 포스팅 글 참고) @interface SDMemoryCache () { #if SD_UIKIT SD_LOCK_DECLARE(_weakCacheLock); // a lock to keep the access to `weakCache` thread-safe #endif } ... @interface SDMemoryCach..
1. SDWebImage 오픈소스 까보기 - 캐싱 처리 로직 2. SDWebImage 오픈소스 까보기 - 메모리 캐싱, 디스크 캐싱 SDWebImage 오픈소스 SDWebImage Github 포스팅 글 작성 시점 기준으로 24.7k 스타를 가지고 있고, 또 다른 유명한 이미지처리 오픈소스 Kingfisher (21.5k)보다 많은 스타 수를 가지고 있는 오픈소스 UIImageView의 extension으로 sd_setImageWithURL 메소드로 확장되어 쉽게 사용할 수 있도록 구현되어 있는 상태 import SDWebImage imageView.sd_setImage(with: URL(string: "http://www.domain.com/path/to/image.jpg"), placeholderIm..
* 기초 개념 URLSession 개념: https://ios-development.tistory.com/651 NSCache 개념: https://ios-development.tistory.com/658 Diffable Data Source 개념: https://ios-development.tistory.com/717 ImageCache를 사용하는 이유 TableView, CollectionView에서 사용자가 뷰를 스크롤 시 같은 이미지를 요청하는 경우가 생기고, 이때 cache를 통해서 이미지에 해당하는 URL은 API를 한 번만 호출하도록 하기 위함 ex) tableView에서 스크롤 시 화면에 보이는 cell의 모양을 계속 업데이트해야 하므로, cell을 만드는 메소드가 재호출되는 현상 Diff..
1. 이미지 캐싱, 이미지 효율적으로 로드 방법, 스크롤에 따라 이미지 로드(tableView, collectionView): scrollViewDidScroll, prefetch 2. 이미지 캐싱, 이미지 효율적으로 로드 방법(tableView, collectionView): async + NSCache cf) 애플 공식 문서에서 나온 ImageCache 방법은 여기 참고 처리 방법 2단계 scrollViewDidScroll, prefetch 방법으로 모든 페이지의 이미지를 한꺼번에 호출하지 않고 스크롤에 따라 page를 늘려나가며 API호출 > 이미지 url들을 획득 이미지 url들만 우선 cell의 모델에 적용 ImageCache를 통해서 url들에 대해서 이미지 로드 > cell의 item 모델 ..
* URLSession 개념 참고 * NSCache 개념 참고 TableView에서 refresh시 데이터 요청 dataSource는 [AnyObject]형태 title과 같은 것은 dataSource안에 포함 되어 있지만 이미지같은 경우는 dataSource중 url link를 통해 이미지 획득 url link를 통해 이미지를 획득할때 시간이 오래걸리므로 cellForRowAt에서 cache와 async방법으로 접근 class ViewController: UIViewController { lazy var refreshControl: UIRefreshControl = { let control = UIRefreshControl() control.addTarget(self, action: #selector(..