본문 바로가기

이모저모/Swift7

Observable과 ViewModel State에 대한 고찰 대부분 iOS ViewModel에서 상태를 관리하기 내부에 쓰이는 값들을 하나의 구조체로 그 객체가 갖는 상태를 선언해서 관리한다.@Observable class ViewModel{ var state:State struct State{ var isFirstAppear = true var isTipAlertPresented = false } ...}⚠️ 이렇게 된다면 @Observable 의 장점인 하나의 변화에만 대응하는 장점을 잃을 수 있다..!   ⚠️ 이 구조체 하나가 변경되면 값 복사가 일어나니 isFirstAppear가 변경되어도 isTipAlertPresented의 값을 관찰하는 관찰자의 특정 action이 실행될 수 있다.자세한 Observabl.. 2025. 3. 26.
WWDC - Async algorithm 패키지 WWDC - Swift Async 알고리즘 소개 Swift Async 알고리즘 소개 - WWDC22 - 비디오 - Apple DeveloperApple의 최신 오픈 소스 Swift 패키지인 Swift Async 알고리즘을 확인하세요. Zip, Merge 및 Throttle을 비롯하여 AsyncSequence와 함께 사용할 수 있는 이 패키지의 알고리즘을 알아보겠습니다. 이러한...developer.apple.com GitHub - apple/swift-async-algorithms: Async Algorithms for SwiftAsync Algorithms for Swift. Contribute to apple/swift-async-algorithms development by creating an a.. 2024. 10. 20.
Swift - Task.Sleep vs Timer Time: 특정 시간 간격이 경과한 후 지정된 메시지를 대상 개체에 전송하는 타이머입니다.Timer: Single Thread 전용 클래스타이머는 실행 루프와 함께 작동실행 루프는 타이머에 대한 강력한 참조를 유지함으로, 실행 루프에 추가한 후에는 타이머가 강력한 참조를 유지하지 않아도 된다.⇒ 스케쥴러에 등록만 하면 자동으로 실행한다는 의미인듯?타이머를 효과적으로 사용하려면 실행 루프의 작동 방식을 알고 있어야 합니다.⇒ 자세한 내용은 스레딩 프로그래밍 가이드를 참조하세요.타이머는 실시간 메커니즘이 아니다.타이머의 실행 시간이 긴 실행 루프 콜아웃 중에 발생하거나 실행 루프가 타이머를 모니터링하지 않는 모드에 있는 경우, 타이머는 다음 실행 루프가 타이머를 확인할 때까지 실행되지 않습니다.따라서 타이머.. 2024. 4. 30.
ios - 이미지 중복 사용 방지 처리 RCManager 앱 내 파일 관리하기 Realm 패키지 의존 모듈RCManager 구성RCManager (Reference Count Manager)는 참조 계수 매니저로 Swift와 Objective-C의 메모리 관리 기법에서 비롯함.샌드박스 내부(로컬)에서 저장해야하는 파일 (이미지, docs 등등...)의 여러 로컬 DB에서 사용하는 경우 파일을 중복 생성해서 보관하는 것을 방지하기 위함각각의 디비 레코드에서 특정 파일의 이름들 보관하는 경우 Reference Count 1 증가특정 파일의 이름을 삭제하는 경우 Reference Count 1 감소...Reference Count가 0인 경우 해당 파일 삭제 및 참조 계수 매니저 테이블에 해당 레코드 삭제RCManager 생성 지침 싱클톤 패턴 적.. 2024. 1. 25.