본문 바로가기

Dev/iOS22

[SwiftUI] iOS 13 -> iOS 14 변경점 해당 문서는 확인된 사항들을 누적해서 기록할 예정이다. iOS 13 Target SDK로 구현시 참고할 사항 GridView LazyVGrid / LazyHGrid 사용보다는 iOS 13에서 사용하던 VStack과 HStack 조합을 사용하는 것이 좋을 것 같다. iOS 버전으로 구분하여 구현 시 오히려 유지보수가 어려워질 수 있다. Lazy Loading 이 필요하다면 UICollectionVIew를 UIViewRepresentable를 이용해서 구현하고, 단순히 GridView 형태는 VStack, HStack 조합으로 구현하거나 다른 Framework 를 사용하자. 비교표 구분 iOS 14 iOS 13 비고 공통 .ignoresSafeArea() : 안전영역 무시하기 ignoresSafeArea 로.. 2021. 10. 29.
[SwiftUI] 신규 SwiftUI 프로젝트에서 AppDelegate, SceneDelegate 사용하기 아래 내용은 XCode 13.1 을 기준으로 작성했다. 1. 프로젝트 생성 XCode 13.1 에서 프로젝트를 생성 시 Interface를 SwiftUI 로 생성하면, 기본 iOS SDK Target을 15.0으로 한다. 그리고 프로젝트의 시작은 기존 AppDelegate 및 SceneDelegate가 아닌 App 프로토콜을 상속한 프로젝트명+App 구조체를 시작점으로 한다. (참고로 App 프로토콜은 iOS 14 이상에서 사용 가능하다.) import SwiftUI @main struct TestApp: App { var body: some Scene { WindowGroup { ContentView() } } } 2. AppDelegate 및 SceneDelegate 파일 생성 AppDelegate와.. 2021. 10. 29.
[SwiftUI] @State 값 변경 감시하기 기존에는 Toggle, Text Filed, Picker와 같은 기본 제공하는 View에서 Binding 값들이 변경되는 것을 탐지 할 수 없었다. iOS 14에서는 다음과 같은 함수를 제공해주고 있어서 이를 활용하면 된다. @State private var isOn = false var body: some View { Toggle("제목", isOn: $isOn) .onChange(of: isOn) { value in print("\(value)") } } iOS13+ iOS 13에서는 onChange 함수가 없기 때문에 Binding 을 확장해서 사용하면 된다. extension Binding { func didSet(execute: @escaping (Value) -> Void) -> Binding.. 2021. 10. 28.
[SwiftUI] LifeCycle 변경하기 (SwiftUIApp -> UIKit App delegate) 출처: https://webcache.googleusercontent.com/search?q=cache:cmQRJj6rQFIJ:https://mokacoding.com/blog/how-to-migrate-from-swiftui-to-uikit-life-cycle/+&cd=3&hl=ko&ct=clnk&gl=kr How to migrate from SwiftUI to UIKit App Delegate Life Cycle in Xcode | mokacoding This brief tutorial shows how to convert a SwiftUI app from the SwiftUI to the UIKit App Delegate life cycle in Xcode. Unfortunately, there i.. 2021. 8. 16.