[iOS 13주차] 스크린타임 API 프레임워크 (WWDC)

DoyleHWorks·2025년 1월 17일
0

WWDC 2021: Screen Time API 소개

발표자: Christopher Skogen (Screen Time 팀 엔지니어)

주제: 새로운 Screen Time API 및 주요 기능

1. Screen Time API 개요

  • 도입 배경:
    • Screen Time 기능이 iPhone, iPad, Mac에서 사용자 및 가족의 디바이스 사용 습관을 관리하는 데 기여.
    • 개발자들이 부모 통제 앱에서 활용할 수 있도록 Screen Time API 제공.
  • 적용 대상:
    • iOS 15 및 iPadOS 15
    • 100% Swift 및 SwiftUI 기반으로 쉽게 통합 가능
  • 설계 원칙:
    1. 기존 제한 기능에 직접 접근할 수 있는 현대적인 온디바이스 프레임워크 제공
    2. 사용자 개인정보 보호 최우선 유지
    3. 개발자가 동적 부모 통제 앱을 만들 수 있도록 지원

2. Screen Time API 구성

Screen Time API는 세 가지 주요 프레임워크로 구성됨.

① Managed Settings (관리 설정)

  • 부모 통제 앱이 아이의 디바이스에서 특정 행동을 제한하는 기능 제공
  • 설정 가능한 제한 예시:
    • 계정 변경 금지 (예: 비밀번호 변경 차단)
    • 웹 트래픽 필터링
    • 특정 앱 또는 기능 차단
  • 앱에서 자체 브랜드 및 기능에 맞게 제한 사항을 커스터마이징 가능

② Family Controls (가족 컨트롤)

  • Family Sharing을 기반으로 보호자 승인 없이 Screen Time API 접근 불가
  • 보호자가 승인한 앱은 삭제 불가
  • 앱 및 웹사이트의 사용 데이터를 보호하는 익명 토큰 방식 사용
  • 개인정보 보호 기능:
    • 가족 외부에서 어떤 앱/웹사이트를 사용하는지 알 수 없음

③ Device Activity (디바이스 활동)

  • 앱이 실행되지 않아도 백그라운드에서 코드 실행 가능
  • 주요 기능:
    • Device Activity Schedules:
      • 특정 시간대에 실행되는 예약 작업 (예: 특정 시간에 앱 차단)
    • Device Activity Events:
      • 앱/웹사이트 사용량이 특정 임계값을 초과하면 이벤트 발생 (예: 학습 앱을 1시간 사용하면 게임 앱 차단 해제)

3. Screen Time API 활용 예시: 'Homework' 앱

발표에서 데모 앱 ‘Homework’를 통해 Screen Time API 활용법 시연.

'Homework' 앱 기능

  • 보호자가 설정한 학습 앱 사용량을 충족해야 게임 앱 사용 가능
  • 세 가지 프레임워크 활용:
    1. Family Controls – 보호자 승인 요청
    2. Managed Settings – 보호자가 선택한 앱 차단 (Shielding 기능)
    3. Device Activity – 사용량 조건 충족 시 앱 차단 해제

구현 과정

  1. 보호자 승인 요청 (Family Controls 활용)
    • requestAuthorization 함수를 호출하여 보호자가 승인
  2. 앱 차단 설정 (Managed Settings + Device Activity 활용)
    • 보호자가 특정 앱을 차단할 수 있도록 Family Activity Picker UI 제공
    • Device Activity Schedule을 사용해 특정 시간대(예: 하루 종일) 앱 차단
    • Device Activity Event를 설정하여 특정 앱 사용량이 충족되면 차단 해제
  3. 커스텀 차단 화면 (Shield Customization)
    • 기본 Screen Time 차단 화면을 앱 브랜드에 맞게 UI 커스터마이징
    • 보호자가 허용할 경우, 차단 해제 요청 버튼 추가 가능

4. Screen Time API의 주요 기능 정리

기능설명
Managed Settings앱에서 특정 설정 및 제한을 적용 가능
Family Controls보호자 승인 기반으로 Screen Time API 접근 제한
Device Activity앱이 실행되지 않아도 특정 이벤트에 따라 코드 실행 가능
Shielding특정 앱을 보호자가 설정한 시간 동안 차단
Custom Shields차단 화면을 브랜드에 맞게 커스터마이징
Usage Monitoring특정 앱/웹사이트 사용량을 모니터링하고 규칙 적용

5. 결론

  • Screen Time API는 제한 기능, 개인정보 보호, 동적 경험 제공이라는 세 가지 목표를 달성하도록 설계됨.
  • 개발자는 Managed Settings, Family Controls, Device Activity를 활용하여 강력한 부모 통제 앱을 개발 가능.
  • Apple은 개발자 피드백을 반영하여 Screen Time API를 지속적으로 개선할 예정.



WWDC 2022: iOS 16 Screen Time API 업데이트

발표자: MaryAshley Etefia (Screen Time 팀 소프트웨어 엔지니어)

주제: iOS 16의 Screen Time API 개선 사항 및 새로운 기능


1. 배경 및 개요

  • COVID-19 팬데믹 이후 디지털 건강과 생산성에 대한 필요성이 증가.
  • iOS 15의 Screen Time API가 부모 통제 앱 개발을 위한 강력한 기능을 제공.
  • 개발자들의 피드백을 반영하여 iOS 16에서 Screen Time API를 개선하고 확장.

