아래와 같은 Live 방송 애니메이션을 만들어보겠습니다. 1. 3개의 뷰 준비 var view1 = UIView() var view2 = UIView() var view3 = UIView() var viewStack = [UIView]() lazy var targetSize = self.frame.size override init(frame: CGRect) { super.init(frame: frame) self.backgroundColor = .clear viewStack.append(view1) viewStack.append(view2) viewStack.append(view3) setupLayout() viewStack.forEach { animate($0)} self.transform = CGAf..
1. DispatchGroup과 DispatchQueue 만들기 let dispatchGroup = DispatchGroup() let queue = DispatchQueue(label: "queue", qos: .default, attributes: .concurrent) dispatchGroup은 한 단위로 모니터하는 작업 그룹입니다. dispatchQueue는 실행 작업을 계획합니다. 2. 첫 번째 실행되는 API func getReviewList() { showIndicator() NetworkService.getData(type: .getReviews, headers: nil, parameters: nil) { [weak self] (result: Result) in switch result {..
HTTP Live Streaming 오디오와 비디오를 iOS, tvOS, macOS 기기로 보냅니다. Overview HTTP 라이브 스트리밍(HLS)은 iPhone, iPad, iPod touch 및 Apple TV를 포함한 iOS 기반 장치와 데스크톱 컴퓨터(macOS)에서 재생하기 위해 웹 서버에서 HTTP를 통해 오디오와 비디오를 전송합니다. 웹을 구동하는 동일한 프로토콜을 사용하여 HLS는 일반 웹 서버와 콘텐츠 전송 네트워크를 사용하여 콘텐츠를 배포합니다. HLS는 유무선 연결의 사용 가능한 속도에 맞춰 재생을 최적화함으로써 네트워크 상태에 따라 동적으로 적응하고 신뢰할수 있게 설계되었습니다. 애플은 AVKit, AVFoundation, WebKit 등 HTTP Live Streaming을 지..
서로 다른 Model, Enpoint를 갖는 두 가지 get을 한 개의 function을 이용해서 사용해보겠습니다. 아래 사이트에서 제공하는 OpenAPI를 사용하였습니다. dog.ceo Dog CEO. Good Dog Business. Leaders in the dog and canine business world. dog.ceo enum APIError: Error { case response } enum URLType { case list case randomImage(String) var baseURL: String { return "https://dog.ceo/api/" } var makeURL: String { switch self { case .list: return "\(baseURL)br..