MVVM
-
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 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..