ios 157

swift rethrows

swift rethrows 함수나 메서드는 rethrows 키워드를 사용하여 선언할 수 있음.이는 함수 매개변수 중 하나가 에러를 던질 경우에만 에러를 던진다는 것을 의미.이러한 함수와 메서드를 rethrowing 함수(rethrowing functions) 또는 rethrowing 메서드(rethrowing methods)라고 부름. func someFunction(callback: () throws -> Void) throws { try callback()} rethrowing 함수와 메서드는 적어도 하나의 throwing 함수 매개변수를 가져야 함.rethrowing 함수나 메서드는 오직 catch 블록 안에서만 throw 문을 포함할 수 있음. 이 규칙을 통해 do-catch 구문 안에서 ..

SpeechAnalyzer

SpeechAnalyzer 음성으로 입력된 오디오 콘텐츠를 다양한 방식으로 분석하고, analysis session을 관리 OverviewSpeech 프레임워크는 특정 유형의 analysis(분석) 및 transcription(받아쓰기) 기능을 제공하기 위해 analyzer에 추가할 수 있는 여러 모듈을 제공 대부분의 사용 사례에서는 음성을 텍스트로 변환하는 SpeechTranscriber 모듈만으로 충분. SpeechAnalyzer 역할관련 모듈을 보관음성 오디오 입력을 수신전체 분석 흐름을 제어각 모듈의 역할허용되는 입력 형태에 대한 가이던스를 제공자체 분석 결과 또는 transcription 결과를 출력비동기 기반으로 흐름 분석Analysis는 비동기로 수행.입력, 출력, 세션 제어는 서로 분리..

SpeechTranscriber 정리 + DictationTranscriber

SpeechTranscriber 정리 + DictationTranscriber SpeechTranscriber, DictationTranscriber 각각에 대해서 정리하고, SpeechTranscriber의 속성과 구현을 하나씩 확인. 목차 SpeechTranscriberOverviewCheck device supportDictationTranscriberOverviewImprove accuracySpeechTranscriber와 DictationTranscriber 비교 정리SpeechTranscriber 자세히 보기isAvailable과 supportedLocales 프로퍼티 정의Configuring transcriptionSpeechTranscriber.ReportingOptionSpeechTra..

UNUserNotificationCenter `requestAuthorization`에서 발생하는 희귀한 버그 현상 분석

UNUserNotificationCenter `requestAuthorization`에서 발생하는 희귀한 버그 현상 분석 사내에 2021년에 작성된 코드에서 앱이 멈추는 상황이 발생해서 사례 분석앱 시작 직후가 아닌, 사용자에게 별도 페이지에서 안내 후 버튼 클릭을 통한 권한 요청의 동선 상세한 분석 링크https://github.com/lgvv/unusernotificationcenter-requestauthorization-blocking-simulation GitHub - lgvv/unusernotificationcenter-requestauthorization-blocking-simulation: Investigating Rare Bugs in UNUserNotificationCeInvestiga..

l-value, r-value

l-value, r-value프로젝트 내 C, C++, objective-c, swift 코드가 존재하여 이를 분석하면서 개념 정리. 용어 정리 L-value (locator value)란?메모리상의 위치(location) 를 가리키는 표현식.: 대입의 왼쪽에 올 수 있는 것(항상은 아님). 변수, 배열 원소, 프로퍼티, deref(*p) 등.: 즉, 여기에 값을 저장할 수 있음. R-value (read value / right value)란? 실제 값(리터럴, 계산 결과, 일시적인 임시객체).: 보통 대입의 오른쪽에 오는 것. 임시값이므로 주소를 갖지 않거나 곧 사라짐.: 즉, 이건 읽을 수는 있지만, 직접 이곳에 값을 저장할 수는 없다. ** 참고 ** : 현대 언어는 이분법을 확장.: 예: C++..

ARC in Swift: Basics and beyond - WWDC21

ARC in Swift: Basics and beyond - WWDC21 Swift에서는 가능하다면 Value Type 사용하는게 더 좋은데 Reference Type을 사용해서 의도치 않은 데이터 공유에 따른 오류를 피할 수 있음.그럼에도 불구하고 class와 같은 Reference Type을 사용해야 한다면 Swif에서 ARC를 통해 메모리를 관리하고 효과적으로 코드를 작성하기 위해서는 ARC의 동작 방식을 이해하는게 도움이 됨. Object lifetimes and ARC: Swift에서 객체 수명과 ARC에 대한 리뷰Observable object lifetimes: 관찰 가능한 객체의 수명이 무엇인지 설명: 관찰 가능하게 만드는 언어적 특징과 관촬된 객체 수명에 의조낳는 것의 결과와 이를..

apple/WWDC 2025.10.23

Adaptive Bit Streaming

Adaptive Bit Streaming Adaptive Bitrate Streaming란 네트워크 환경에 따라 실시간으로 비디오 스트림의 비트레이트(화질)을 동적으로 조절해 시청자에게 끊김 없는 최적의 시청 경험을 제공하는 기술 동작 방식비디오 서버는 하나의 원본 영상을 여러가지 비트레이트와 해상도로 인코딩하여 저장. 시청자의 비디오 플레이어는 현재 네트워크 대역폭(bandwidth)를 지속적으로 모니터링하면서 대역폭이 충분하면 고화질(높은 비트레이트) 세그먼트(segment)를 요청하고대역폭이 충분하지 않다면 저화질(낮은 비트레이트) 세그먼트로 자동으로 전환하면서 동적으로 동작 동작 방식에 대한 이미지이미지를 동적으로 변경하면서 실행 주요 프로토콜Apple - HLS (HTTP Live Stream..

백그라운드에서 작업 완료하기 (Finish tasks in the background) -wwdc25

백그라운드에서 작업 완료하기 (Finish tasks in the background) -wwdc25 사용자가 앱을 나가고도 프로세스가 살아 있으면 앱은 백그라운드로 전환.기본적으로 백그라운드 앱은 Suspended 되어서 CPU를 사용하지 않게 됨. 이는 배터리를 보호하고 개인 정보를 지키며 foreground 앱에 더 많은 리소스를 확보해 줌. 경우에 따라서는 앱은 suspened 전 작업을 마무리 할 수 있도록 백그라운드에 실행을 요청할 수 있음. 백그라운드 런타임을 사용하기 전에 시스템이 리소스를 어떻게 우선순위화 하고 관리하는지 그리고 앱 안에서 무엇을 할 수 있을지 이해하는 것이 좋음. 시스템의 목표는 배터리를 보호하고 개인정보를 지키며 반응성 좋은 앱을 만드는 것임.즉, 백그라운드 실행은..

apple/WWDC 2025.07.30

Swift Concurrency Task weak self 실험 정리

Swift Concurrency Task weak self 실험 정리 Task에서 weak self 사용과 관련해서 실험들을 정리.개념에 대한 부분을 따로 생략함. Swift에서 Task를 사용할 때 self를 강하게 캡처하지만, 클로저가 종료될 때 메모리 Swift의 Task는 기본적으로 self를 강하게 캡처하기 때문에, Task의 수명이 self보다 길어질 경우 retain cycle 없이도 self의 deinit 호출이 지연될 수 있음.따라서 Task가 더 오래 살아 있을 가능성이 있다면 [weak self]를 명시하는 것이 안전.반면, Task의 수명이 self보다 짧고 일회성 작업에 그친다면 굳이 [weak self]를 사용할 필요는 없음. 목차example_1Task에 weak self를 명..