일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Xcode Cloud
- swiftUI
- AVFoundation
- User Enrollment
- METAL
- DriverKit
- SF Symbols
- CoreML
- Mac
- Xcode Organizer
- Hand Action Detect
- Hand Pose Detect
- NSUserActivity
- detent
- MDM
- async
- Physical Audio
- AppleEvent
- Object Capture
- SF Symbols 3.0
- WWDC 2021
- DooC
- App Clip
- SWiFT
- AR Quick Look
- Reality Composer
- ProRAW
- concurrency
- profile
- actor
- Today
- Total
목록WWDC/WWDC 2021 (60)
nyancoder
원본 영상: https://developer.apple.com/videos/play/wwdc2021/10180/ Impact of memory footprint 앱이 백그라운드에 있을 때 메모리 공간을 적게 사용할수록 앱이 종료되지 않을 가능성이 높습니다. 종료되지 않은 앱으로 다시 진입할 때는 빠르게 재진입할 수 있습니다. 메모리를 적게 사용할수록 애니메이션이나 동영상과 같은 추가적인 기능을 사용할 수 있습니다. 오래된 기기는 메모리를 작게 사용하기 때문에 메모리를 적게 사용해야만 오래된 기기에서도 동작할 수 있습니다. Dirty 메모리는 앱에서 기록한 데이터, malloc의 할당된 메모리, 디코딩된 이미지, 프레임워크에서 사용된 메모리로 구성됩니다. Compressed메모리는 최근에 접근되지 않은 메..
원본 영상: https://developer.apple.com/videos/play/wwdc2021/10146/ AVAsset async inspection AVAsset에 대한 조사는 비디오 파일이 크기 때문에 필요할 때 필요한 값에 대해 진행됩니다. 또한 네트워크를 통해 값을 가져올 수 있기 때문에 비동기로 동작합니다. async를 지원하는 새 load API를 통해 비동기로 쉽게 값을 가져올 수 있습니다. 하나의 값을 불러오는 것과 거의 유사하게 여러 개의 값을 불러올 수 있습니다. 특정 값의 상태가 불러온 상태인지, 아니면 아직 불러오지 않았는지, 값을 얻어오는데 실패한 상태인지 등을 체크할 수 있는 status 함수가 추가되었습니다. AVAsset에는 비동기로 값을 불러올 수 있는 많은 함수와 ..
원본 영상: https://developer.apple.com/videos/play/wwdc2021/10216/ Object lifetimes and ARC 객체의 수명은 init()에서 시작하여 마지막 접근 이후 끝납니다. ARC는 수명이 끝난 객체의 메모리를 자동 해제합니다. ARC는 참조 횟수를 추적하여 개체의 수명을 결정합니다. Swift 컴파일러는 ARC를 위해 retain/release 연산을 추가합니다. 참조 횟수가 0으로 떨어진 객체는 할당 해제됩니다. Traveler 객체는 생성되었을 때 ref_count가 1로 만들어집니다. traveler1에서 traveler2에 객체가 할당되었을 때, retain이 불리며 ref_count가 1 증가하여 2가 됩니다. 이후 traveler1은 더 이..
원본 영상: 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 ..