SwiftUI Widget
·
iOS/Swift
📄 컨텐츠연습용 프로젝트를 만들다가 위젯을 도입하게 되었다. 위젯에 대해서는 하나도 모르는 상태로 시작해서 하나하나 알게된 내용을 정리해보려 한다.WidgetCreating a widget extension | Apple Developer Documentation위젯에 대한 공식 문서를 살펴보면 위젯을 어떻게 추가하는지 어떻게 코드를 적어야하는지 예시가 자세하게 설명되어 있다. 그 예시 코드로 설명을 적어보겠다.Widget 타겟 추가하기위젯은 다른 일반 화면처럼 단순히 View 파일을 생서해서 적용하는 것이 아니라 별도의 타겟을 추가해야한다. 따라서 만약 기본 앱 타겟에서 사용하는 기능들을 위젯에서도 사용하고 싶다면 해당 공통 기능들은 따로 모듈을 분리해서 사용하면 좋다.Widget 코드 작성하기@ma..
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: ..
Swift의 다양한 이미지 - UIImage, CGImage, CIImage
·
iOS/Swift
CIImage..? CGImage...?iOS 개발을 하면서 이미지를 다루다 보면 다양한 이미지 타입들을 보게 된다. UIImage, CGImage, CIImage 그리고 SwiftUI의 Image까지..!(여기서는 SwiftUI의 Image까지 다루진 않는다!!) 이 많은 이미지 타입들은 과연 무엇이 다르고 각각 어떤 용도로 사용되는 것일까?UIImageUIImage | Apple Developer DocumentationUIImage의 공식문서를 보면 매우 간단하게 적혀있다.UIImage는 앱의 이미지 데이터를 관리하는 객체이다UIImage의 가장 큰 특징은 Immutable하다는 것이다. UIImage는 주어진 이미지 데이터를 가지고 화면에 표시하기 위해 렌더링이 완료된 이미지 객체이다.그래서 이 ..