[Swift] Swift Concurrency async / await
·
iOS/🔎 swift 정리하기
GCD (Grand Centeral Dispatch)일반적으로 네트워크 통신을 할 때 우리는 비동기적으로 코드를 작성한다.다음과 같이 비동기적으로 요청을 하여 응답 결과를 call back 받기 위해 completion handler를 통해 받아오고, 받아온 데이터를 화면에 반영한다.func fetchThumbnailURLSession(completion: @escaping (Result) -> Void) { let url = URL(string: "https://www.themoviedb.org/t/p/w600_and_h900_bestv2/7M2pc9OboapgtoBbkU49Aim7O5B.jpg")! let request = URLRequest(url: url, cachePolicy: .re..
[iOS/WWDC23] viewIsAppearing() 알아보기
·
iOS/💻 iOS Study
WWDC23에서 발표된 새로운 생명주기 메서드에 대해 알아봅시다. 23년에 발표되긴 했지만 iOS 13부터 적용이 가능하다. viewIsAppearing()은 viewWillAppear()가 호출된 후, viewDidAppear() 호출 전에 호출되는 메서드이다. viewWillaAppear()에서는 아직 뷰가 올라오기 전이고, viewIsAppearing()에서는 뷰가 뷰의 계층 구조 상에 올라온 후 호출된다. 때문에 viewIsAppearing()에서는 뷰의 크기나 초기 기하구조를 다루는 코드를 에서 수행할 수 있다. 그렇다면 viewDidAppear()시점에 수행해도 되는 것이 아닌가? viewDidAppear()도 사용자의 눈에 뷰가 보이기 전에 뷰를 다룰 수 있지만 사용자에게 보여지기 직전이기 ..
[iOS/ReactorKit] ReactorKit 알아보기
·
iOS/💻 iOS Study
최근 프로젝트에서 적용한 ReactorKit에 대하여 정리해보고자 한다. 이전에 RxSwift + MVVM Input-Output 패턴을 적용하여 개발했는데, ReactorKit 구조와 비슷하다는 이야기를 들어서 한 번 적용해보았다. 특징 단방향 흐름을 가진 반응형 프레임워크이다. RxSwift와 필수적으로 함께 사용된다. RxSwift의 Observable을 통해 비동기적으로 데이터를 처리하고, 사용자의 이벤트 처리와 UI 업데이트 쉽게 관리할 수 있다. View와 Reactor로 구성되어있고, Reactor가 ViewModel과 같은 역할을 한다. 네트워크 통신이나 db 접근 등 비즈니스 로직을 구성하게 된다. 기본 동작(➡️단방향 흐름➡️) Reactor에는 View에서 받은 Action과 작업(M..
[iOS/Swift] 토글되는 컬렉션뷰 만들기 - NSDiffableDataSourceSectionSnapshot
·
iOS/🗂️ 내 코드 기록하기
섹션마다 타입이 다른 셀로 disclosure collection view 만들기! 디자인을 받아보고선 이건 대체 어케 만드는걸까… 한참을 고민했다… 애플에서 제공한 Modern CollectionView 프로젝트에서 봤던 기억이 났고… 해당 프로젝트를 열어 코드를 뜯어보며 만들어나갔다… UICollectionViewListCell의 UICellAccessory 설정하기 현재 진행하는 프로젝트에 따라 내부에는 커스텀 셀, 타이틀에 해당하는 셀은 UICollectionViewListCell을 활용하기로 한다. UICollectionViewListCell의 악세사리 옵션 중 OutlineDisclosureOptions 을 이용하여 타이틀 셀을 접었다 펴기를 사용할 수 있도록 설정한다. // 부모 셀 (타이틀..