AVCaptureSession 샘플 프로젝트 분석 - AVCam: Building a camera app

Minsang Kang·2025년 2월 16일
0

iOS Develop

목록 보기
6/6

사실 블로그와 GPT를 토대로 샘플 프로젝트를 만들고 있었는데
이전 글에 이어 샘플 프로젝트가 있었다는 사실을 뒤늦게 알았네요..ㅎ
항상 새로운 기능을 개발하기 전에 공식문서를 간단하게라도 훓어보자는 다짐을 해 봅니다..

AVCam: Building a camera app

이 샘플 프로젝트는 이전 글 내용을 토대로 카메라, 마이크 등을 input 으로 세션을 구성해서 녹화하는 프로젝트 입니다.
근데 재밌는게 SwiftUI와 Swift concurrency 기능을 사용해서 반응형(responsive) 앱 이라고 합니다.

The sample uses SwiftUI and the features of Swift concurrency to build a responsive camera app.

여기서 actor 형태인 CaptureService 가 key type 이라고 하네요

  • 캡쳐 파이프라인을 구성
  • 캡쳐 파이프라인의 life cycle을 관리
  • 사진과 비디오를 캡쳐하기 위한 비동기 인터페이스를 정의
  • delegate 를 통해 작업의 처리를 PhotoCapture, MovieCapture 에게 위임

그리고 CaptureService가 actor 인 이유는 main thread 에서 동작되지 않게 막기 위함이라고 합니다.
앞선 session을 구성, 캡쳐 하는 과정에 더해 main thread 에서 동작되면 UI 응답성이 낮아질 수 있다는 것 같네요

여기서 UI가 아닌, 실시간 동작은 actor를 사용해서 쓰레드 관리도 가능하다는 것을 알고 갑니다.


이후 내용은 샘플 프로젝트의 실제 코드를 토대로 분석하며 작성해보겠습니다.

profile
 iOS Developer

0개의 댓글