2. iOS 15의 Screen Time API 요약

Screen Time API는 세 가지 주요 프레임워크로 구성됨:

  1. Family Controls (가족 컨트롤)
    • Screen Time API 접근을 위한 인증 게이트웨이 역할.
    • 보호자가 승인한 경우 앱 삭제 및 iCloud 로그아웃 방지.
    • 익명 토큰 방식으로 앱 및 웹사이트 사용 데이터를 보호.
  2. Managed Settings (관리 설정)
    • 앱에서 특정 앱/웹사이트 차단, 계정 변경 제한, 웹 트래픽 필터링 가능.
    • Screen Time의 기능을 앱 브랜드 및 기능에 맞게 커스터마이징.
  3. Device Activity (디바이스 활동)
    • 앱이 실행되지 않아도 특정 시간대 또는 사용량 초과 시 코드 실행 가능.
    • 특정 앱/웹사이트 사용량을 모니터링하고 이벤트 발생 가능.

3. iOS 16의 주요 개선 사항

① Family Controls: 독립적인 사용자 인증 지원

  • 기존(iOS 15):
    • iCloud 인증을 통한 자녀 디바이스 전용 보호자 승인 방식.
  • iOS 16 변경점:
    • 보호자 외에도 개인이 자신의 디바이스에서 직접 인증 가능.
    • 부모 통제 앱 이외에도 다양한 앱에서 활용 가능 (예: 생산성 관리 앱).
    • 기존 보호자 승인 방식과는 달리 iCloud 로그아웃 및 앱 삭제 제한 없음.

사용 방법

  1. requestAuthorization 호출 → 사용자에게 인증 요청.
  2. Face ID, Touch ID 또는 디바이스 암호 입력 후 인증 완료.
  3. 인증이 완료되면 설정(Settings) > Screen Time에 앱이 자동 추가됨.
  4. 사용자(보호자 또는 개인)가 설정에서 Family Controls 권한을 해제 가능.

② Managed Settings: 다중 설정 저장소(Named Stores) 지원

  • 기존(iOS 15):
    • 앱당 하나의 Managed Settings Store만 사용 가능.
    • 앱과 디바이스 활동 확장(Device Activity Extension) 간 설정 공유 불가.
  • iOS 16 변경점:
    • 최대 50개의 Named Stores 생성 가능.
    • 앱과 확장 프로그램 간 자동 공유 가능.
    • 특정 Named Store의 모든 설정을 한 번에 제거 가능.

활용 예시 (Worklog 앱)

  • Gaming Store: 게임 웹사이트 차단.
  • Social Store: 소셜 미디어 앱/웹사이트 차단.
  • Allow for Evenings 버튼:
    • Device Activity Schedule을 생성하여 오후 5시~8시 동안 소셜 미디어 사용 가능.
    • 8시 이후 자동으로 차단 재적용.
  • 설정 충돌 방지:
    • 제한적인 설정이 우선 적용됨.
    • 예를 들어, Gaming Store에서 게임 웹사이트 차단 시, Social Store에서 해당 차단을 해제해도 여전히 차단 유지.

③ Device Activity: 맞춤형 사용량 보고서 (Custom Usage Reports)

  • 기존(iOS 15):
    • 특정 앱/웹사이트 사용 시간 초과 시 이벤트 발생.
  • iOS 16 변경점:
    • SwiftUI 기반 맞춤형 사용량 보고서 생성 가능.
    • 새로운 확장 포인트를 통해 사용자별 맞춤 데이터 표시.
    • 개인정보 보호 기능 유지하면서 사용자에게 피드백 제공 가능.

사용 방법

  1. DeviceActivityReportContext 생성 → 어떤 데이터를 표시할지 정의.
  2. DeviceActivityFilter 지정 → 원하는 데이터 범위 설정.
  3. DeviceActivityReportScene 내에서 표시할 UI 정의.
  4. SwiftUI 기반 차트(PieChartView) 로 데이터 시각화.

활용 예시 (Worklog 앱)

  • 사용자가 하루 동안 어떤 앱을 얼마나 사용했는지 파이 차트로 표시.
  • 특정 사용량이 초과되면 자동으로 앱 차단 또는 경고 표시.
  • 자동 업데이트 지원: 새 데이터가 들어오면 자동으로 UI 업데이트됨.

4. iOS 16 Screen Time API 개선 사항 요약

기능iOS 15iOS 16 개선점
Family Controls부모(보호자) 승인 필요개인도 자신의 디바이스에서 독립적으로 인증 가능
Managed Settings하나의 설정 저장소만 지원최대 50개의 Named Stores 지원, 앱 간 자동 공유
Device Activity사용량 초과 시 이벤트 호출맞춤형 사용량 보고서 제공 (SwiftUI 기반 UI)

5. 결론

  • 개별 사용자가 직접 Screen Time API를 활용할 수 있도록 확장됨 (단순 부모 통제 앱을 넘어 생산성 앱까지 활용 가능).
  • 앱과 확장 프로그램 간 설정 공유가 간편해져 개발자 편의성 향상.
  • SwiftUI 기반 사용량 보고서(Custom Usage Reports)를 통해 사용자의 데이터 피드백 경험 개선.
  • Apple은 개발자의 피드백을 반영하여 Screen Time API를 지속적으로 발전시킬 계획.

profile
Reciprocity lies in knowing enough

0개의 댓글

관련 채용 정보