WWDC21, Meet Async/await in Swift (Apple)
1. Completion handler를 사용하여 비동기 구현 이렇게 작성하면 비동기처리가 가능하지만 미묘한 버그가 끼어들 수 있음 가독성이 좋지 않고 코드의 길이가 길어짐 func fetchThumbnail(for id: String, completion: @escaping (Result<UIImage, Error>) -&...
1. Completion handler를 사용하여 비동기 구현 이렇게 작성하면 비동기처리가 가능하지만 미묘한 버그가 끼어들 수 있음 가독성이 좋지 않고 코드의 길이가 길어짐 func fetchThumbnail(for id: String, completion: @escaping (Result<UIImage, Error>) -&...
URLSession의 기본 구조 URLSession은 네트워크 요청을 처리하는 큰 컨테이너 객체이고, 그 안에서 개별 작업을 담당하는 것이 URLSessionTask URLSessionConfiguration 세션의 동작 방식을 정의 (캐시 정책, 쿠키 저장 여부, 타임아웃, 백그라운드 여부 등) 옵션이라 필요에 따라 사용가능함. ...
ViewController //MARK: - ViewController class ViewController: UIViewController { let viewModel: ViewModel = ViewModel() let tableView: UITableView = { let tableView = UIT...
1. Delefate Pattern Protocol 정의 protocol AddViewControllerDelegate: AnyObject { func didAddData(_ data: Item) } 데이터를 보내는 뷰 class AddViewController: UIViewController { weak var delegate: AddV...
개요 Alamofire는 Swift로 작성된 HTTP 네트워킹 라이브러리로, Apple의 URLSession과 Foundation 네트워킹을 기반으로 구축된 고급 라이브러리. URLSession의 복잡성을 추상화하여 더 간단하고 직관적인 API를 제공 설치 방법 https://github.com/Alamofire/Alamofire.git 주소를 ...
UITabBarController의 역할 UITabBarController는 여러 뷰 컨트롤러를 관리하는 컨테이너 뷰 컨트롤러 콘텐츠를 직접 표시하는 것이 아닌, 다른 뷰 컨트롤러들을 담아 보여주는 역할 만드는 방법 UITabBarController 인스턴스 생성 앱의 진입점인 SceneDelegate.swift파일에서 UI...
상세페이지로 이동 sceneDelegate 수정 뷰컨트롤러를 네비게이션컨트롤러로 감싸서 상세페이지로 이동이 가능하도록 설정 앱의 라이프사이클을 관리하는 객체인 UIScene을 ios 13 이후로는 여러개의 윈도우를 가질 수 있게 되면서 UIWindowScene타입으로 캐스팅 ...
@Namespace에 대해서 알아보자 애니메이션 전환을 매끄럽게 만들기 위해 사용되는 속성 래퍼. 특히 matchedGeometryEffet와 함께 자주 쓰임 두 뷰를 서로 연결하여 한뷰에서 다른 뷰로 부드럽게 형태/위치/크기가 변하는 애니메이션을 만들어줌 사용법 @Namespace변수를 뷰에 선언 @Namespace var...
스위프트 기초 스위프트 언어의 특성 안전성: 개발자의 실수를 강제적이라고 느낄 수 있는 문법적 제재(옵셔널, guard 구문 등)를 통해 제어. 객체지향 프로그래밍: 여러 개의 독립된 단위인 객체의 모임으로 파악. 객체는 서로 메시지를 주고받으며 데이터 처리 객체지향에서의 클래스와 객체 클래스: 같은 종류의 집간에 속하는 속성과 행위...
#개요 GCD(Grand Central Dispatch)는 iOS에서 멀티스레딩을 쉽게 구현하기 위한 Apple의 라이브러리. 자동으로 비동기, 동시성 처리, 작업 큐 관리 등을 효율적으로 수행할 수 있게 해준다. 우선적으로 알아야 하는 개념들 큐 작업들을 저장하고 순서대로 처리하는 작업 저장소이다. FIFO(First In First Out) 구...