iOS/Swift16 Creating Swift Packages https://developer.apple.com/videos/play/wwdc2019/410/ Creating Swift Packages - WWDC19 - Videos - Apple Developer Whether you want to publish code to share with the community, or you just want a convenient way to organize the code in your apps, Swift... developer.apple.com 목차 Creating Local Packages 로컬 패키지는 Xcode workspace의 하위 프로젝트와 유사하다. 플랫폼 독립적이므로 애플의 모든 플랫폼에서 간단한 방식으로 코드를 사용할 수 있다. 재사용 가능한 코드.. 2023. 6. 7. Getting to Know Swift Package Manager https://developer.apple.com/videos/play/wwdc2018/411/ Getting to Know Swift Package Manager - WWDC18 - Videos - Apple Developer The Swift Package Manager makes it possible to easily develop and distribute source code in the Swift ecosystem. Learn about its goals,... developer.apple.com 목차 Why a package manager for Swift? Swift는 크로스 플랫폼 언어이다. 따라서, Swift 코드 빌드를 위한 거대한 크로스 플랫폼 툴이 필요했다. SwiftPM은 자체적.. 2023. 5. 28. Swift의 디자인 프로토콜 인터페이스 WWDC22 Embrace Swift generics(Swift 제네릭 활용)과 이어집니다. https://developer.apple.com/videos/play/wwdc2022/110353/ 주요 내용 1. 프로토콜의 assiciated 타입이 Any 타입과 상호작용 하는 방법을 type erasure으로 이해 2. Opaque type으로 구현부 숨기기 3. 프로토콜의 동일 타입 요구 사항이 어떻게 서로 다른 구체 타입 집한 간의 관계를 모델링하는지 1. Understand type erasure 2개의 Animal 타입, 2개의 Food 타입이 있다. Animal 프로토콜은 Food를 채택한 CommodityType을 연관타입으로 가지며 이것을 produce하도록 명시한다. 다이어그램으로 나타내면.. 2023. 4. 27. ARC in Swift: Basics and beyond https://developer.apple.com/videos/play/wwdc2021/10216/?time=1190 ARC in Swift: Basics and beyond - WWDC21 - Videos - Apple Developer Learn about the basics of object lifetimes and ARC in Swift. Dive deep into what language features make object lifetimes observable,... developer.apple.com Swift에서 struct, enum은 값타입, class는 참조타입이다. class를 사용하면 의도하지 않은 share가 발생 할 수 있다. class를 사용한다면 Swift는 Authomat.. 2023. 4. 13. Understanding Swift Performance https://developer.apple.com/videos/play/wwdc2016/416/ Dimensions of Performance 그래프가 왼쪽에 있을 수록 성능이 좋다! Allocation Stack 스택 포인터를 이용하여 빠르게 allocate/deallocate 가능 Heap Advanced data structure 동적 lifetime으로 메모리 할당 가능 (스택을 불가능) 할당을 위해 메모리에서 사용하고 있지 않은 블록을 찾는 과정 필요 deallocate를 위해 메모리의 적절한 위치에 블록을 reinsert 해야함 Thread Safety를 위한 오버헤드 발생 여러 스레드가 동시에 힙에 접근 할 수 있다. 따라서, lock 또는 다른 동기화 메커니즘을 통해 무결성을 보호해야 한다.. 2023. 3. 13. Explore structured concurrency in Swift 프로그래밍 언어의 초기에는 instructions의 순서대로 작성되어 가독성이 좋지 않았다. 하지만 오늘날의 언어는 structured programming을 통해 control-flow가 통일성(uniform)을 가지게 되어 가독성이 좋아졌다. (if - then 구문) Swift는 Static Scope를 사용한다. Concurrency에서의 Structured Programming 썸네일 이미지를 가져오는 전통적인 방식의 비동기 처리 코드 (escaping closure 사용) func fetchThumbnails( for ids: [String], completion handler: @escaping ([String: UIImage]?, Error?) -> Void ) { guard let id .. 2023. 2. 11. 이전 1 2 3 다음