swift(27)
-
[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] 원격알림+
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 -
[iOS] 알림 설정
1. iOS에서 알림이란사용자에게 메시지를 전달하는 도구이자, 앱 밖에서도 정보를 전달하고 행동을 유도하는 수단 알림의 종류로컬 알림(Local Notification)- 앱 내부에서 직접 생성한 알림- 리마인더, 타이머, 스케줄 등 원격 푸시(Remote Notification)- 서버를 통해 APNs를 거쳐 전달되는 알림- 메시지, 팔로우/팔로잉 좋아요 등 2. 알림의 기본 흐름(1) 권한요청앱이 알림을 보낼 수 있도록 사용자에게 허락을 받음@mainclass AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOption..
2025.07.26