Concurrency(1) - Concurrency란 Swift는 비동기 및 병렬 코드를 작성할 수 있도록 지원합니다. 비동기 코드는 한 번에 하나의 프로그램만 실행되지만 나중에 일시 중단했다가 다시 시작할 수 있습니다. 프로그램에서 코드를 일시 중단했다가 다시 시작하면 네트워크를 통해 데이터 가져오기 또는 파일 파싱과 같은 장기 실행 작업을 계속하면서 UI 업데이트와 같은 단기 작업을 계속 진행할 수 있습니다. 병렬 코드는 여러 코드 조각이 동시에 실행되는 것을 의미합니다. 예를 들어, 4코어 프로세서가 있는 컴퓨터는 4개의 코드 조각을 동시에 실행할 수 있으며 각 코어는 작업 중 하나를 수행합니다. 병렬 및 비동기 코드를 사용하는 프로그램은 한 번에 여러 작업을 수행합니다. 이 프로그램은 외부 시스템..
UIViewPropertyAnimator 변수를 만듭니다. var animator: UIViewPropertyAnimator? = nil 애니메이션을 정의합니다. animator = UIViewPropertyAnimator(duration: duration, curve: .linear) { self.aView.frame = CGRect(x: 0, y: 0, width: 60, height: 60) self.aView.backgroundColor = .systemRed } animator?.addCompletion { position in position.printPosition(#function) } animator?.startAnimation() addCompletion 을 이용해서 완료 후 동작을 추..
https://developer.apple.com/documentation/uikit/uiviewpropertyanimator 뷰의 변경 내용을 애니메이션으로 만들고 해당 애니메이션을 동적으로 수정할 수 있는 클래스입니다. Declaration @MainActor class UIViewPropertyAnimator : NSObject Overview UIViewPropertyAnimator 개체를 사용하면 변경 내용을 애니메이션으로 만들고 애니메이션을 완료하기 전에 동적으로 수정할 수 있습니다. property animator를 사용하면 애니메이션을 처음부터 끝까지 정상적으로 실행하거나 상호작용 하는 애니메이션으로 전환하여 시간을 직접 제어할 수 있습니다. 애니메이터는 frame, center, alph..
Combine https://developer.apple.com/documentation/combine 이벤트 처리 연산자를 결합하여 비동기 이벤트 처리를 사용자 정의합니다. Overview Combine 프레임워크는 시간 경과에 따른 값 처리를 위한 선언적 Swift API를 제공합니다 이러한 값은 여러 종류의 비동기 이벤트를 나타낼 수 있습니다. Combine은 게시자(publishers)가 시간에 따라 변경될 수 있는 값을 노출하도록 선언하고 구독자(subscribers)는 게시자로부터 해당 값을 수신하도록 선언합니다. Publisher 프로토콜은 시간에 따라 일련의 값을 전달할 수 있는 유형을 선언합니다. 게시자(Publishers)에는 업스트림 게시자로부터 받은 값에 따라 작업을 수행하고 다시 ..