Swift
-
WWDC24 -
41:48 Swift 6으로 앱을 마이그레이션하기
기존 샘플 앱의 업데이트를 따라 Swift 6 마이그레이션 과정을 직접 경험해 보세요. 증분 마이그레이션 방법을 모듈별로 설명하고, 컴파일러로 데이터 레이스 위험이 있는 코드를 식별하는 방법을 공유합니다. 명확한 분리 경계를 보호하고 공유 가변 상태에 대한 동시 접근을 제거하는 다양한 기술을 배워보세요.
-
14:01 SwiftData의 새로운 기능
SwiftData는 표현적이며 선언적인 API로 앱의 영속성을 강화할 수 있도록 도와줍니다. 복합적인 고유성 관련 제약 사항, #Index를 통한 더욱 빠른 쿼리, Xcode 미리보기의 쿼리 및 풍부한 서술 표현 등 SwiftData의 개선 사항을 알아보세요. 이러한 기능을 사용하여 더욱 정교한 모델을 표현하고 앱 내 성능을 향상하는 방법을 함께 모색해 봅니다. SwiftData에서 맞춤형 데이터 저장소를 만들거나 History API를 사용하는 방법을 알아보려면 ‘SwiftData로 자체 데이터 저장소 만들기' 또는...
-
30:24 Swift의 새로운 기능
Swift와 관련된 업데이트를 확인해 보세요. 지난 10년간의 Swift의 역사를 간략히 살펴보고, 커뮤니티가 작업 그룹을 통해 성장해온 과정과 패키지 생태계를 확장하고 플랫폼 지원을 향상한 방법에 대해 알아보세요. 데이터 레이스 안전성을 기본으로 구현하는 새로운 언어 모드, 고도로 제한된 시스템에서 Swift를 실행할 수 있게 해주는 언어 하위 집합을 소개합니다. noncopyable 유형, 유형이 지정된 오류 처리 및 향상된 C++ 상호 운용성 등 언어와 관련된 업데이트도 살펴보세요.
-
23:58 Swift Testing 소개
Swift Testing을 Swift로 작성된 코드를 테스트하기 위한 새로운 패키지입니다. 새롭고 강력한 API의 기본 구성 요소에 대해 알아보고, Swift Testing을 일반적인 테스트 작업 흐름에 적용할 수 있는 방법을 살펴보고, Swift Testing이 XCTest 및 오픈 소스 Swift와 어떤 관련이 있는지 확인해 보세요.
-
22:17 Embedded Swift로 경량화하기
Embedded Swift를 사용하면 제한된 환경에도 Swift의 안전성과 표현성을 그대로 누릴 수 있습니다. 규격화된 Matter 기기를 사용한 데모를 통해 Embedded Swift에서 다양한 마이크로컨트롤러를 실행하는 방법을 확인해 보세요. Embedded Swift 하위 집합이 그토록 작은 공간에 런타임 없이 Swift의 이점을 모두 담을 수 있었던 방법과 Embedded Swift 개발의 첫걸음을 돕는 수많은 리소스를 살펴볼 수 있습니다.
-
22:14 Xcode 16의 새로운 기능
Xcode 16의 생산성 및 성능 관련 최신 개선 사항을 알아보고, 코드 완성, 진단 및 Xcode 미리보기 관련 개선 사항도 알아보세요. 빌드의 업데이트와 디버깅 및 Instruments의 개선 사항을 확인해 보세요.
-
27:16 Swift Testing으로 테스트 심화하기
Swift Testing에 추가된 기능으로 (테스트) 모음 세트를 작성하는 방법을 알아봅니다. 기본 구성 요소를 활용하여 더 많은 시나리오에 적용할 수 있도록 테스트를 확장하고, 다른 테스트 모음에서 테스트를 정리하고, 병렬로 실행되도록 테스트를 최적화하는 방법을 살펴보세요.
-
27:36 Swift 둘러보기: Swift의 기능 및 디자인 살펴보기
Swift 프로그래밍 언어의 기본적인 특징과 이에 담긴 설계 철학에 대해 알아보세요. 라이브러리, HTTP 서버, 명령어 라인 클라이언트를 포함한 Swift 패키지를 빌드하며 데이터 모델링, 오류 처리, 프로토콜 사용, 동시성 코드 작성 등의 작업을 처리하는 방법을 소개합니다. Swift 여정을 처음 시작하는 개발자부터 Swift 사용 경험이 풍부한 개발자까지, 누구나 Swift를 효과적으로 활용하는 데 도움을 줄 세션입니다.
-
28:48 실행, 분석, 검사: LLDB의 효과적인 디버깅 알아보기
LLDB를 사용하여 코드베이스를 살펴보고 디버깅하는 방법을 알아보세요. 충돌 로그와 백 트레이스를 활용하는 방법과, 동작 및 정교한 중지 조건을 사용하여 구분점을 수퍼차지하는 방법을 공유합니다. 디버깅 경험을 향상하는 데 도움이 될 ‘p' 명령어 및 Swift 6의 최신 기능도 함께 살펴보세요.
-
13:52 SwiftData로 커스텀 데이터 저장소 만들기
영속성 백엔드에 명시적이고 선언적인 SwiftData 모델링 API의 역량을 통합해 보세요. 맞춤형 데이터 저장소를 빌드하는 방법과 앱에 영속성 기능을 단계적으로 추가하는 방법을 알아보세요. 이 세션을 최대한 활용하려면 먼저 WWDC23의 ‘SwiftData 알아보기' 및 'SwiftData로 스키마 모델링하기'를 시청하는 것이 좋습니다.
-
16:40 Swift on Server 생태계 살펴보기
Swift는 서버 애플리케이션을 작성하는 데 탁월한 언어로, Apple의 여러 클라우드 제품이 제공하는 중요 서비스의 바탕이 됩니다. 도구와 Swift 서버 패키지 생태계에 대해 자세히 알아보고, 데이터베이스와 상호작용하는 방법과 애플리케이션에 옵저버빌리티를 더하는 방법을 살펴봅니다.
-
33:03 힙 메모리 분석하기
앱의 동적 메모리인 힙 메모리에 대해 자세히 알아보세요. Instruments와 Xcode를 사용하여 일반적인 힙 메모리 문제를 판단하고, 분석하고, 해결하는 방법을 살펴보세요. 앱에서 일시적 또는 지속적인 메모리 사용량 증가, 메모리 누수를 진단하는 기술 및 모범 사례도 소개합니다.
-
34:36 Swift의 성능 살펴보기
Swift가 추상화와 성능 간에 균형을 유지하는 방식을 확인해 보세요. 고려해야 할 성능 요소를 알아보고, Swift 옵티마이저가 이러한 요소에 어떠한 영향을 주는지 살펴보세요. Swift의 다양한 기능을 살펴보고, 이렇게 구현된 기능들을 통해 성능에 영향을 줄 수 있는 여러 트레이드오프를 파악하는 방법을 알아봅니다.
-
22:21 Swift에서 noncopyable 유형 소비하기
Swift의 noncopyable 유형에 대해 자세히 알아보세요. Swift에서 ‘복사'가 어떤 개념인지 살펴보고, noncopyable 유형을 사용하기에 적합한 경우와 값 소유권으로 목적을 명시하는 방법에 대해 알아보세요.
-
16:52 SwiftData 기록으로 모델 변경 사항 추적하기
SwiftData로 모델의 변경 기록을 검토해 보세요. History API를 사용하여 데이터 저장소에 변경이 발생한 시점을 파악하고, 이러한 정보를 사용하여 원격 서버 동기화 등의 기능을 빌드하는 방법과 아웃 오브 프로세스 변경 사항을 앱으로 제출하는 방법을 살펴보세요. 자체 데이터 저장소에 History API를 위한 지원을 빌드하는 방법도 소개합니다.
-
-
WWDC23 -
33:58 Swift 매크로 작성하기
Swift 매크로를 사용하여 코드베이스를 더욱 표현력 있고 읽기 쉽게 만드는 방법을 알아보세요. 코드를 함께 작성하면서 매크로가 반복적인 코드 작성을 어떻게 피하게 해 주는지 확인하고, 앱에서 매크로를 사용하는 방법을 살펴봅니다. 매크로의 빌딩 블록을 공유하고 테스트하는 방법을 시연하며, 매크로에서 컴파일 오류를 발생시키는 방법을 알아봅니다.
-
33:53 Swift-DocC로 다채로운 문서 만들기
Swift-DocC의 최신 기능을 활용하여 앱이나 프레임워크에서 다채롭고 자세한 문서를 만드는 방법을 배워 보세요. Xcode 15 Documentation Preview 에디터를 사용하여 효율적으로 기존 프로젝트의 문서를 반복 작업하는 방법을 보여 드리고, 그리드 기반의 레이아웃, 동영상 지원, 맞춤형 테마 등 확장된 저작 기능을 탐구합니다. 이 세션을 최대한 이해하려면 Swift-DocC 문서의 기본에 관한 실용적 지식이 있어야 합니다.
-
18:24 매개변수 팩으로 API 범용화하기
Swift 매개변수 팩은 제네릭 코드의 가능성을 확장하는 강력한 도구이며 흔한 제네릭 패턴을 단순화할 수 있게 합니다. 제네릭 코드에서 인수의 개수뿐만 아니라 유형을 추상화하는 방법과 흔한 제네릭 패턴을 단순화하여 다중 정의를 피하는 법을 알려드리겠습니다. 이 세션을 최대한 유용하게 활용하려면 WWDC22의 'Swift 제네릭 받아들이기'를 먼저 확인하시기 바랍니다.
-
8:52 SwiftData 만나보기
SwiftData는 Swift를 위해 구축된 강력하고 표현력 있는 지속성 프레임워크입니다. 데이터를 Swift 코드에서 직접 모델링할 수 있는 방법, SwiftData를 사용해 모델과 작업할 수 있는 방법, SwiftUI에 통합할 수 있는 방법을 소개합니다.
-
43:07 Swift의 새로운 기능
Swift의 새로운 소식을 만나 보세요. 매개변수 팩과 매크로와 같은 기능으로 API가 더욱 확장성 있고 표현적으로 바뀐 점을 다룹니다. 또한, 상호운용성과 관련된 개선 사항을 살펴보고 Swift의 성능을 확장하여 Foundation과 서버의 대규모 분산 프로그램까지 안전성을 확보할 수 있는 방법을 공유합니다.
-
9:25 SwiftData로 스키마 모델링하기
SwiftData로 스키마 매크로와 마이그레이션 계획을 사용하여 앱에 더 복잡한 기능을 구현하는 방법을 알아보세요. @Attribute 및 @Relationship 옵션으로 지속성을 세밀하게 조정하는 방법을 알려 드립니다. @Transient로 데이터 모델에서 프로퍼티를 제외하는 방법과 스키마의 한 버전에서 다음 버전으로 원활히 마이그레이션하는 방법도 알아보세요. 이 세션을 최대한 활용하려면 WWDC23의 'SwiftData 알아보기'와 'SwiftData로 앱 빌드하기' 세션을 먼저 시청하시는 걸 권장합니다.
-
39:43 Swift 매크로 상세히 알아보기
Swift 매크로가 코드베이스에서 어떻게 보일러플레이트를 줄이고 복잡한 기능을 더 쉽게 도입하게 하는지 알아보세요. 매크로가 어떻게 코드를 분석하는지, 풍부한 컴파일러 오류 메시지를 발신해 개발자들이 올바르게 사용하도록 돕는지, 그리고 프로젝트로 저절로 다시 통합되는 새 코드를 생성해 주는지 살펴봅니다. 매크로 역할과 컴파일러 플러그인, 구문 트리와 같은 중요한 개념도 함께 알아보세요.
-
18:34 SwiftUI로 디자인하기
디자인 아이디어를 빠르게 반복하고 탐색하는 데 SwiftUI가 어떻게 도움이 되는지 알아봅니다. Apple 디자이너를 통해 SwiftUI로 하는 작업이 watchOS 10 지도 앱의 디자인과 다른 작업 요소에 어떤 영향을 미쳤는지 배우고, 이런 워크플로를 자신의 작업 과정에 어떻게 적용할 수 있는지 알아보세요.
-
17:45 Swift와 C++ 혼합하기
C++와 Objective-C++ 프로젝트에서 Swift를 사용해 코드를 더 안전하고 빠르고 쉽게 개발할 수 있는 방법을 알아보세요. C++와 Swift API를 사용해 Swift를 앱에 점진적으로 통합하는 방법을 알려드립니다.
-
26:15 병합 가능한 라이브러리 알아보기
정적, 동적 라이브러리의 장점을 합친 병합 가능 라이브러리로 앱의 생산성과 런타임 성능을 개선하는 방법을 알아보세요. 개발 속도는 높이고 최소화된 앱을 배포할 수 있는 방법을 배워 보세요. Xcode 15에서 병합 가능 라이브러리를 채택하는 방법을 보여 드리고 코드를 작업하는 모범 사례를 공유합니다.
-
11:13 SwiftData로 마이그레이션하기
앱에서 SwiftData를 사용하는 방법을 알아보세요. Xcode를 사용하여 기존 Core Data 객체 모델에서 모델 클래스를 생성하는 방법, 이전의 구현과 함께 SwiftData를 사용하는 방법, 기존 솔루션을 완전히 대체하는 방법을 알아 보세요. 이 세션을 시청하기 전에 'SwiftData 알아보기'를 시청하세요.
-
24:22 구조화된 동시성의 기초를 넘어
핵심은 작업 트리에 있습니다. 앱이 자동 작업 취소, 작업 우선순위 전파, 유용한 작업 로컬 값 패턴을 관리하는 데 구조화된 동시성이 어떻게 도움이 되는지 알아보세요. 유용한 패턴과 최신 작업 그룹 API로 앱의 리소스를 관리하는 법을 배우세요. 작업 트리와 작업 로컬 값의 힘을 활용하여 분산 시스템을 통찰할 수 있는 방법을 알아봅니다. 시청하시기 전에 WWDC21의 'Swift 동시성의 이면'과 'Swift의 구조화된 동시성 살펴보기' 세션을 보시고 Swift 동시성과 구조화된 동시성의 기초를 복습하시기 바랍니다.
-
21:56 Swift OpenAPI 생성기 알아보기
iOS 앱을 확장하거나 Swift로 서버를 작성할 때, Swift OpenAPI 생성기가 HTTP 서버 API 작업을 하는 데 어떻게 도움이 되는지 알아보세요. 이 패키지 플러그인으로 OpenAPI 문서에서 코드를 생성함으로써 워크플로를 간결하게 만들고 코드베이스를 단순화하는 법을 보여드리겠습니다.
-
15:35 SwiftData 자세히 살펴보기
앱에서 SwiftData의 강력한 기능을 활용하는 방법을 알아보세요. ModelContext와 ModelContainer가 함께 작동하여 앱의 데이터를 지속하는 방식을 살펴보겠습니다. 또한 수동으로 변경 사항을 추적하고 적용하는 방법과 FetchDescriptor, SortDescriptor, enumerate로 SwiftData를 규모에 맞게 사용하는 방법을 알려 드립니다. 이 세션을 최대한 활용하려면 WWDC23의 'SwiftData 알아보기'와 'SwiftData로 스키마 모델링하기' 세션을 먼저 시청하시길 권합니다.
-
-
Tech Talks -
14:05 Journaling Suggestions API 알아보기
새로운 Journaling Suggestions API를 활용하여 사용자가 일상 속 소중한 순간과 중요한 이벤트를 앱에 기록하고 돌아볼 수 있도록 지원하고 사용자의 개인정보를 보호하는 방법에 대해 알아보세요. Journaling Suggestions API를 활용하여 일기 쓰기 제안에 애셋과 메타데이터를 가져오고, 앱 화면 위에 선택기를 불러오고, 사용자가 제안된 콘텐츠를 저장하도록 지원하는 방법을 확인해 보세요.
-
23:48 Explore and manipulate data in Swift with TabularData
Discover how you can use the TabularData framework to load, explore, and manipulate unstructured data in Swift — whether you need to pre-process data for a machine learning task or digest data on-the-fly in your app. Learn how this framework can help you handle large datasets, join multiple...
-
-
WWDC22 -
24:38 Swift 동시성 시각화 및 최적화
Instruments에서 Swift 동시성 템플릿을 통해 앱을 최적화하는 방법을 알아보세요. 흔히 발생하는 성능 문제를 논의하고 Instruments를 사용하여 이러한 문제를 찾고 해결하는 방법을 보여드리겠습니다. UI의 응답성을 유지하고 병렬 성능을 최대화하며, 앱 내에서 Swift 동시성 활동을 분석하는 방법을 알아보세요. 이 세션을 최대한 활용하려면 Swift 동시성(Task 및 Actor 포함)에 대해 숙지하시는 것이 좋습니다.
-
15:48 Swift Playgrounds에서 첫 번째 앱 빌드
Swift Playgrounds로 앱을 손쉽게 프로토타이핑하고 빌드하는 방법을 알아보세요. 빈 프로젝트에서 앱을 만들고 SwiftUI로 인터페이스를 빌드하고 Swift Package Manager를 사용하여 오픈 소스 패키지에서 기능을 추가하는 방법을 보여드리겠습니다. 또한 Previews(미리보기) 및 콘솔을 사용하여 문제를 디버깅하는 방법을 살펴보고, TestFlight를 통해 배포용으로 App Store Connect에 앱을 제출하는 방법을 알려드리겠습니다.
-
38:16 Swift의 새로운 기능
Swift에 관한 새로운 소식을 확인하세요. 성능 개선 사항에 대해 안내하고, 더 안전하고 확장 가능한 Swift 패키지를 살펴보며, Swift Concurrency의 향상된 기능을 소개합니다. 또한 Swift Regex, 더 우수한 제네릭, 그리고 보다 유연하고 표현력 있는 코드를 작성할 수 있도록 언어에 내장된 기타 도구를 소개합니다.
-
13:01 Swift Async 알고리즘 소개
Apple의 최신 오픈 소스 Swift 패키지인 Swift Async 알고리즘을 확인하세요. Zip, Merge 및 Throttle을 비롯하여 AsyncSequence와 함께 사용할 수 있는 이 패키지의 알고리즘을 알아보겠습니다. 이러한 알고리즘을 사용하여 멋진 메시징 앱을 빌드하는 과정을 확인하시기 바랍니다. 또한 다양한 AsyncSequence 결합 및 Swift Clock 유형 사용을 통해 시간 경과에 따른 값으로 작업하기 위한 모범 사례를 공유합니다. 이 세션을 최대한 활용하려면 ‘Meet...
-
22:58 Swift Regex 소개
Swift Regex를 활용하여 문자열을 더 효과적으로 처리하는 방법을 알아보세요. 새롭고 선언적인 방식으로 문자열을 처리하여 간결한 리터럴을 지원하는 Regex 빌더를 활용하세요. 또한 문자열의 유니코드 모델을 살펴보고, Swift Regex로 유니코드에 적합한 처리를 손쉽게 수행할 수 있는 방법을 소개합니다.
-
25:17 Swift의 분산된 Actor 소개
분산 시스템의 개발을 간소화하는 Swift의 Actor 모델의 확장인 분산된 Actor를 살펴보겠습니다. 분산된 앱 및 시스템으로 작업할 때 분산된 Actor 격리 및 위치 투명성이 네트워킹, 직렬화 및 기타 전송의 우발적인 복잡성을 방지하는 데 어떻게 도움이 되는지 알아보겠습니다. 이 세션을 최대한 활용하려면 WWDC21의 ‘Protect mutable state with Swift actors(Swift Actor로 변이 가능한 상태 보호)'를 시청하시기 바랍니다.
-
16:03 Xcode를 사용한 멀티 플랫폼 앱 개발
Xcode 14를 사용하여 다양한 Apple 플랫폼을 위한 앱을 빌드하는 방법을 알아보세요. 앱 타겟을 간소화하고, 공통 코드베이스를 유지하며, 기본적으로 설정을 공유하는 방법을 보여드리겠습니다. 또한 설정 및 코드의 상태를 조절하여 각 플랫폼에 맞게 앱을 맞춤화하는 방법을 살펴보겠습니다.
-
20:26 멋진 Swift Playgrounds용 콘텐츠 만들기
Swift Playgrounds를 위해 디자인된 안내식 교육 콘텐츠를 빌드하는 방법을 알아보세요. 완료된 샘플 코드 프로젝트에 가이드를 추가하는 방법을 함께 알아보시기 바랍니다. 학습자가 자신만의 코드로 프로젝트를 확장하도록 장려하는 관련 코드와 선택 사항인 실험 과제를 보여주기 위해 러닝 센터에 과제를 추가하는 방법을 시연합니다.
-
28:54 Swift Concurrency를 사용하여 데이터 경합 제거
Swift Concurrency의 핵심 개념 중 하나인 Task 격리 및 Actor 격리에 대해 함께 알아보겠습니다. 데이터 경합을 제거하는 Swift의 접근 방식을 소개하고 이것이 앱 아키텍처에 미치는 영향에 대해 안내합니다. 또한 코드에서 원자성의 중요성에 대해 논의하고, 격리를 유지하기 위한 Sendable 점검의 의미를 소개하며, 동시 시스템에서 작업의 순서를 지정하는 것과 관련한 가정을 다시 살펴봅니다.
-
27:29 Swift 제네릭 사용하기
제네릭은 Swift에서 추상 코드를 작성하기 위한 기본 도구입니다. 코드가 진화함에 따라 추상화할 수 있는 기회를 확인하고, 많은 동작이 있는 하나의 코드를 작성하기 위한 전략을 평가하는 방법을 배우고, 제네릭 코드를 더 쉽게 작성하고 이해하는 데 도움이 되는 Swift 5.7의 언어 기능을 알아볼 수 있습니다.
-
21:32 Swift Regex: 기초를 넘어
Swift Regex로 문자열 처리의 기초를 뛰어넘으세요. Regex의 개요 및 작동 원리를 소개하고, Foundation의 풍부한 데이터 파서를 살펴보며, 내 파서를 통합하는 방법을 알아보고, 캡처에 대한 자세한 내용을 알아봅니다. 또한 손쉽게 문자열을 일치시키고 Regex 기반 알고리즘을 활용하기 위한 모범 사례를 제공합니다.
-
25:31 Swift의 디자인 프로토콜 인터페이스
Swift 5.7로 프로토콜을 사용하여 고급 추상화를 디자인하는 방법을 알아보세요. 실존 타입을 사용하는 방법을 소개하고, 불투명 반환 타입으로 인터페이스와 구현을 분리하는 방법을 알아보며, 구체적인 타입 간의 관계를 식별하고 보장하는 데 도움이 될 수 있는 동일 타입 요구사항을 소개합니다. 이 세션을 최대한 활용하려면 WWDC22의 ‘Embrace Swift generics(Swift 제네릭 활용)'을 시청하시기 바랍니다.
-
20:04 LLDB를 통한 Swift 디버깅
디버깅을 위해 복잡한 Swift 프로젝트를 설정하는 방법을 배울 수 있습니다. LLDB의 내부 및 디버깅 정보에 대해 자세히 알아봅니다. 또한 빌드 서버에 구축된 디버깅 코드 또는 맞춤형 빌드 시스템의 코드와 같은 복잡한 시나리오에 대한 모범 사례를 공유합니다.
-
15:27 Swift 패키지 플러그인 소개
Swift 패키지 플러그인을 통해 Swift 패키지 및 Xcode 프로젝트에서 작업을 수행하는 방법을 확인하세요. 이러한 플러그인의 작동 원리에 대해 다루고, 이를 통해 소스 코드를 생성하고 개발 작업 흐름을 자동화하는 방법을 살펴보겠습니다.
-
24:02 Swift 패키지 플러그인 만들기
개발 작업 흐름을 맞춤화하고 Swift에서 나만의 패키지 플러그인을 작성하는 방법을 배울 수 있습니다. PackagePlugin API를 사용하여 Xcode의 기능을 확장함으로써 소스 코드를 생성하거나 릴리즈 작업을 자동화하는 방법을 보여드리며 우수한 플러그인을 만들기 위한 모범 사례를 소개합니다.
-
17:35 서버측 개발을 위한 Xcode 사용
동일한 작업 공간 내에 기존의 Xcode 프로젝트와 함께 Swift 서버 앱을 만들고 빌드 및 배포하는 방법을 확인하세요. Xcode를 사용하여 나만의 로컬 앱을 만들고 엔드포인트를 테스트하는 방법을 보여드리며, 서버와 클라이언트 앱 간 코드를 구조화 및 공유하여 개발 프로세스를 용이하게 하는 방법을 살펴보겠습니다.
-
-
WWDC21 -
33:39 Meet async/await in Swift
Swift now supports asynchronous functions — a pattern commonly known as async/await. Discover how the new syntax can make your code easier to read and understand. Learn what happens when a function suspends, and find out how to adapt existing completion handlers to asynchronous functions.
-
27:54 Explore structured concurrency in Swift
When you have code that needs to run at the same time as other code, it's important to choose the right tool for the job. We'll take you through the different kinds of concurrent tasks you can create in Swift, show you how to create groups of tasks, and find out how to cancel tasks in progress...
-
32:45 What‘s new in Swift
Join us for an update on Swift. Discover the latest language advancements that make your code easier to read and write. Explore the growing number of APIs available as Swift packages. And we'll introduce you to Swift's async/await syntax, structured concurrency, and actors.
-
14:21 Meet AsyncSequence
Iterating over a sequence of values over time is now as easy as writing a “for” loop. Find out how the new AsyncSequence protocol enables a natural, simple syntax for iterating over anything from notifications to bytes being streamed from a server. We'll also show you how to adapt existing code...
-
28:32 Protect mutable state with Swift actors
Data races occur when two separate threads concurrently access the same mutable state. They are trivial to construct, but are notoriously hard to debug. Discover how you can stop these data races in their tracks with Swift actors, which help synchronize access to data in your code. Discover how...
-
13:40 Use async/await with URLSession
Discover how you can adopt Swift concurrency in URLSession using async/await and AsyncSequence, and how you can apply Swift concurrency concepts to improve your networking code.
-
61:00 Swift concurrency: Update a sample app
Discover Swift concurrency in action: Follow along as we update an existing sample app. Get real-world experience with async/await, actors, and continuations. We'll also explore techniques for migrating existing code to Swift concurrency over time. To get the most out of this code-along, we...
-
22:54 Discover concurrency in SwiftUI
Discover how you can use Swift's concurrency features to build even better SwiftUI apps. We'll show you how concurrent workflows interact with your ObservableObjects, and explore how you can use them directly in your SwiftUI views and models. Find out how to use await to make your app run...
-
30:30 Meet the Swift Algorithms and Collections packages
Discover two of the latest additions to the list of open-source Swift packages from Apple: Swift Algorithms and Swift Collections. Not only can you use these packages immediately, they also incubate new algorithms and data structures for eventual inclusion in the Swift Standard Library. We'll...
-
27:04 Bring Core Data concurrency to Swift and SwiftUI
Discover how Core Data is adopting the new concurrency capabilities of Swift 5.5, leading to more concise, efficient, and safe asynchronous code. We'll show you how to update Core Data in your apps to work with concurrency, and detail the many other improvements throughout the framework that make...
-
39:18 Swift concurrency: Behind the scenes
Dive into the details of Swift concurrency and discover how Swift provides greater safety from data races and thread explosion while simultaneously improving performance. We'll explore how Swift tasks differ from Grand Central Dispatch, how the new cooperative threading model works, and how to...
-
14:26 Discover and curate Swift Packages using Collections
Whether you're curating packages for your team, for education purposes, or to share with other developers, Swift Package Collections can help you discover, explore and import new packages into your project. Discover improvements in the Swift Package workflow using Collections, and learn how you...
-
20:42 ARC in Swift: Basics and beyond
Learn about the basics of object lifetimes and ARC in Swift. Dive deep into what language features make object lifetimes observable, consequences of relying on observed object lifetimes and some safe techniques to fix them.
-
46:56 Write a DSL in Swift using result builders
Some problems are easier to solve by creating a customized programming language, or “domain-specific language.” While creating a DSL traditionally requires writing your own compiler, you can instead use result builders with Swift 5.4 to make your code both easier to read and maintain. We'll take...
-
-
WWDC20 -
27:44 What's new in SwiftUI
SwiftUI can help you build better and more powerful apps for iPhone, iPad, Mac, Apple Watch, and Apple TV. Learn more about the latest refinements to SwiftUI, including interface improvements like outlines, grids, and toolbars. Take advantage of SwiftUI's enhanced support across Apple frameworks...
-
15:43 Swift packages: Resources and localization
Bring your resources along for the ride when you organize and share code using Swift packages. Discover how to include assets like images and storyboards in a package and how to access them from code. And learn how to add localized strings to make your code accessible to people around the world...
-
17:23 Explore logging in Swift
Meet the latest generation of Swift unified logging APIs. Learn how to log events and errors in your app while preserving privacy. Take advantage of powerful yet readable options for formatting data — all without sacrificing performance. And we'll show you how you can gather and process log...
-
14:51 Explore Packages and Projects with Xcode Playgrounds
Xcode Playgrounds helps developers explore Swift and framework APIs and provides a scratchpad for rapid experimentation. Learn how Xcode Playgrounds utilizes Xcode's modern build system, provides improved support for resources, and integrates into your projects, frameworks, and Swift packages to...
-
5:18 Swan's Quest, Chapter 2: A time for tones
Swift Playgrounds presents "Swan's Quest,” an interactive adventure in four chapters for all ages. In this chapter, our Hero needs your help decoding the Swan's scroll. Call forth the best of your audio abilities on this one — you're going to need them. Discover how to convert Swift Playgrounds...
-
11:43 Handle interruptions and alerts in UI tests
Learn how to anticipate potential interruptions to your app's interface and build smart tests to identify them. UI interruptions often appear indeterminately, typically during onboarding or first launch, which can make them hard to track down. Learn how to understand interruptions, write stronger...
-
20:53 Embrace Swift type inference
Swift uses type inference to help you write clean, concise code without compromising type safety. We'll show you how the compiler seeks out clues in your code to solve the type inference puzzle. Discover what happens when the compiler can't come to a solution, and find out how Xcode 12 integrates...
-
16:24 Get your test results faster
Improve your testing suite to speed up your feedback loop and get fixes in faster. Learn more about the latest improvements to testing in Xcode, including how to leverage test plans, Xcodebuild updates, and APIs to eliminate never-ending and badly-behaved tests. We'll explore Test Timeouts and...
-
18:39 Control training in Create ML with Swift
With the Create ML framework you have more power than ever to easily develop models and automate workflows. We'll show you how to explore and interact with your machine learning models while you train them, helping you get a better model quickly. Discover how training control in Create ML can...
-
27:31 Safely manage pointers in Swift
Come with us as we delve into unsafe pointer types in Swift. Discover the requirements for each type and how to use it correctly. We'll discuss typed pointers, drop down to raw pointers, and finally circumvent pointer type safety entirely by binding memory. This session is a follow-up to "Unsafe...
-
36:15 Data Essentials in SwiftUI
Data is a complex part of any app, but SwiftUI makes it easy to ensure a smooth, data-driven experience from prototyping to production. Discover @State and @Binding, two powerful tools that can preserve and seamlessly update your Source of Truth. We'll also show you how ObservableObject lets you...
-
42:42 Refine Objective-C frameworks for Swift
Fine-tune your Objective-C headers to work beautifully in Swift. We'll show you how to take an unwieldy Objective-C framework and transform it into an API that feels right at home. Learn about the suite of annotations you can use to provide richer type information, more idiomatic names, and...
-
8:08 Swan's Quest, Chapter 4: The sequence completes
Swift Playgrounds presents "Swan's Quest,” an interactive adventure in four chapters for all ages. It's time for the grand finale: You've honed your skills with tones, but in this chapter our Hero needs to sequence multi-part harmony. Discover how to play pitched instruments with MIDI codes, and...
-
23:12 Meet WidgetKit
Meet WidgetKit: the best way to bring your app's most useful information directly to the home screen. We'll show you what makes a great widget and take a look at WidgetKit's features and functionality. Learn how to get started creating a widget, and find out how WidgetKit leverages the power of...
-
19:08 SwiftUI의 스택, 그리드 및 윤곽선
개선된 스택과 새로운 목록 및 윤곽선 보기로 SwiftUI 앱에서 더 빠르고 효율적으로 세부 데이터를 표시할 수 있습니다. 이제 iOS와 iPadOS에 처음 도입되는 윤곽선은 스택 및 목록과 함께 작동하는 계층적 데이터를 표현하는 새로운 멀티 플랫폼 도구입니다. SwiftUI의 새롭고 향상된 도구를 사용하여 표 보기를 사용할 때 화면에 더 많은 내용을 표시하고, 부드럽게 스크롤되는 반응형 스택을 만들고, vStack에 어울리지 않는 내용을 위한 목록 보기를 구축하는 방법을 알아보세요. 새로운 그리드 보기와 공개 그룹으로 더...
-
33:42 Structure your app for SwiftUI previews
When you use SwiftUI previews during development, you can quickly create apps that are more flexible and maintainable. Discover ways to improve the preview experience by making small tweaks to your project. Find out how to preview multiple files at once, how to manage data flow for previews, and...
-
12:02 SwiftUI로 문서 기반 앱 구축하기
SwiftUI로 문서 기반 앱을 완전히 구축하는 방법을 알아보세요. DocumentGroup API와 이 API를 앱 및 모드에서 어떻게 활용할 수 있는지 알려 드립니다. DocumentGroup API를 사용하면 번거로움 없이 문서 검색, 표준 명령과 같은 문서 관리를 위한 기본 지원을 추가할 수 있습니다. 범용 유형 식별자를 설정하는 방법과 우수한 문서 기반 앱이 갖춘 특징도 다룹니다. 이 세션을 최대한 활용하려면 먼저 SwiftUI로 앱을 제작하는 방법을 숙지하시는 것이 좋습니다. 자세히 알아보려면 ‘SwiftUI 앱...
-
15:18 Widgets Code-along, part 2: Alternate timelines
Our code-along continues as we help our widget rewrite the future and travel into an alternate timeline. Continue where you left off from Part 1, or traverse time and space and begin with the Part 2 starter project to jump right into the action. Find out how you can integrate system intelligence...
-
17:55 Write tests to fail
Plan for failure: Design great tests to help you find and diagnose even the toughest bugs. Learn how to improve your automated tests with XCTest to find hidden issues in even the best code. We'll explain how to prepare your tests for failure to make triaging issues easier, letting you solve...
-
9:06 Widgets Code-along, part 3: Advancing timelines
Take your widget to the next level as we embark upon the third and final stage of the widgets code-along. Pick up where you left off in Part 2 or start with the Part 3 starter project to go warp speed ahead. We'll explore advanced concepts for widgets, timelines, and configuration. Learn how to...
-
5:59 Swan's Quest, Chapter 3: The notable scroll
Swift Playgrounds presents "Swan's Quest,” an interactive adventure in four chapters for all ages. Calling all musicians! In this chapter, our Hero has found a mysterious scroll of music, and only you can help decode it. (Don't worry if you can't read music, our clever Lizard is standing by to...
-
15:29 App essentials in SwiftUI
Thanks to the new App protocol, SwiftUI now supports building entire apps! See how Apps, Scenes, and Views fit together. Learn how easy it is to implement the features people expect from a best-in-class product while saving time and reducing complexity. Easily add expected functionality to your...
-
22:50 Unsafe Swift
What exactly makes code “unsafe”? Join the Swift team as we take a look at the programming language's safety precautions — and when you might need to reach for unsafe operations. We'll take a look at APIs that can cause unexpected states if not used correctly, and how you can write code more...
-
9:05 Widgets Code-along, part 1: The adventure begins
Take your app on a most wondrous adventure to the home and Today screens of iPhone, iPad, and Mac. Grab the starter project and code along with us! We will guide you through the process of creating a widget for your app from start to finish so that you can provide people with beautiful views and...
-
15:24 Explore numerical computing in Swift
Meet Swift Numerics: a new Swift package for computational mathematics. Take a tour of the protocols and types available in the package and find out how you can use them to write generic code. We'll also show you how and when to use the new Float16 type to improve performance and reduce memory...
-
7:47 Distribute binary frameworks as Swift packages
Discover how you can add third-party frameworks to your app and keep them up to date using Swift packages in Xcode. We'll show you how to author packages that reference frameworks, explain binary targets and how to specify them in your package manifest file, and demonstrate how to compute...
-
8:29 Create Swift Playgrounds content for iPad and Mac
Learn how to create Swift Playgrounds books that work fluidly across both Mac and iPad and help people of all ages explore the fun of coding in Swift. We'll walk you through how to customize content for each platform while considering platform settings, and help you take advantage of them in your...
-
32:19 What's new in Swift
Join us for an update on Swift. Discover the latest advancements in runtime performance, along with improvements to the developer experience that make your code faster to read, edit, and debug. Find out how to take advantage of new language features like multiple trailing closures. Learn about...
-
12:38 Triage test failures with XCTIssue
Put your test failures to work: Learn how to triage and diagnose uncaught issues in your app using the latest testing APIs in Xcode. We'll show you how to help ease your testing workflow and put failures into context to help you deliver the best quality product. For more information on designing...
-
14:43 Swan's Quest, Chapter 1: Voices in the dark
Swift Playgrounds presents "Swan's Quest,” an interactive adventure in four chapters for all ages. In this chapter, our Hero must navigate a dark cave — and the only way to light the torches is to make them accessible. Learn about VoiceOver and write interesting audio descriptions. You just...
-
14:14 Build a SwiftUI view in Swift Playgrounds
Easily prototype and play around with SwiftUI views when you use them with Swift Playgrounds. We'll show you how to build a SwiftUI view in a Xcode-compatible playground, and explore tools to help you easily edit and preview your code. For more on Swift Playgrounds, check out our interactive...
-
54:38 Introduction to SwiftUI
Explore the world of declarative-style programming: Discover how to build a fully-functioning SwiftUI app from scratch as we explain the benefits of writing declarative code and how SwiftUI and Xcode can combine forces to help you build great apps, faster.
-
20:22 Build SwiftUI views for widgets
Widgets are bite-sized pieces of information from your app that someone can choose to place on their home screen or Today view. Discover the process of building the views for a widget from scratch using SwiftUI. Brush up on the syntax that you'll need for widget-specific construction and learn...
-
-
WWDC19 -
41:19 Swift Playgrounds 3
Introducing Swift Playgrounds 3: the latest iteration of the revolutionary app for iPad that makes coding in Swift interactive and fun. Discover how you can use your own playgrounds to rapidly iterate on code that uses device features. Find out how the new modules feature both helps organize your...
-
36:44 What's New in Swift
Swift is now the language of choice for a number of major frameworks across all of Apple's platforms, including SwiftUI, RealityKit and Create ML. Join us for a review of Swift 5.0 and an exploration of Swift 5.1, new in Xcode 11. Find out about the latest advancements in performance and safety...
-
20:59 Introducing Accelerate for Swift
Accelerate framework provides hundreds of computational functions that are highly optimized to the system architecture your device is running on. Learn how to access all of these powerful functions directly in Swift. Understand how the power of vector programming can deliver incredible...
-
33:24 Adopting Swift Packages in Xcode
Swift packages are a great way to organize and share code, and are now supported while building apps for all Apple platforms in Xcode 11. Find out how to use community-developed packages in your project, how Swift packages are structured, and how package versioning and dependencies work.
-
40:32 Binary Frameworks in Swift
Xcode 11 now fully supports using and creating binary frameworks in Swift. Find out how to simultaneously support devices and Simulator with the new XCFramework bundle type, how Swift module interfaces work, and how to manage changes to your framework over time.
-
41:06 Modern Swift API Design
Every programming language has a set of conventions that people come to expect. Learn about the patterns that are common to Swift API design, with examples from new APIs like SwiftUI, Combine, and RealityKit. Whether you're developing an app as part of a team, or you're publishing a library for...
-
31:05 Creating Swift Packages
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 packages are here to help. Learn how to create local packages for your own development, how to customize your package via the manifest file, and how to go about...
-
-
WWDC18 -
39:48 Building Faster in Xcode
Build your apps faster in Xcode 10. Learn how to structure your projects and tweak your code to take full advantage of all processor cores. Whether you've made a few small code changes you want to give a try, or you're building your full app for release, these techniques will cut the time it...
-
36:38 Getting to Know Swift Package Manager
The Swift Package Manager makes it possible to easily develop and distribute source code in the Swift ecosystem. Learn about its goals, design, unique features, and the opportunities it has for continued evolution.
-
-
WWDC17 -
40:09 SceneKit in Swift Playgrounds
Discover tips and tricks gleaned by the Swift Playgrounds Content team for working more effectively with SceneKit on a visually rich app. Learn how to integrate animation, optimize rendering performance, design for accessibility, add visual polish, and understand strategies for creating an...
-
-
WWDC16 -
39:51 Protocol and Value Oriented Programming in UIKit Apps
Building on last year's Protocol-Oriented Programming and Building Better Apps with Value Types sessions, this year's session will highlight tips and tricks for building better Swift apps. See how you can incorporate these design approaches into a real MVC-based Cocoa Touch app, especially in the...
-
58:22 Understanding Swift Performance
In this advanced session, find out how structs, classes, protocols, and generics are implemented in Swift. Learn about their relative costs in different dimensions of performance. See how to apply this information to speed up your code.
-
35:41 Concurrent Programming With GCD in Swift 3
Swift 3 provides new interfaces that make it easier than ever to write applications with Grand Central Dispatch. Learn the basics of GCD and best practices on how to use it to architect your Swift application. You'll also hear about new APIs and other GCD improvements.
-
-
WWDC15 -
35:40 Swift and Objective-C Interoperability
Discover new features that make it easier than ever to craft Objective-C APIs that work beautifully in Swift, as well as new Swift language features that provide even better interoperability. Apple engineers will also discuss enhancements to Apple's SDKs that improve the Swift experience.
-