일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- AR Quick Look
- Hand Pose Detect
- NSUserActivity
- concurrency
- WWDC 2021
- Mac
- AppleEvent
- Physical Audio
- User Enrollment
- async
- DooC
- profile
- METAL
- SF Symbols 3.0
- MDM
- Object Capture
- swiftUI
- DriverKit
- Reality Composer
- detent
- App Clip
- Xcode Cloud
- AVFoundation
- Xcode Organizer
- CoreML
- SF Symbols
- SWiFT
- Hand Action Detect
- actor
- ProRAW
- Today
- Total
목록WWDC 2021 (57)
nyancoder
원본 영상: https://developer.apple.com/videos/play/wwdc2021/10258/ What are hangs 메인 루프에서는 사용자의 입력 - 처리 - 화면에 출력의 순서로 작업이 진행됩니다. 현재 작업이 느리게 처리되면 입력에 대한 화면의 갱신이 늦어지고, 사용자는 앱이 멈추는 현상을 느낄 것입니다. 하나의 작업이 처리되는 중에 들어오는 이벤트는 현재의 작업이 완료된 후 처리되기 시작합니다. 일반적으로 1초 이상 응답이 걸리는 경우 사용자는 앱이 멈춘 것처럼 느낍니다. 뷰에 진입할 때 발생하는 지연은 스크롤할 때 발생하는 지연보다 덜 민감하게 느껴집니다. What causes hangs hang의 원인은 메인 스레드에서 많은 작업을 수행하는 경우와, 메인 스레드가 블록 되..
원본 영상: https://developer.apple.com/videos/play/wwdc2021/10192/ Diversity 더 많은 개발자가 Swift 생태계 및 커뮤니티에 참여하도록 장려하고 있습니다. swift.org 블로그에서 다양한 개발자들의 기여를 인정하고 안내하는 게시물을 올렸습니다. 개발자들이 서로 연결될 수 있도록 Swift 포럼에 커뮤니티 그룹을 만들었습니다. swift.org/diversity에서 더 자세한 내용을 확인할 수 있습니다. 새로운 개발자가 기존의 개발자로부터 Swift전반에 걸쳐 지원을 받을 수 있는 멘토링 프로그램을 만들었습니다. Update on Swift packages 좋은 패키지 검색 도구였던 Swift Package Index가 Xcode도구에 통합되었..
원본 영상: https://developer.apple.com/videos/play/wwdc2021/10267/ Git에 변경사항을 올리면 빌드, 테스트 등의 정해진 작업 수행하고 결과물을 처리하거나 알림을 줄 수 있습니다. Xcode Cloud Xcode 내에 통합되어 상태를 한눈에 확인할 수 있습니다. 여러 개의 Workflow를 설정하고 수행한 뒤, 결과를 확인할 수 있습니다. 각 Workflow의 수행 결과를 Build라고 부르며 각각의 결과를 Workflow별로 확인할 수 있습니다. 실행 결과를 자신만의 원하는 필터를 저장하여 필터링하여 볼 수 있습니다. Build결과를 브랜치 별로도 그룹화하여 볼 수 있어 전체 팀의 작업을 한눈에 확인할 수 있습니다. 각 Workflow는 어떠한 작업을 수행할..
원본 영상: https://developer.apple.com/videos/play/wwdc2021/10058/ Async Sequence 비동기로 동작한다는 점을 제외하면 Sequence와 동일합니다. 예외를 던질 수 있습니다. Sequence가 끝나거나 오류가 발생할 수 있습니다. 기존 Sequence와 동일하게 for문에서 break, continue를 사용할 수 있습니다. Iterating a AsyncSequence Async Sequence의 for 문 사용은 기존 Sequence의 for문 사용과 거의 동일합니다. 차이점은 iterator에서 다음 값을 받아올 때 비동기로 받아온다는 점입니다. for try 구문을 사용한 경우 do - catch 문을 통해서 예외 처리를 할 수 있습니다. 전..
원본 영상: https://developer.apple.com/videos/play/wwdc2021/10254/ 이 장에서는 Swift 동시성 모델에 대한 이해와 성능 향상을 위한 방법에 대해 알아보겠습니다. Threading Model 많은 양의 데이터를 비동기로 업데이트하는 코드는 수많은 스레드를 생성할 수 있습니다. CPU 코어의 개수를 넘는 스레드는 성능 문제를 일으킵니다. 많은 스레드는 각각의 메모리 공간을 가지고 있어야 하기 때문에 메모리 오버헤드를 가집니다. 많은 스레드가 생성되면 많은 context switching이 발생하므로 CPU가 비효율 적으로 동작합니다. Concurrency in Swift Swift의 async/await는 매번 새 스레드를 생성하지 않기 때문에 Context ..
원본 영상: https://developer.apple.com/videos/play/wwdc2021/10132/ 이 장에서는 Swift에서 새로 지원되는 async/await 구문의 활용에 대해서 알아봅니다. 기존 방식의 문제점 예외가 발생하거나 실패 시에 completion 블록을 호출해 주는 것을 빼먹기가 쉽습니다. completion 호출을 함수가 끝나는 모든 지점에 넣어야 해서 코드가 복잡해집니다. Error?를 전달하는 대신 표준 라이브러리의 Result를 사용할 수 있지만 코드가 살짝 길어지고 약간 안정성이 더해질 뿐 근본적으로는 큰 차이가 없습니다. Async / await 함수에 async 키워드를 추가하여 비동기로 호출되는 함수임을 알릴 수 있습니다. completion블록을 전달하지 않..
원본 영상: https://developer.apple.com/videos/play/wwdc2021/10133/ 이 장에서는 Swift에서 새로 지원되는 Actor의 필요성과 활용에 대해서 알아봅니다. 기존 방식의 문제점 둘 이상의 스레드에서 동일 데이터에 접근할 때, 동시성 안정성이 보장되지 않아 예상하지 못한 결과를 얻을 수 있습니다. 기존에 이러한 문제를 컴파일 단계에서 회피하기 위한 수단으로 value타입을 사용하는 방법도 있습니다. 이 이외에 여러 스레드에서 동시에 접근되어야 하는 데이터가 손상되지 않도록 하기 위해서 아래의 방법을 사용할 수 있지만, 컴파일 단계에서 검증하는데 어려움이 있는 경우가 있었습니다. Atomic Lock Serial dispatch queues Actor Actor는..
원본 영상: https://developer.apple.com/videos/play/wwdc2021/10134/ 이 장에서는 Swift에서 새로 지원되는 구조화된 동시성 프로그래밍에 대해서 알아봅니다. 기존 방식의 문제점 위와 같은 기존의 비동기 작업을 처리하는 코드가 있을 때 겪을 수 있는 어려움은 다음과 같습니다. try - catch와 같은 기존의 예외처리 방식을 사용할 수 없습니다. for를 사용한 반복문을 사용할 수 없습니다. 1. Async Let 위와 같이 변경된 방식에서는 다음의 장점을 얻을 수 있습니다. 함수에 async thorws 키워드를 사용해 기존의 try - catch 예외처리 방식을 사용할 수 있습니다. Task를 통해 작업을 병렬로 수행할 수 있으며, 발생할 수 있는 버그를 ..