What's new in Screen Time API

What's new in Screen Time API

🔵 지난 iOS15 릴리즈 주요 사항

🔹 Family Controls

  • Screen Time API에 대한 엑세스 권한을 부여하는 역할. 본질적 게이트웨이

  • 자녀 보호 앱 제거 & 우회 방지

  • 가족이 사용하는 앱을 위한 개인 정보 보호 토큰

🔹 Managed Setting

  • 기기에 지속적인 제한 설정 기능

  • 웹 콘텐츠 필터링 제공

  • 맞춤형 UI로 앱&웹 보호

🔹 Device Activity

  • 디바이스 활동 일정의 시작 및 종료 시 코드 실행

  • 사용 한계치 도달 시 코드 실행

🔵 iOS16 데모 앱 : Worklog

특정 수치들이 충족될 때까지 특정 앱의 사용을 제한하는 기능

🔹 NEW Family Controls

iOS15 iCloud 승인을 통해서만 자녀의 기기를 승인할 수 있었음

iOS16 자신의 기기에서 개별 사용자를 승인할 수 있게 되었음

  • 개별 사용자가 스스로 인증

  • 여러 개의 개별 인증

  • 개별 인증에 대한 앱 제거 또는 iCloud 로그아웃 제한 없음

기존 코드보다 훨씬 간결해졌다.

🔹 Managed Settings Store

현재 사용자나 기기에 설정을 적용하는 데이터 저장소

iOS15 프로세스당 하나의 ManagedSettingsStore 만 허용됨, 또한 앱과 DeviceActivity의 확장 프로그램은 별도로 ManagedSettingsStore가 필요해서 DeviceActivity에 대한 응답에서 설정을 변경하기 어려웠음

iOS16 프로세스마다 고유한 이름을 가진 ManagedSettingsStore를 최대 50개 만들 수 있음. 이렇게 명명된 ManagedSettingsStore들(Named stores)은 앱과 모든 앱 확장프로그램에서 자동으로 공유됨. 모든 Named stores에서 한번에 설정 제거도 가능해짐

영상에선 ActivityCategoryToken에 대한 사용 방법을 알려주지 않아서 따로 찾아봤다.

How to use categories in Managed S… | Apple Developer Forumsarrow-up-right

ActivityCategoryToken | Apple Developer Documentationarrow-up-right

FamilyActivitySelection | Apple Developer Documentationarrow-up-right

FamilyActivityPicker | Apple Developer Documentationarrow-up-right

여기까지 보고 이전에 작성했던 예제arrow-up-right를 살펴봤다.

FamilyActivityPicker** 에서 유저가 선택한 앱들의 정보를 FamilyActivitySelection에 담아 model에 전달한다.

Is it possible to use familly acti… | Apple Developer Forumsarrow-up-right

문제는 SwiftUI 코드라서 UIHostingController를 사용해야한다.

Use SwiftUI in UIKit View Controllers with UIHostingControllerarrow-up-right

UIHostingController in SwiftUI 2020 (Use in UIViewController) - How To Bridge UIKit with SwiftUI.arrow-up-right

아무튼 나머지 코드를 먼저 살펴보자면

🔹 DeviceActivity

현재 사용자나 기기에 설정을 적용하는 데이터 저장소

iOS15 앱과 웹 사이트에 대한 사용량 허용치와 사용 시간대에 반응했음

iOS16 SwiftUI를 사용한 사용자 지정 사용량 보고서를 만들 수 있게 됐음. 사용량 데이터는 새로운 확장 포인트를 통해 사용자에게 표시될 데이터와 화면에 표현될 방식을 사용자 정의 할 수 있음. 이를 DeviceActivityReport는 최종 사용자의 개인정보 보호를 보장함

이걸 이용해서 보고서를 개인화하여 뷰에 표시할 수 있고, 원하는 차트타입 뷰를 구현해서 보여주면 된다는데 끝까지 다 보고 적용시켜보려고 SwiftUI 프로젝트 예제도 해봤는데, 코드를 너무 일부만 보여주고 샘플 코드조차 공개를 해놓지 않아서 도대체 어떻게 사용하라는 건지 모르겠다!

나머지는 공식문서를 보고 직접 이해하고 적용해보는 수 밖에 없는 듯 하다.

Last updated