발표자: 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 기반으로 쉽게 통합 가능
- 설계 원칙:
- 기존 제한 기능에 직접 접근할 수 있는 현대적인 온디바이스 프레임워크 제공
- 사용자 개인정보 보호 최우선 유지
- 개발자가 동적 부모 통제 앱을 만들 수 있도록 지원
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' 앱 기능
- 보호자가 설정한 학습 앱 사용량을 충족해야 게임 앱 사용 가능
- 세 가지 프레임워크 활용:
- Family Controls – 보호자 승인 요청
- Managed Settings – 보호자가 선택한 앱 차단 (Shielding 기능)
- Device Activity – 사용량 조건 충족 시 앱 차단 해제
구현 과정
- 보호자 승인 요청 (Family Controls 활용)
requestAuthorization
함수를 호출하여 보호자가 승인
- 앱 차단 설정 (Managed Settings + Device Activity 활용)
- 보호자가 특정 앱을 차단할 수 있도록 Family Activity Picker UI 제공
- Device Activity Schedule을 사용해 특정 시간대(예: 하루 종일) 앱 차단
- Device Activity Event를 설정하여 특정 앱 사용량이 충족되면 차단 해제
- 커스텀 차단 화면 (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를 지속적으로 개선할 예정.
발표자: 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는 세 가지 주요 프레임워크로 구성됨:
- Family Controls (가족 컨트롤)
- Screen Time API 접근을 위한 인증 게이트웨이 역할.
- 보호자가 승인한 경우 앱 삭제 및 iCloud 로그아웃 방지.
- 익명 토큰 방식으로 앱 및 웹사이트 사용 데이터를 보호.
- Managed Settings (관리 설정)
- 앱에서 특정 앱/웹사이트 차단, 계정 변경 제한, 웹 트래픽 필터링 가능.
- Screen Time의 기능을 앱 브랜드 및 기능에 맞게 커스터마이징.
- Device Activity (디바이스 활동)
- 앱이 실행되지 않아도 특정 시간대 또는 사용량 초과 시 코드 실행 가능.
- 특정 앱/웹사이트 사용량을 모니터링하고 이벤트 발생 가능.
3. iOS 16의 주요 개선 사항
① Family Controls: 독립적인 사용자 인증 지원
- 기존(iOS 15):
- iCloud 인증을 통한 자녀 디바이스 전용 보호자 승인 방식.
- iOS 16 변경점:
- 보호자 외에도 개인이 자신의 디바이스에서 직접 인증 가능.
- 부모 통제 앱 이외에도 다양한 앱에서 활용 가능 (예: 생산성 관리 앱).
- 기존 보호자 승인 방식과는 달리 iCloud 로그아웃 및 앱 삭제 제한 없음.
사용 방법
requestAuthorization
호출 → 사용자에게 인증 요청.
- Face ID, Touch ID 또는 디바이스 암호 입력 후 인증 완료.
- 인증이 완료되면 설정(Settings) > Screen Time에 앱이 자동 추가됨.
- 사용자(보호자 또는 개인)가 설정에서 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 기반 맞춤형 사용량 보고서 생성 가능.
- 새로운 확장 포인트를 통해 사용자별 맞춤 데이터 표시.
- 개인정보 보호 기능 유지하면서 사용자에게 피드백 제공 가능.
사용 방법
- DeviceActivityReportContext 생성 → 어떤 데이터를 표시할지 정의.
- DeviceActivityFilter 지정 → 원하는 데이터 범위 설정.
- DeviceActivityReportScene 내에서 표시할 UI 정의.
- SwiftUI 기반 차트(PieChartView) 로 데이터 시각화.
활용 예시 (Worklog 앱)
- 사용자가 하루 동안 어떤 앱을 얼마나 사용했는지 파이 차트로 표시.
- 특정 사용량이 초과되면 자동으로 앱 차단 또는 경고 표시.
- 자동 업데이트 지원: 새 데이터가 들어오면 자동으로 UI 업데이트됨.
4. iOS 16 Screen Time API 개선 사항 요약
기능 | iOS 15 | iOS 16 개선점 |
---|
Family Controls | 부모(보호자) 승인 필요 | 개인도 자신의 디바이스에서 독립적으로 인증 가능 |
Managed Settings | 하나의 설정 저장소만 지원 | 최대 50개의 Named Stores 지원, 앱 간 자동 공유 |
Device Activity | 사용량 초과 시 이벤트 호출 | 맞춤형 사용량 보고서 제공 (SwiftUI 기반 UI) |
5. 결론
- 개별 사용자가 직접 Screen Time API를 활용할 수 있도록 확장됨 (단순 부모 통제 앱을 넘어 생산성 앱까지 활용 가능).
- 앱과 확장 프로그램 간 설정 공유가 간편해져 개발자 편의성 향상.
- SwiftUI 기반 사용량 보고서(Custom Usage Reports)를 통해 사용자의 데이터 피드백 경험 개선.
- Apple은 개발자의 피드백을 반영하여 Screen Time API를 지속적으로 발전시킬 계획.