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

🍎 Apple/SwiftUI 6

[SwiftUI] some View의 사용 이유

Swift의 some View는 SwiftUI에서 자주 사용되는 새로운 기능입니다. 이는 Swift의 opaque return types 개념의 일환으로 도입되었습니다. some 키워드는 컴파일러가 반환 타입을 정확하게 알지만, 이를 숨기고 특정 프로토콜을 준수하는 타입임을 나타내기 위해 사용됩니다.some View의 개념some View는 특정 타입이 아닌 하나의 타입임을 보장합니다. 이는 사용자가 특정 프로토콜을 준수하는 반환 타입을 정의할 수 있도록 하면서도, 반환 타입의 구체적인 세부 사항을 숨깁니다.예제import SwiftUIstruct ContentView: View { var body: some View { Text("Hello, World!") }}이 코드에서 bo..

🍎 Apple/SwiftUI 2024.06.23

[SwiftUI] 관찰 중인 데이터를 변경하는 작업을 MainActor 환경에서 해야하는 이유

이미지 소스 및 정보 출처 : WWDC21 Discover concurrency in SwiftUI Run loop SwiftUI에서 View는 위와 같은 방식으로 업데이트된다. 이 때 이를 실현시켜주는 것이 Run Loop이다. Rup Loop는 MainActor에서만 동작한다. MainActor : Main Thread에서의 동작을 보장하는 Actor Example 이러면 Main Thread를 기반으로 작업을 처리하는 MainActor가 fetchPhotos 메서드로 인해 아무런 일도 수행하지 못한다. 그럼 update 함수를 async로 감싸면 괜찮지 않을까? 하지만 이렇게해도 문제가 발생한다. 이전 코드에서는 비록 fetchPhotos 메서드가 Main Thread를 점유하고 있기는 했지만 모든..

🍎 Apple/SwiftUI 2023.10.28

[SwiftUI] Observable macro를 통해 모델 데이터를 만들고 관리하는 방법

본 게시글은 애플 개발자 문서의 Managing model data in your app 아티클을 의역하여 작성되었습니다. Managing model data in your app SwiftUI 앱은 사용자가 인터페이스를 통해 수정할 수 있는 Data를 화면에 표시해준다. 이 데이터를 다루기 위해, 앱은 Data Model을 생성하고 사용한다. 이들은 데이터를 표시하기 위한 일종의 커스텀 타입이다. Data Model은 데이터와 상호작용하는 View와 데이터 자체에 대한 분리를 가능하게 한다. 이 분리는 모듈화에 기여하며, 테스트 용이성도 증대하고, 앱의 작동방식을 더 쉽게 추론하도록 도와준다. (helps make it easier to reason about how the app works.) 데이터..

🍎 Apple/SwiftUI 2023.10.28

[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

[SwiftUI] ForEach, Identifiable

본 게시글은 애플의 공식문서(https://developer.apple.com/documentation/swiftui/foreach)를 참고하여 작성되었습니다. ForEach 확인된 데이터의 기본 collection으로부터 계산된 view들을 만들 수 있는 구조체입니다. View Builder에는 for문을 적용할 수 없습니다. 대신 ForEach문을 사용합니다. 배열을 이용해 새로운 Bag of Views를 만들 수 있습니다. 단, collection의 요소는 Identifiable protocol을 채택해야 합니다. 배열은 요소들이 계속해서 추가 및 삭제되면서 순서가 바뀔 수 있습니다. 따라서 각 요소들이 고유한 identifier가 있어야 해당 요소로 만들어진 View를 확인할 수 있습니다. 만약 ..

🍎 Apple/SwiftUI 2022.03.30

[SwiftUI] Opaque Type, ViewModifier, View Combiner

Opaque Type some View는 View의 한 종류인것만 결정되어있고, 자세히 어떤 View인지는 컴파일러가 직접 판단하는 View입니다. Some은 Opaque Type (불투명 타입)을 표현합니다. Opaque Type Some은 computed property 혹은 함수의 구체적인 return type을 숨길 수 있도록 해줍니다. 이를 통해 간결한 코드 작성이 가능해집니다. Opaque Type은 Reverse Generic Type이라고 불리기도 합니다. Generic은 함수가 타입 제약을 유지하면서 다양한 타입을 허용할 수 있도록 합니다. Opaque은 함수가 자유로운 타입을 리턴할 수 있도록 합니다. ViewModifier SwiftUI에 내장된 프로토콜로, 기존의 뷰 또는 다른 Vi..

🍎 Apple/SwiftUI 2022.03.30
반응형