SwiftUI
-
PhotoPicker를 구현해 ProfileImage 뷰 구현하기SwiftUI 2023. 6. 10. 20:21
iOS 14.0 에서 PHPickerViewController 가 추가되었습니다. 해당 ViewController를 이용해서 SwiftUI에서 사용할 수 있는 PhotoPicker를 구현하고 이를 이용해 프로파일 이미지 뷰를 구현해 보겠습니다. 기본적으로 ViewController를 SwiftUI에서 사용하기 위해서는 UIViewControllerRepresentable 프로토콜을 구현해 주어야 합니다. 해당 프로토콜은 아래의 두 함수를 구현하도록 하고 있습니다. PHPickerViewController 를 이용해 PhotoPicker 구현하기 func makeUIViewController(context: Self.Context) -> Self.UIViewControllerType func updateU..
-
AsyncImage 구현하기(1)SwiftUI 2023. 6. 9. 16:25
iOS15에 추가된 AsyncImage가 추가되었습니다. 이제 URL만 입력해 주면 알아서 해당 위치의 AsyncImage에 url 위치의 이미지를 다운로드 해줍니다. 해당 AnyncImage는 SwiftUI 특성 상 화면에 사라지면 소멸되고 다시 화면에 표시되려면 재 생성해야 하는데 캐시 기능이 없는 AsyncImage는 네트워크에서 이미지를 다시 다운로드 해야하는 단점이 있습니다. 또한 iOS15 이전에서는 사용할 수 없습니다. 그래서 여기에서는 AsyncImage 정의를 이용해서 동일한 타입의 CachedAsyncImage 를 구현 해 보도록 하겠습니다. 먼저 AsyncImage의 아래와 같은 세개의 초기화 함수가 있습니다. public init(url: URL?, scale: CGFloat = 1..
-
Core Buletooth 사용하기SwiftUI 2023. 6. 6. 20:52
Core Bluetooth 프레임워크는 앱이 저전력을 지원하거나 흔히 클래식이라고 부르는 BR/EDR 장비와 통신을 지원하기 위한 프레임워입니다. 중요한 점은 Core Bluetooth 에 클래스는 상속을 받아 재정의를 하면 안된다고 공식 문서에 나와 있습니다. 여기서는 iOS 디바이스로 주변 불루투스 장비를 검색하는 SwiftUI 앱을 구현해 보겠습니다. 우선 BLE에 대해 간단히 살펴 보겠습니다. BLE는 Bluetooth Low Energy 의 약자로 저 전력 모드를 지원하는 블루투스를 의미합니다. 이 후 기존의 블루투스 관련 프로토콜은 클래식 이라는 이름으로 사용되고 있습니다. 이전 클래식 버전이 저 지연과 고 데이터 전송을 위해 발전되어 왔다면 BLE는 얼마나 적은 전력을 소모하느냐는 관점에서 ..
-
Maintaining the adaptable sizes of built-in viewsSwiftUI/SwiftUI 애플 문서 한글화 2023. 6. 5. 16:59
SwiftUI Concept Tutorials SwiftUI에서 제공하는 뷰를 적응가능 한 크기로 유지하기 앱이 표시할 컨텐츠의 타입에 따라 모든 디바이스에 뷰에 유동적으로 레이아웃이 적용되도록 유지해야 합니다. Swift UI가 뷰의 크기를 자체적으로 결정하는데, 적응성(뷰의 크기가 어떠하든 뷰가 해당 디스플레이에 유동적으로 표시되는 특성)을 유지하면서 기본적으로 제공되는 뷰의 크기를 수정하는 방법을 이해해하는 것이 레이아웃을 유동적으로 동작하게 하여 코드를 복잡하지 않게 만드는 가장 좋은 방법입니다. 텍스트와 심볼 텍스트와 심볼은 앱의 레이아웃을 정의할 때 NavigationLink, Button Label, Table 등에서 사용자에게 정보를 전달하는 중심적인 역할을 합니다. 정보를 표시하거나 다른..
-
Exploring the structure of a SwiftUI appSwiftUI/SwiftUI 애플 문서 한글화 2023. 6. 5. 15:40
SwiftUI Concept Tutorials 이 문서는 https://developer.apple.com/tutorials/swiftui-concepts/exploring-the-structure-of-a-swiftui-app 을 한글화한 문서로 SwiftUI를 처음 접할 때 가장 먼저 읽어봐야 하는 내용입니다. SwiftUI 앱의 구조 속으로 SwiftUI는 앱의 사용자 인터페이스(UI) 즉 화면을 구성하는 데 도움을 주는 선언적(declarative) 프레임워크입니다. SwiftUI의 구조를 형성하는 가장 기본이 되는 요소는 App, Scene 및 View 프로토콜입니다. 이 샘플은 코드 라인을 살펴보고 발생한 일과 그 이유를 설명함으로써 이러한 프로토콜을 소개합니다. Section1 앱 구조체는 ..
-
Migrating to new navigation typesSwiftUI/SwiftUI 애플 문서 한글화 2023. 6. 5. 14:48
Article 이 문서는 https://developer.apple.com/documentation/swiftui/migrating-to-new-navigation-types 에 대한 한글화 문서입니다. 새로운 네비게이션 타입으로 전환 NavigationView를 Navigation Stack 이나 Navigation Split View 로 전환하여 앱의 탐색 동작을 향상시키기 Overview 앱의 최소 배포 타겟이 iOS 16, iPadOS 16, macOS 13, tvOS 16 또는 watchOS 9 이상인 경우 NavigationView를 NavigationStack 이나 NavigationSplitView로 교체하세요. 이를 사용하는 방법은 탐색(Navigation)을 한 열에서 수행하는지 아니면..
-
UIApplicationDelegateAdaptorSwiftUI/SwiftUI 애플 문서 한글화 2023. 6. 5. 13:51
Structure 이 문서는 https://developer.apple.com/documentation/swiftui/uiapplicationdelegateadaptor 를 한글화한 문서입니다. UIApplicationDelegateAdaptor UIKit의 app delegate를 생성하는 데 사용하는 레퍼타입의 프로퍼티 Declaration @MainActor @propertyWrapper struct UIApplicationDelegateAdaptor where DelegateType : NSObject, DelegateType : UIApplicationDelegate Overview SwiftUI 수명 주기를 사용하는 앱에서 app delegate 콜백을 처리하려면 UIApplicationDel..
-
Managing model data in your appSwiftUI/SwiftUI 애플 문서 한글화 2023. 6. 5. 13:23
Article Hype boy 아티스트 NewJeans 앨범 NewJeans 1st EP 'New Jeans' 발매일 2022.08.01 이 문서는 https://developer.apple.com/documentation/swiftui/managing-model-data-in-your-app 를 한글화한 문서입니다. 앱에서 모델 데이터 관리 앱의 데이터 모델 과 뷰 사이의 연결 Overview 일반적으로 앱에서 데이터는 사용자 인터페이스나 다른 로직과 별개로 데이터 모델을 사용하여 저장하거나 처리합니다. 이렇게 모델을 분리하는 경우 모듈화를 향상시키고, 테스트 가능성을 개선하며, 앱의 작동 방식에 대해 쉽게 이해할 수 있도록 합니다. 기존에는 뷰 컨트롤러를 사용하여 모델과 사용자 인터페이스 간에 데이터..