SwiftUI
-
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 일반적으로 앱에서 데이터는 사용자 인터페이스나 다른 로직과 별개로 데이터 모델을 사용하여 저장하거나 처리합니다. 이렇게 모델을 분리하는 경우 모듈화를 향상시키고, 테스트 가능성을 개선하며, 앱의 작동 방식에 대해 쉽게 이해할 수 있도록 합니다. 기존에는 뷰 컨트롤러를 사용하여 모델과 사용자 인터페이스 간에 데이터..
-
Managing user interface stateSwiftUI/SwiftUI 애플 문서 한글화 2023. 6. 5. 12:18
Article Spicy 아티스트 aespa 앨범 MY WORLD - The 3rd Mini Album 발매일 2023.05.08 해당 문서는 https://developer.apple.com/documentation/swiftui/managing-user-interface-state 를 한글화한 문서입니다. 사용자 인터페이스 상태 관리 앱 내 뷰 계층에 뷰 별로 데이터를 캡슐화하여 뷰를 재 사용할 수 있도록 만들기 Overview 데이터를 뷰들 간 공유 할 수 있는 단일 소스로 이루어진 데이터가 필요한 경우 최소 공통 부모 뷰에 상태(State) 형태로 데이터를 저장합니다. 스위프트는 프로퍼티를 통해 데이터를 읽기 전용으로 제공하거나 바인딩(Binding)을 사용하여 상태에 대한 양방향 연결을 만들 수..
-
lottie-ios 프레임워크와 UIViewRepresentable 을 이용한 LoadingView 구현SwiftUI/MVVM 알아보기 2020. 8. 27. 20:44
로띠(lottie) 는 json 형식의 움직이는 이미지 포맷으로 aribnb에서 개발되었고 많은 웹이나 앱에서 사용되고 있다. UIKit과 SwiftUI에서는 직접 이를 지원하지 않으므로 lottie-ios 프레임워크를 Pod을 통해 설치하고 이를 통해서 LottieView를 구현할 수 있다. SwiftUI는 지원하지 않는 UIKit의 WebView 나 MapView등 사용하기 위해 UIViewRepresentable 프로토콜을 정의하고 있고 이를 구현함으로 써 쉽게 이를 SwiftUI로 전환 할 수 있다. 여기서는 lottie-ios 프레임워크와 UIViewRepresentable 프로토콜 구현을 통해 LottieView를 구현하고 이를 통해 날씨 정보를 로딩 하는 중 이를 화면에 표시하는 Loding..
-
SwiftUI 에서 CoreLocation 사용SwiftUI/MVVM 알아보기 2020. 8. 27. 15:49
이 전 블러그에서 텍스트 필드에서 입력받은 도시의 날씨를 표현하는 앱을 구현하였다. 이미지 location.fill 위치에 버튼을 추가하고 CoreLocation을 이용해 현재 좌표에 대한 날씨를 조회하도록 기능을 추가해 보자. 이 보다 먼저 ContentView의 body에서 상단 바와 날씨 정보를 보여주는 위젯을 Extract Subview를 이용해 두 영역을 하위 뷰로 분리한다. 위의 그림처럼 분리하고자 하는 VStack에 커서를 두고 ⌘ 누르고 마우스의 왼쪽키를 클릭하면 메뉴바가 나오는데 여기서 Extract Subview를 통해서 쉽게 분리할 수 있다. 뷰는 아래와 같은 구조를 가진다. struct ContentView: View { ... var body: some View { ZStack {..
-
SwiftUI MVVM 모델SwiftUI/MVVM 알아보기 2020. 8. 27. 04:45
이전 블러그에서 스트리보드를 이용한 MVC 모델에 대해서 살펴 보았다. MVC 모델은 ViewController 에 대부분의 코드가 위치하게 되고 UI 에 대한 액션도 ViewController에서 처리하고 데이터 모델을 직접 뷰에 설정해야 했다. SwiftUI 에서는 뷰 모델은 모델 데이터가 변경된 경우 이를 뷰에 통지한다. 뷰는 변경사항에 대한 통지를 받은 경우 뷰를 다시 그리게 된다. 이는 Obsever 패턴과 바인딩을 이용해 구현되어 있다. 이제 실제 어떻게 MVVM을 이용해 날씨 앱을 변경할 수 있는지를 살펴 보자 . ContentView.swift import SwiftUI struct ContentView: View { // ViewModel의 통지를 받을 수 있도록 @ObservedObje..
-
iOS 의 MVC 모델SwiftUI/MVVM 알아보기 2020. 8. 26. 00:21
iOS 앱을 제작 시 스토리 보드를 이용하는 경우는 MVC 패턴에 따라 프로젝트를 구성하고 구현하게 된다. 이는 iOS의 프레임워크가 이를 기반으로 구성되어있기 때문이다. openweather api 를 통해 도시에 대한 현재 날씨를 가져와 화면에 보여주는 간단한 예제를 통해 MVC 패턴에 대해 알아보고 SwiftUI 가 MVVM 패턴을 적용한 이유에 대해서 살펴보자. openweather api 는 REST API로 해당 요청에 대해 JSON 포맷에 대해 결과 값을 반환하는 구조로 이루어진다. 이를 사용하기 위해서는 openweather 웹사이트에서 무료로 키를 발급 받고 이 키값을 HTTP 요청에 다른 파라미터와 함께 전달해야한다. urlString = https://api.openweathermap..
-
SwiftUI ScrollView 와 ForEach 로 구현한 영화 포스트 리스트SwiftUI 2020. 8. 25. 08:12
import SwiftUI struct ContentView: View { var userData = posts var body: some View { //HStack 에 스크롤 뷰를 생성 - 수평 방향의 스크롤 뷰에는 인티케이터 비활성화 ScrollView(.horizontal, showsIndicators: false) { HStack { //userData 를 순환하면서 PostView 들을 HStack 에 넣고 ScrollView 생성 ForEach(userData) { post in PostView(post: post) } } } } } struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentVi..