ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ios 16 Live activities + Dynamic Island
    기덕의 생활/애플 2022. 9. 25. 21:12

    [LIVE ACTIVITIES]
    라이브 액티비티는 말하자면 위젯 형태의 알림입니다. 16.1에 추가된 ActivityKit api는 widgetkit으로 만든 위젯의 업데이트만 담당하므로 라이브 액티비티 보이는 부분 구현은 일반 위젯과 유사합니다.
    위젯처럼 백그라운드에서 업데이트하는 방식이 아닌 푸시 알림 방식으로만 업데이트 되서 업데이트를 트리거 해줄 서버가 따로 필요합니다.

    샘플코드 출처입니다: https://github.com/batikansosun/iOSLiveActivitiesLockScreen

    1:24 되어있는 부분은 타이머처럼 실시간으로 업데이트 되는거 보니 일반 위젯과는 다르게 실시간 업데이트가 초단위로 가능한것 같습니다.
    하지만 정보 업데이트 자체는 푸시 알림 방식이기 때문에 15초 남았다 푸시 보낸 후 위젯 내에서 카운트다운 하는 방식이 될거같네요

    한 앱에서 여러 액티비티를 동시에 보여줄 수 있으며 일반 노티처럼 스택되게 됩니다.
    ios 16 버그들 중 음악 재생 위젯이 스택 되는 버그가 있었는데 음악 위젯도 activitykit으로 만들어서 그런가 봅니다. 타이머의 경우도 비슷하게 동작하는데 음악이나 타이머나 둘다 푸시알림 방식은 아닐테니 내부 api가 따로 있긴 할거같네요

    새로운 일반 알림(노티)이 오게되면 액티비티 맨 밑에 추가되며
    새로운 액티비티가 추가되는경우 맨 위에 쌓이게 됩니다 (하단 액티비티 -> 음악 -> 상단 액티비티)

    위 예시는 같은 앱에서 번들 id만 바꿔서 다른 앱으로 처리해서 스택이 따로 쌓인 경우 입니다.


    [DYNAMIC ISLAND]
    xcode 14.1 부터 activitykit이 다시 들어갔길래 놀아봤습니다.

    라이브 액티비티/다이내믹 아일랜드 위젯을 만들 때 ActivityConfiguration이라는 새로운 configuration으로 정의를 하게 되는데

    그냥 라이브 액티비티만 정의하려했더니 오류가 뜨고 dynamicisland도 같이 정의하라고 하네요. 둘중 하나만 선언하는건 안되는것 같습니다.

    [Compact, Minimal 표시]
    상태바에 나타나는 크기는 Compact, Minimal 두가지 입니다.

    Leading이 좌, Trailing이 우 섹션이고

    이미지, 텍스트 표현 가능합니다
    위의 경우 한 앱에서 두개의 아일랜드가 표시되는 경우입니다

    [EXPANDED REGION]
    다이나믹 아일랜드 도큐멘테이션을 보면 Expanded Region은 4개의 섹션으로 구분되어 있습니다

    카메라 홀 기준 4개 섹션으로 구분되어 있으며 4개 중 필요한 부분만 선언해서 사용하면 됩니다

    Expanded Region leading & trailing 만 선언한 예시인데 priority 값으로 섹션 크기를 조정할수도 있다고 하는데 지금 제가 뭘 잘못한건지 적용이 안되는거같긴 합니다.


    적용예시는 다음과 같습니다

    일반적인 4개 섹션 정의

    Leading & Trailing만

    Trailing에 버튼 표시
    버튼의 경우는 음악 위젯 처럼 앱 오픈 없이 액션 실행은 안되는거같고 앱의 deep link 연결만 되는거같은데 홈화면 위젯과 비슷하다 보면 될거같네요

    '기덕의 생활 > 애플' 카테고리의 다른 글

    WWDC 21에서 맘에 들었던 것들  (0) 2021.06.17
Designed by Tistory.