본문 바로가기

🍎 iOS/DevNote17

[Combine] Combine 개념 및 등장배경 CombineApple 공식문서의 소개는 다음과 같다.이벤트 처리 연산자를 결합해 비동기 이벤트 처리를 커스텀한다개요시간 흐름에 따른 값을 처리하기 위한 선언적 Swift API를 제공하는 프레임워크이 값들은 여러 종류의 비동기 이벤트를 나타낼 수 있다. ( 통합 프레임워크라는 의미! )Publisher를 선언하여 시간에 따라 변경될 수 있는 값을 노출하고, Subscriber가 Publisher로부터 값을 받도록 한다.Publisher 프로토콜은 시간에 따른 일련의 값을 전달할 수 있는 타입을 선언한다.Upstream publisher로부터 받은 값을 처리하고, 처리한 값들을 다시 게시하는 Operator를 갖는다.Publisher Chain의 말단에서 Subscriber는 element들을 수신할 때.. 2024. 4. 28.
[SwiftUI] ObservableObject, @StateObject, @ObservedObject 알아보기 [Protocol] ObservableObject Class 전용 프로토콜로, 데이터가 변경되면 Observer에게 알림을 보내는 타입 iOS 17.0부터는 Observable() 매크로 사용이 권장됨 ObjectWillChange ObservableObjectPublisher타입으로, 객체가 수정되기 전에 전달하는 publisher이다. objectWillChange.send() 메서드를 사용해 변경사항을 subcriber에게 전달한다. 변경사항이 있을 때마다 objectWillChagne.send() 를 해야한다면, 몹시 불편할 것 같다. 이를 보완하는 방법으로 @Publshed 라는 property wrapper가 있다. import SwiftUI class TestViewModel: Observa.. 2024. 3. 25.
[Swift] NSCache 이해하기 활용 개념 Cache CPU와 HDD의 속도 차이를 메꾸기 위해 고안된 개념으로, Cache라는 임시 메모리를 두어 CPU에서 자주 사용하는 데이터를 임시 저장한 후, 필요할 때 사용한다. 컴퓨터 과학에서는 데이터나 값을 미리 복사해두는 임시 저장소를 의미하며, 위에서 CPU와 HDD 간의 속도 간극을 메우기 위해 사용한 것처럼 데이터 접근 시간이 오래 걸리는 경우나 값을 다시 계산하는 시간을 절약하고 싶은 경우 사용한다. Memory Cache(메모리 캐시) vs Disk Cache(디스크 캐시) Memory Cache Disk Cache 종류 NSCache 등 FileManager, UserDefaults, CoreData 등 특징 휘발성 - 앱 종료 시 메모리에서 해제 비휘발성(영속성) - 파일 형.. 2024. 3. 17.
[SwiftUI] CustomTabView 구현 구현하게 된 이유 진행 중인 프로젝트 디자인은 기본 TabView와 유사했음에도, 기본 TabView로는 구현할 수 없었습니다. 'SwiftUI에서 TabView item들의 속성은 조정할 수 있게 해주지' 라는 생각이 많이 들었던.. 동시에 앞으로의 프로젝트가 험난하겠구나(?)가 느껴진 순간이었습니다. 기능 및 디자인 1. 기능: item 클릭 시, 추가 동작 제어 2. 디자인: 기본 CustomView와 유사. (이미지 사이즈만 조정) Model 코드 Enum으로 다음과 같은 모델을 만들었고, 필요한 Property를 추가했습니다. // // CustomTabView.swift // // Created by Eddy on 2/19/24. // import SwiftUI public enum TabIt.. 2024. 3. 4.