<aside>
👨🚀 1. 선택된 앱을 사용 시간을 추적하여, 시간이 경과되면 자동으로 앱이 잠금 화면으로 차단됩니다.
2. 잠금 화면 하단의 “잠금 해제하기”
버튼을 클릭하면 상단에 로컬 푸시 알림이 나타납니다.
3. 알림 클릭하면 앱으로 진입하여, 앱 사용 시간을 연장하는 Custom Alert 창을 통해 잠금을 해제할 수 있습니다.
</aside>
FamilyControls
을 이용하여 구현했습니다.
FamilyControls | Apple Developer Documentation
이 기능은 SwiftUI에서만 사용 가능합니다
AppAddButtonView
에서 버튼을 클릭하면 FamilyControlPicker
가 Present 됩니다.FamilyControlSelection
을 ObservableObject
인 BlockModel
에 저장하여 처리합니다.DeviceActivityMonitor
타겟을 추가하여 구현 했습니다.
DeviceActivityMonitor | Apple Developer Documentation
UserDefaults
의 suiteName
을 통해 App group을 사용해줍니다.TargetMemberShip
을 변경해줍니다.override func intervalWillStartWarning(for activity: DeviceActivityName) {
super.intervalWillStartWarning(for: activity)
// Handle the warning before the interval starts.
}
override func eventDidReachThreshold(_ event: DeviceActivityEvent.Name, activity: DeviceActivityName) {
super.eventDidReachThreshold(event, activity: activity)
// Handle the event reaching its threshold.
}