[회고] 신입 iOS 개발자가 되기까지 feat. 카카오 자세히보기
반응형

분류 전체보기 495

[Swfit] resolvedColor(with:) / UITraitCollection.current

resolvedColor(with:) UIColor의 Instance Method인 resolvedColor는 주어진 trait을 기반으로 UIColor를 resolve합니다. 해당 UIColor가 다크모드를 지원하는 Dynamic Color일 경우 현재 다크모드 스타일에 맞는 Color를 반환합니다. Core Graphics의 Color 요소인 CGColor는 Dynamic Color를 지원하지 않습니다. 이러한 특징때문에 CGColor를 필요로하는 요소에서는 다크모드가 자동으로 적용되지 않습니다. let black = UIColor.myBlack.cgColor 이 과정에서 resolve가 일어납니다. cgColor는 Dynamic Color를 지원하지 않기때문에 현재의 trait에 맞춰 resolve..

🍎 Apple/Swift 2023.10.27

[Combine] Publishing 타이밍 조절하기 (Connectable Publishers)

Controlling Publishing with Connectable Publishers(https://developer.apple.com/documentation/combine/controlling-publishing-with-connectable-publishers)를 의역한 글입니다. Connectable Publishers Publisher가 Subscriber에게 Element를 보내기 시작하는 시기를 조정하는 방법 Overview Publisher가 특정한 동작에 영향을 미치는 속성을 보유하는 경우 Publisher가 Element 생성을 시작하기 전에 Publisher를 구성하려 할 수 있다. 근데 흔히 쓰는 Subscriber인 sink(receiveValue 는 즉시 무제한의 Eleme..

[SwiftUI] SwiftUI의 신비를 풀어보자 (Demystify SwiftUI)

본 포스팅은 WWDC21 : Demystify SwiftUI 세션을 기반으로 작성되었습니다. (Demystify = 신비를 풀다) https://developer.apple.com/videos/play/wwdc2021/10022/ SwiftUI가 우리 코드를 바라볼 때 이들을 어떤 것을 중점적으로 살펴보고 있을까? 답은 3개이다. Identity : 어떻게 특정 요소를 동일한 것 혹은 다른 것으로 파악하는지 Lifetime : 어떻게 뷰와 데이터의 존재 여부를 시간에 따라 추적하는지 Dependency : 어떻게 인터페이스를 업데이트할 타이밍과 그 이유를 이해하는지 SwiftUI에서는 이 세가지 개념을 통해 “언제, 무엇을, 어떻게” 변화시켜야하는지 파악한다. Identity 먼저 '어떻게 특정 요소를 ..

🍎 Apple/SwiftUI 2023.09.16

[VisionOS] 공간컴퓨팅 앱 개발 시작하기

본 포스팅은 WWDC23의 Get started with building apps for spatial computing를 요약하여 정리한 것입니다. Get started with building apps for spatial computing 공간컴퓨팅 앱을 구축하는 방법에 대해서 알아보자. Fundamentals 공간컴퓨팅 앱을 구성하는 기본적인 요소 및 개념들에 대해 알아보자. Shared Space 기본적으로 앱은 ‘Shared Space’라는 공간에서 실행된다. 이 공간에서 다양한 앱들이 실행되며, 이는 Mac에서 여러 앱이 동시에 실행되는 것과 같다고 볼 수 있다. 사람들은 Passthrough를 통해 주변과의 연결성을 유지한다. Window 각 앱에는 하나 이상의 Window가 있다. 이는 ..

🍎 Apple/VisionOS 2023.08.15

[SwiftData] ModelContainer, ModelContext

본 게시글은 WWDC 2023의 Dive deeper into SwiftData 세션의 내용을 정리한 것입니다. https://developer.apple.com/videos/play/wwdc2023/10196 @Model 을 통해 생성된 모델은 ModelContainer에 의해 실질적 스키마로서 동작하게 되며, 이를 기반으로 영구 저장 데이터가 생성되게 된다. 코드에서 Model 클래스의 인스턴스로 작업을 하게되면 해당 인스턴스는 메모리에서 해당 상태를 추적하고 관리하는 ModelContext에 연결된다. ModelContainer 스키마와 영구 저장 데이터간의 bridge 역할을 한다. 객체가 메모리에 저장될지, 디스크에 저장될지 등 객체의 저장 방식에 대한 설명이 포함된다. Versioning, M..

[SwiftData] Migration과 버전관리

본 게시글은 WWDC 2023의 Model your schema with SwiftData 세션의 내용을 정리한 것입니다. https://developer.apple.com/videos/play/wwdc2023/10195 Modeling 복습 SwiftData를 Import하고 class에 @Model 매크로를 부여하는 것으로 스키마를 생성할 수 있다. @Attribute(.unique) 매크로를 통해 특정 속성을 유니크하게 만들 수 있다. 만약 이미 존재하는 프로퍼티를 Insert하려 하면 기존에 존재하던 데이터를 업데이트한다. (upsert) 기존에 존재하던 속성의 이름을 그냥 바꾸면 단순히 새로운 속성만 생성되고 이전 속성의 데이터는 모두 삭제된다. 이름을 바꾸고 기존의 데이터를 보유하기 위해서는 ..

[SwiftData] Meet SwiftData

https://developer.apple.com/videos/play/wwdc2023/10187/?time=463 해당 게시글은 WWDC 2023의 Meet SwiftData 세션을 글로 정리한 것입니다. Meet SwiftData SwiftData는 Swift의 Macro 시스템을 적극 활용중이며 SwiftUI는 물론이고 CloudKit, Widget과도 자연스럽게 통합됨. 해당 세션에서는 다음 세가지를 설명함. @Model 매크로를 통해 Swift 코드 내에서 모델을 직접 만드는 방법 내 데이터를 fetch하고 modify하는 방법 SwiftUI와 어떻게 원활하게 작동하는지에 대한 개요 Using the model macro @Model는 Swift Code 내에서 Model Schema를 정의할 ..

[Swift] Attributes

Attributes 선언 혹은 타입에 새로운 정보를 추가하는 역할을 수행한다. 예를 들면 discardableResult 는 함수의 선언부에 사용되어서, 해당하는 함수의 리턴값을 사용부에서 사용하지 않아도 에러를 띄우지 않도록 컴파일러에게 알려주는 역할을 한다. @ 심볼을 통해 attribute를 확인할 수 있으며 심볼 뒤에는 그 attribute의 이름이 따라온다. 추가적인 정보가 필요할 경우 해당 attribute의 arguments도 뒤에 붙는다. @ @() 종류 attached macro도 Attributes 버전 제한둘때 쓰는 available 도 Attribute @available(iOS 10.0, macOS 10.12, *) discardableResult, dynamicCallable 등..

🍎 Apple/Swift 2023.07.29

[SwiftData] 기본설명 및 특징

https://developer.apple.com/xcode/swiftdata/ SwiftData 선언적 코드로 데이터를 쉽게 관리해주는 도구. Swift 코드를 통해 안정적으로 쿼리 요청을 보내고 필터링할 수 있다. SwiftUI와의 연동성도 좋다. 모델생성 용이 모델도 @Model 어트리뷰트만 붙여주면 추가적인 파일이나 도구없이 관리가 가능하다. 또한 제약조건도 @Attribute(.unique) 와 같은 방식으로 간단하게 선언할 수 있다.당연히 Relationship 설정도 가능하다. @Model class Recipe { @Attribute(.unique) var name: String var summary: String? var ingredients: [Ingredient] } SwiftData..

[Xcode][문서의역] Stepping through code and inspecting variables to isolate bugs

디버깅 기초를 다시 잡으려고 문서를 읽었습니다. 애플에서 제공한 Stepping through code and inspecting variables to isolate bugs 문서를 의역했고, 그 외 기본적으로 필요한 Breakpoint에 대한 정보를 작성하기 위해 Setting breakpoints to pause your running app 문서의 내용도 조금 가져왔습니다. (Breakpoint는 간단하게 정리만 했습니다.) https://developer.apple.com/documentation/xcode/setting-breakpoints-to-pause-your-running-app https://developer.apple.com/documentation/xcode/stepping-thr..

🍎 Apple/Xcode 2023.07.15
반응형