일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- RxCocoa
- map
- 리팩토링
- SWIFT
- uitableview
- Human interface guide
- ios
- UICollectionView
- Observable
- uiscrollview
- ribs
- MVVM
- Protocol
- collectionview
- swift documentation
- 애니메이션
- rxswift
- HIG
- 클린 코드
- 스위프트
- 리펙터링
- clean architecture
- 리펙토링
- Xcode
- combine
- UITextView
- Clean Code
- Refactoring
- tableView
- swiftUI
- Today
- Total
목록오픈소스 까보기 (5)
김종권의 iOS 앱 개발 알아가기
swift-benchmark 오픈소스 git repo 특정 기능에 대해서 속도 최적화해보고 싶은 경우, 어떤 것이 더욱 최적화 되는 작업인지 확인해야하는데 이 때 벤치마크를 통해 의사결정이 가능 benchmark 사용하기 위해서 아래 URL을 사용하여 SPM으로 추가 https://github.com/google/swift-benchmark 사용하는 것은 매우 간단하게, benchmark 함수의 클로저로 전달하면 완료 import Benchmark benchmark("add string no capacity") { var x1: String = "" for _ in 1...1000 { x1 += "hi" } } benchmark("add string reserved capacity") { var x2: ..
RxSwift의 스트림 처리 RxSwift를 사용할 때 보통 Observable 인스턴스를 .subscribe하여 onNext, onError, onCompleted로 처리가 가능 RxSwift는 위에서 아래로 stream 형태로 비동기 처리를 코드상으로는 순서대로 눈에보기 쉽게 처리가 가능 API.download(file: "http://www...") .subscribe(onNext: { data in // Append data to temporary file }, onError: { error in // Display error to user }, onCompleted: { // Use downloaded file }) 이번 포스팅 글에서 RxSwift의 Observable과 Observer 구현부..
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..
* foundation의 AttributedString.swift Github 주소 참고 AttributedString.swift 구현부 * NSAttributedString 개념은 이전 포스팅 글 참고 AttributedString은 Sendable을 따르고 있으므로 동시성 처리에 안전 내부적으로 _guts를 가지고 있는데 guts는 core라는 의미 // AttributedString.swift @dynamicMemberLookup @available(macOS 12, iOS 15, tvOS 15, watchOS 8, *) public struct AttributedString : Sendable { internal var _guts: Guts internal init(_ guts: Guts) { _..