some & any
·
iOS/Swift
SwiftUI를 사용하다보면 some View라는 반환 타입을 많이 보게된다. body의 반환 타입도 그렇고 뷰를 분리해서 따로 변수로 만들 때도 타입을 some View를 사용해서 반환하게 된다.나는 그 동안 some이 호출 시점에 타입이 확정되어 고정된 타입으로 사용할 수 있게 해주는 키워드라고 생각했다. 그러다가 하나의 함수에서 분기 처리에 따라 여러 종류의 뷰 타입을 리턴할 수 있는 함수를 만들 때 단순히 some View로 반환해주면 리턴 타입에서 문제가 없을 거라고 생각했다. 해당 코드는 아래와 같다.private func destinationView(type: ViewType) -> some View { switch type { case ViewType.original: ..
ViewBuilder(feat. resultBuilder)
·
iOS/SwiftUI
🤓 학습배경SwiftUI로 뷰를 만들다보면 ViewBuilder라는 프로퍼티 래퍼를 만나게 된다. 이 친구의 역할은 뭐고 어떻게 다양한 뷰들을 하나로 묶어주는 걸까라는 의문이 생겼다. 그래서 해당 내용에 대해 좀 더 공부해보게 되었다.@resultBuilder`ViewBuilder`에 대해 알아 보기 전에 미리 알고 가야하는 개념이 있다.바로 `@resultBuilder`다! `@resuiltBuilder`는 무엇일까? 먼저 예시 코드를 보자. 간단하게 특정 수를 판별해서 더하는 `@resultBuilder`를 구현해보았다.@resultBuilderstruct AddEvenNumbers { static func buildBlock(_ components: Int...) -> Int { ..
Swift의 다양한 이미지 - UIImage, CGImage, CIImage
·
iOS/Swift
CIImage..? CGImage...?iOS 개발을 하면서 이미지를 다루다 보면 다양한 이미지 타입들을 보게 된다. UIImage, CGImage, CIImage 그리고 SwiftUI의 Image까지..!(여기서는 SwiftUI의 Image까지 다루진 않는다!!) 이 많은 이미지 타입들은 과연 무엇이 다르고 각각 어떤 용도로 사용되는 것일까?UIImageUIImage | Apple Developer DocumentationUIImage의 공식문서를 보면 매우 간단하게 적혀있다.UIImage는 앱의 이미지 데이터를 관리하는 객체이다UIImage의 가장 큰 특징은 Immutable하다는 것이다. UIImage는 주어진 이미지 데이터를 가지고 화면에 표시하기 위해 렌더링이 완료된 이미지 객체이다.그래서 이 ..