Async/Await (Fin)
마지막 글이되겠다. 5시간 강의였는데 하나하나 정리하면서 넘어가다보니 꽤나 많은 시간이 걸렸다. MainActor MainActor란? MainActor는 UI 업데이트와 관련된 코드를 안전하게 실행하기 위해 사용되는 Swift의 동시성 모델이다. 이를 사용하면 UI 상태 변경이 항상 메인 스레드에서 이루어지도록 보장한다. ...
마지막 글이되겠다. 5시간 강의였는데 하나하나 정리하면서 넘어가다보니 꽤나 많은 시간이 걸렸다. MainActor MainActor란? MainActor는 UI 업데이트와 관련된 코드를 안전하게 실행하기 위해 사용되는 Swift의 동시성 모델이다. 이를 사용하면 UI 상태 변경이 항상 메인 스레드에서 이루어지도록 보장한다. ...
시나리오: 간단한 숫자 증가 앱 class Counter { var value = 0 func increment() -> Int { value += 1 return value } } struct ContentView: View { var body: some View { ...
Bank Account Playground 만들기 class BankAccount { var balance: Double init(balance: Double) { self.balance = balance } func withdraw(_ amount: Double) { ...
Async Sequence를 지원하는 API URL FileHandle URLSession NotificationCenter 또한 우리가 알고있는 고차함수 map, compactMap, filter, first, prefix, zip 등을 활용할 수 있다. WWDC 1. FileHandle URL은 직전에 했기에 FileH...
AsyncSeqeunce 지진정보를 가지고 해보려한다. 1. without AsyncSequence 우선 여기서 특이점이라면 extension URL { func allLines() async -> Lines { Lines(url: self) } } struct Lines: Sequence { ...
Concurrent Tasks 이번엔 동시에 작업을 생성하는 방법에 대해 다뤄본다. Async let 이 작업은 여러 하위 작업(Child Tasks)을 가질 수 있다. 하위 작업은 async let 구문을 사용하여 생성되며, 결국 async let은 변수와 같은 역할을 한다. 이를 통해 이러한 작업이...
Structured Concurrency ? WWDC21에 해당 관련 설명이 있다. 한번 봐두는것도 좋을듯 아래는 WWDC에 나온 리소스 링크 Structured Concurrency Docs async let 우선 Structured Concurrency는 아래와 같이 있다. Async let Task Group Unstruc...
이제 공부한 내용을 새로운 프로젝트를 통해 적용해보도록 한다. 여기선 News App을 만들것이고 URLSessoin Async/Await Continuation DispatchQueue to MainActor 이렇게 3가지를 적용해본다. 현재 프로젝트에서 func fetchSources(url: URL?, completion: ...
Async/Await Apple이 제공하는 Async/Await 지원 API Apple은 여러 API에서 이미 async/await을 지원한다: URLSession HealthKit Notification Core Data MusicKit 기존 작성된 코드들의 문제점 기존에 작성한 코드가 completion handlers나...
MVVM 디자인 패턴 적용하기 Async_Await (2)에서 했던 프로젝트를 이어서 진행한다. 구현할 매커니즘에 대해 간략하게 표현하면 다음과 같다 Webservice 구현 Webservice 클래스 파일을 하나 만들어 준다. 그리고 기존에 구현했었던 getDate 함수를 옮겨준다. class Webservice { p...