본문 바로가기

아이폰7

예제로 살펴보는 MVI Design Pattern with RxSwift 안녕하세요 여러분? 저번 시간에는 MVVM 디자인 패턴을 살펴보았는데요. 이번에는 약간 생소한 MVI 라는 패턴을 들고 찾아왔습니다. MVI 는 Model - View - Intent 로 구성되어 있는 단방향(Uni-Directional) 아키텍쳐 중 하나인데요. MVVM 의 경우 VM 이 Model 과 View 의 사이에서 양방향으로 통신하기 때문에 자칫 잘못하다간 VM 이 비대해지는 부작용이 발생할 수가 있습니다. 이러한 부작용을 해결하기 위해서 MVI 의 경우는 뒤를 돌아보지 않는 단방향 상남자의 아키텍쳐라고 볼 수 있겠습니다. View 에서 액션을 입력 받으면 Intent 에서 모델의 상태를 변환시키고, 그 변환된 상태의 모델을 뷰에 전달하여 유저에게 보여준다고 보시면 되겠습니다. 그런데 이렇게 .. 2020. 4. 8.
API 를 여러개 호출해야할때 모든 API 가 호출되었음을 확인하려면? 서버 개발자 분이 친절하게 한가지 API 에 모든 데이터를 다 파싱해서 넘겨주시는 경우도 있지만, 사실 그렇지 않은 경우가 많죠? 그럴때는 간단하게 Dispatch Group 을 사용하면 됩니다. 검색 결과를 받아오는 API 인데, 이게 호출하는 부분이 두개인 경우가 있다면 어떻게 처리해야 할까요? 바로 예시로 들어가겠습니다. let queryString = "아이유" let networkQueue = DispatchQueue(label: "network", qos: .background, attributes: .concurrent) let networkGroup = DispatchGroup() networkGroup.enter() API.shared.get(.blog, comp: queryString).. 2020. 2. 3.
SwiftUI를 사용하지 않고 Preview 사용하기 Xcode 11 및 Mac OS 를 카탈리나로 업데이트를 하게 되면 SwiftUI 로 프로젝트를 생성할때 기본값으로 프리뷰를 확인할 수 있습니다. 하지만 대부분의 회사에서는 현재 iOS13 이상만을 지원하는 SwiftUI 로 모든 프로젝트를 진행하기는 거의 불가능에 가깝다고 볼 수 있죠. 그렇기 때문에 오늘은 SwiftUI 를 사용하지 않고 기존의 코드베이스 오토레이아웃에서 프리뷰를 확인할 수 있는 방법을 알아보도록 하겠습니다. class MainViewController: UIViewController { let sampleView = UIView(frame: CGRect(x: 0, y: 0, width: 200, height: 200)) override func viewDidLoad() { super.. 2020. 1. 3.