2024/04 2

[iOS] infinite carousel DiffableDataSource + CompositionalLayout

[iOS] infinite carousel DiffableDataSource + CompositionalLayout UIKit에서 DiffableDataSource과 compositonalLayout을 사용하여 구현해보자. 전체 소스코드와 해당 코드에 대한 주석을 포스팅 제일 하단에 전부 넣어두었음. 예제 영상 무한히 회전하는 스크롤 뷰에 대한 구현 아이디어는 이미 많이 존재하나, 해당 포스팅에서는 diffableDataSource의 특성에 맞게끔 적용 (구현 방식) [앞에 붙는 id만 다른 원본] + [원본] + [뒤에 붙는 id만 다른 원본]을 먼저 구성한 후 한번에 apply diffable의 경우에는 데이터가 변경되었을 때, snapshot을 수정하는게 아닌 다시 찍음. 해당 부분은 iOS 13,..

apple/iOS 2024.04.16

[Swift] New access modifier: package

New access modifier: package Introduction 현재 다른 모듈에서 특정 심볼에 접근하기 위해서는 public으로 정의되어야 함. public 패키지 내외부 모두에서 접근 가능하기에 바람직하지 않음. 따라서 새로운 접근제어자를 만들어 심볼의 범위를 더 명확하게 하고자 함. Swift 5.9에서 도입 Motivation Module Engine in gamePkg: public struct MainEngine { public init() { ... } // `public`으로 의도된 프로퍼티 public var stats: String { ... } // 동일한 패키지의 `Game`에서만 접근할 수 있는 `run` 함수 public func run() { ... } } Modul..

apple/iOS 2024.04.05