분류 전체보기(85)
-
[iOS] KVC, KVO, Keypath 간단한 정리
KVC, KVO, Keypath객체 속성 접근 및 관찰 메커니즘Objective-C의 런타임 기능을 기반으로 하며, 객체의 프로퍼티에 간접적으로 접근하고 그 변화를 감지하는 데 사용Keypath는 Swift에서 이 기능을 타입-세이프하게 사용할 수 있도록 도입된 개념 KVC(Key Value Coding)인스턴스의 프로퍼티에 접근할때 key값인 문자열로 접근하는 방법Objective-C 런타임 기반 → @objc + NSObject 필요 예제class Person: NSObject { @objc var name: String?}let person = Person()// 1️⃣ value(forKey:)로 프로퍼티 값 읽기print(person.value(forKey: "name")) // nil/..
2025.11.07 -
[iOS] TCA 정리해보기1 - State, Action, Reducer, Store
1. State화면을 표현하는 데 필요한 모든 상태 정보를 담는 값 타입(Struct) View 는 이 State 를 기반으로 화면을 렌더링사용자의 입력을 Action 을 통해 Reducer 로 전달되어 State 를 갱신Equatable 프로토콜 준수struct CounterState: Equatable { var count: Int = 0 var isLoading: Bool = true} ✅ 왜 Equatable?Equatable 은 값의 동등성 비교를 가능하게 해주는 프로토콜SwfitUI는 상태가 바뀔 때마다 차이를 계산해 필요한 부분만 다시 그림TCA에서도 State가 Equatable일 때 불필요한 렌더링을 줄이고 성능 개선 가능주된 이유성능 최적화 — 상태 변경 여부를..
2025.10.20 -
[iOS] SwiftData
SwiftDataWWDC 2023에서 공개된 데이터 영속성(Persistence) 프레임워크Swift 언어 친화적으로 설계되어, 복잡한 Core Data 설정 없이도 선언적 방식으로 모델을 정의하고 데이터 관리SwiftUI와 호환성(@Query, modelContainer)@Model 매크로를 통한 단순한 데이터 선언영속성(앱 종료 및 기기 재시작에도 데이터가 유지)비동기 지원 및 타입 안정성 강화 핵심 요소 1. Model데이터를 저장하기 위해선 엔티티 정의가 필요함@Model 매크로 사용import SwiftData@Modelfinal class Todo { var title: String var isCompleted: Bool var createdAt: Date @Attri..
2025.10.02 -
[iOS] PhotosPicker에서 PHPickerViewController로
최근 SwiftUI 프로젝트에서 PhotosPicker를 사용하여 사용자가 갤러리에서 비디오를 선택할 때마다 로딩 속도가 느려지는 문제가 있었습니다. 특히 용량이 큰 영상일수록 화면 전환까지 딜레이가 심했고, 사용자 경험이 크게 저하되었습니다. 처음에는 PhotosPickerItem.loadTransferable(type: Data.self)를 활용하다가 만족스러운 결과를 얻지 못하고, 커스텀 Movie 구조체를 사용했지만, 만족스러운 속도를 얻을 수 없었습니다. 단일 사진을 로드할 때는 느끼지 못했지만 용량이 큰 영상을 로드하게 되면서 해당 문제점을 인지하게 되었고, 이를 해결하기 위해 PHPickerViewController + PHAsset을 활용하여 문제를 해결하였습니다. 1. PhotosPick..
2025.09.15 -
[iOS] 원격알림+
1. 푸시 알림에 대한 설명2. 원격 알림에 대한 설명3. 원격알림+ 1. Foreground에서 알림이 왔을 때앱이 포그라운드에 있을 때, 사용자에게 알림을 보여줄지, 별도로 인앱 처리(토스트, 커스텀 배너 등)를 할지 제어기본적으로는 알림 배너가 자동으로 표시 되지 않음userNotificationCenter 활용[.banner, .sound, .badge] → iOS가 기본 알림처럼 표시[] → 직접 UI로 표시하거나 무시 가능 // 포그라운드에서 수신 시 동작 func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotificatio..
2025.08.01 -
[iOS] 원격 알림(Remote Notificatoin)
1. Remote Notification이란?서버에서 APNs(Apple Push Notification service) 를 통해 사용자의 iOS 기기(App) 로 메시지를 전달하는 시스템 앱이 실행 중이 아니어도 서버가 사용자에게 메시지를 보낼 수 있는 기능입니다.메시지는 알림센터에 배너로 표시되거나, 백그라운드에서 데이터 업데이트를 트리거할 수 있습니다. 2. APNs(Apple Push Notification Service)란?APNs는 Apple이 운영하는 전 푸시 알림 중계 서버입니다.모든 iOS, iPadOS, macOS, watchOS 기기는 APNs에 고유한 식별 토큰(Device Token) 을 가지고 있고,이 토큰을 통해 특정 기기로 메시지를 안전하게 전송할 수 있습니다. 3. 전..
2025.07.27