목록생각정리/번역글(blog, WWDC) (6)
기어가더라도 제대로

1. 비동기 처리를 위한 Completion Handler 비동기 처리를 위해서 Completion handler를 많이 사용 문제점 비동기 작업이 실패하더라도 이 함수의 호출자(Caller)는 결과를 마냥 기다림 guard else { return } 을 사용하면 completion 에 담지 않아도 되는 경우가 생김 에러 핸들링을 강제할 수가 없다는 게 문제 func fetchThumbnail(for id: String, completion: @escaping (UIImage?, Error?) -> Void) { let request = thumbnailURLRequest(for: id) let task = URLSession.shared.dataTask(with: request) { data, res..

출처 developer.apple.com/wwdc19/707 Background에서도 실행되어야할 것들 Background 실행 개요 Background 란? background thread, background queue, 등이 있지만 여기선 foreground에서 실행하지 않는 작업 실행을 의미함 Background 작업으로 가야하는 이유 App 의 요청 download 작업, foreground 에서 미처 실행하지 못한 작업 Event Trigger 사용자가 외국으로 진입한다던가, 반응할 필요가 있는 건상상의 데이터가 발생한 경우 백그라운드 실행에서 고려할 중요한 3가지 Power 에너지를 사용하고, 배터리를 사용한다. BG 작업이 끝날 때 suspend 상태로 앱을 돌리기 위..

clean architecture + mvvm Tags: Pattern, Architect, 번역 등록일: 2022.09.12 블로그 포스팅 여부: In progress 작성소요시간: 3:00 학습일: 2022.09.14 가장 기본이 되는 규칙은 안쪽 층에서 바깥층으로 의존성이 없다는 것이다. 오직 안쪽으로만 의존성이 있을 수 있다. 3층 구조, Presentation, Domain, Data Domain Layer 는 가장 안쪽의 그림이다. 다른 계층으로 의존성도 없고 완전히 분리 되어있다. 도메인은 Entities(비지니스 모델), Use cases, 그리고 Repository Interface 를 가지고 있다. 이 계층은 다른 프로젝트에서 재사용될 수 있다. 이러한 분리는 테스트 타겟과 호스트 앱..