iOS

[iOS 16+] Live Activity

Zedd0202 2023. 2. 20. 10:12
반응형

 

기술조사가 필요해서 간단히 정리해보기 

 

# Live Activity

앱의 최신 정보를 표시하여, 사람들이 이벤트 또는 작업의 진행상황을 한눈에 볼 수 있도록 한다.

Live Activity는 아이폰에서 사용가능 

 

# Live Activity가 나타날 수 있는 위치

1. 잠금화면 (Dynamic Island 지원여부와 상관없이 16+ 모든 디바이스에서 나타남.) 

2-1. Dynamic Island 지원 O ➡️ Dynamic Island에 나옴

2-2. Dynamic Island 지원 X ➡️ 사람들이 홈 화면을 보거나 다른 앱을 사용하는 동안 잠시상단 화면에 나타나는 배너 (앱에서 업데이트가 사람들을 방해할 만큼 중요하다고 판단하는 경우에만 표시됨. 이건 따로 코드로 작업해줘야하는거라 일반적인(?) 상황에서는 안보이는게 맞음. ) 

잠금화면에서 보여질 때 / Dynamic Island 지원 X && 배너형태

 

# 권한

Live Activity는 따로 권한 요청 Alert를 띄우는건 아니고.. 

처음에 잠금화면에서 

이렇게 뜬다. (잠금화면에서만 나오고, Dynamic Island 에서는 따로 권한 설정 버튼이 나오진 않는다.)

설정에서 각 앱의 실시간 현황(Live Activity) 권한을 on/off 할 수 있다. 

권한을 off하면 Dynamic Island에서도 안나옴. 

 

# Presentation 

시스템이 Live Activity를 표시하기 위해 여러 Presentation을 사용함

- Compact

- Minimal

- Expanded

- Lock Screen

Live Activity를 지원하는 모든 디바이스 제대로 동작할 수 있도록 모든 타입을 지원해야한다.

 

# 제약

1. Live Activity는 앱이나 사용자가 종료하지 않는 이상 최대 8시간 동안 활성화 될 수 있음

이 8시간 제한이 지나면 시스템이 자동으로 종료

Live Activity이 종료되면 시스템은 이를 Dynamic Island에서 즉시 제거

 

Live Activity는 사람 or 시스템이 제거하기 전 최대 4시간 동안 잠금 화면에 남아있음.

결과적으로 Live Activity는 최대 12시간동안 잠금화면에 남아있을 수 있음.

 

2. 디바이스 presentation 크기보다 작거나 같은 해상도를 사용하려면 Live Activity에 대한 이미지 Asset이 시스템에 필요함.

 

Live Activity Presentation 크기보다 큰 이미지 Asset을 사용하는 경우, 시스템이 Live Activity를 시작하지 못할 수 있음.

참고 : Human Interface Guidelines > Live Activities.

 

3. 각 Live Activity는 자체 샌드박스에서 실행되며, Widget과 달리 네트워크에 접근하거나 위치 업데이트를 받을 수 없음

현재 실행중인 Live Activity의 동적 데이터를 업데이트하려면,

앱에서 ActivityKit 프레임워크를 사용하거나, ActivityKit 푸시알림을 사용할 수 있음.

But 업데이트된 동적 데이터는 크기가 4KB를 초과할 수 없음

 

참고 : Updating and ending your Live Activity with ActivityKit push notifications.

 

# Best practices

1. 시작과 끝이 있는 작업 / 라이브 이벤트에 대해 Live Activity를 제공할 것

8시간을 초과하는 작업에 대해서는 Live Activity를 제공하지 말고, 작업/이벤트가 종료된 직후에 Live Activity를 잘 종료하기

 

2. 정말 필수적인 컨텐츠만 제시할 것 (== TMI ㄴㄴ)

사람들은 작업/이벤트에 대한 요약, 핵심정보를 얻는걸 좋아하지 세부정보 표시하지 말것. 

 

3. 새로운 컨텐츠를 사용할 수 있을때만 Live Activity 업데이트 / 주의를 끄는것이 꼭 필요한 경우에만 유저에게 알리기

Live Activity는 그냥 혼자 업데이트 하면 되는데, 꼭 유저에게 알려야겠다면 꼭 필요할 때만 알려라..

너무 자주 경고하거나, 중요하지 않은 업데이트에 대해 계속 알리면 짜증나고 결국 Live Activity 사용을 중단하도록 할 수 있음

 

Dynamic Island를 지원하지 않는 기기 && 사용자에게 Alert을 보내는 코드를 작성하게 되면 아래와같이 배너로 뜨게 되는데,

이게 홈 or 다른 앱을 사용중일때 뜰 수 있기 때문에 진짜 꼭 필요할때만 유저가 알 수 있도록 하기 

 

4. Live Activity에 민감한 정보 표시 X

Live Activity를 탭해야 더 많은 정보를 얻도록 하기

 

5. Live Activity를 사용하여 광고 또는 프로모션 X

 

6. 사용자가 직접 Live Activity의 시작과 종료를 제어할 수 있도록 하기

[시작]

앱 내에서 Live Activity를 시작하도록 하는 버튼을 제공하는 것도 괜찮음.

근데!!!! Live Activity가 자동으로 시작될것으로 예상하는 몇가지 상황이 있음.

ex. 음식 배달, 차량 호출 등을 했을 때 즉시 자동으로 Live Activity를 시작하는 게 좋음

But. 설정에서 Live Activity를 끌 수 있으므로 예상하지 못한 Live Activity를 시작하여 사람들을 놀라게 하지 않는것이 중요!!!!!!

[종료]

작업/이벤트가 완료되지 않아도 사람들이 Live Activity를 종료할 수 있도록 Live Activity를 중지하거나 취소하는 버튼을 제공할 것.

그 Live Activity 보여주는 Presentation쪽에서 보여줘야한다는건 아니고, 앱 내에서 종료할 수 있도록 제공하라~~는 뜻 

 

 

참고

https://developer.apple.com/design/human-interface-guidelines/components/system-experiences/live-activities/

https://developer.apple.com/documentation/activitykit/displaying-live-data-with-live-activities

반응형