dev._.note

[Swift] Live Activity (ActivityKit, Dynamic Island, 잠금 화면) - UIKit에서 다이나믹 아일랜드 적용 방법 1 본문

Dev/SWIFT

[Swift] Live Activity (ActivityKit, Dynamic Island, 잠금 화면) - UIKit에서 다이나믹 아일랜드 적용 방법 1

Laena 2024. 2. 21. 22:11

UIKit에서 다이나믹 아일랜드 적용 방법

info.plist에서 Live Activity 활성화

 

File → Target

 

Widget Extension

 

생성된 것 중 필요한 두 가지 파일 확인

  • ~ Bundle: body가 있으며 여러 위젯을 노출할때 사용되는 컨테이너 (아래 ~LiveAcitivty 인스턴스를 여기에 선언)
  • ~ LiveActivity: 라이브 액티비티 (다이나믹 아일랜드, 잠금화면에 들어갈 뷰와 Attribute가 존재)

 

여기서 ~Bundle의 Target Membership의 UIKit 관련 타겟은 해제

 

UIKit에서 라이브 액티비티 사용 방법

Widget쪽과 UIKit의 인터페이스를 담당할 LiveAcitivtyManager라는 것을 만들어서 사용

  • Targets에 둘 다 체크

 

싱글톤으로 start(), update(state:), stop() 세 가지 메소드 구현

  • start(): Activity 인스턴스가 존재하지 않으면 생성하여 표출
  • update(state:): acitivity 업데이트
  • stop(): activity 중지