iyungui

iOS Developer

iOS Developer passionate about creating clean code and exceptional user experiences.

Swift Concurrency - Task 알아보기 (2)

Swift Concurrency - Task 알아보기 (2)

--- 핵심만 일단 정리하였다. Delaying an asynchronous Swift Task 사용 예제 언제 사용할까? 사용자가 무언가를 검색할 때, debouncing 을 주고, 현재까지 입력한 텍스트로 일정 시간 두었을 때? 검색 로직이 실행되게끔 하기! -> 바로 검색하게 하면, 매 텍스트마다 호출이 되기 때문. 로딩 화면을 보여줄 때! - 바로 로딩화면을 보여주지 말고, 데이터를 가져오는 시간이 일정 시간이 걸릴때부터 보여주는 것이 사용자 입장에서 더 좋음! 이때, delay Task를 사용하자. 가장 간단한 방법은 위에서 설명한 Task.sleep(nanosecond: ) 를 사용하는 방법 (이 때 await를 사용해야 함) 참고로 위 코드는 뷰컨을 빠르게 왔다갔다 하면 loading Task가 중복으로 실행되거나, 뷰를 떠났는데도 백그라운드에서 실행이 될 수 있으므로, viewWillDisAppear 에서 Task를 cancel 하는 작업이 필요하다. 간단하게 작업에…

Swift
Swift Concurrency - Task 알아보기 (1)

Swift Concurrency - Task 알아보기 (1)

본 글에서는 Swift Concurrency를 이번에 한번 제대로 배우고, 실제 프로젝트에서 사용하는 것을 목표로 한다. 최대한 Swift Concurrency를 내가 이해하기 쉽게 정리해보았다. 이러한 개념을 사용해서, 추후 프로젝트에서 정확한 방법으로 다루기 위해 정리한다. 1. Task의 역할 “act as a bridge between our synchronous, main thread-bound UI code, and any background operations” Task는 동기적인 UI 코드와 백그라운드 작업 사이의 다리 역할 2. 기존 방식과 차이점 “there are no self captures, no DispatchQueue.main.async calls, no tokens or cancellables that need to be retained” 전통적인 비동기 처리에서 필요했던 것들이 모두 불필요하다! DispatchQueue.main.async에서는 sel…

Swift