스크린 타임

Apple 스크린 타임 API로 할 수 있는 일과 없는 일

모든 iPhone 차단기는 같은 세 개의 Apple 프레임워크 위에 세워져 있어서, 모두 같은 천장을 공유합니다. 그 천장의 위치를 알면 이 분야의 어떤 약속이 진짜이고 어떤 것이 마케팅인지 알 수 있습니다.

9분 분량

앱은 당신이 어떤 앱을 차단했는지 끝내 알지 못합니다

앱을 고르면 iOS는 읽을 수 없는 토큰을 돌려줍니다. 이름도, 번들 식별자도, 아이콘도 아닙니다. 토큰은 봉인된 손잡이입니다. 앱은 iOS에 차단을 요청할 수 있고 화면에 그려 달라고 요청할 수 있지만, 그 내용을 읽을 수는 없습니다.

그래서 잘 만든 차단기는 개수만 보여주고 목록은 iOS가 직접 그리게 합니다. 또한 그 토큰은 서버로 보낼 수 없다는 뜻이기도 합니다. 기기 밖에서는 아무 의미가 없기 때문입니다.

당신에게는 좋은 결과입니다. 앱을 만든 회사는 당신이 소개팅 앱을 차단했다는 사실을 정말로 모릅니다. 정책이 아니라 시스템의 성질로서요.

어떤 앱도 당신의 사용 시간을 읽을 수 없습니다

스크린 타임 사용량은 앱이 들여다볼 수 없는 뷰 안에서 iOS가 그립니다. 앱에 전달될 수 있는 것은 임계값을 넘었다는 사실뿐입니다.

그러니 차단기가 이번 주에 네 시간을 아껴줬다고 말한다면, 그 숫자를 있어서는 안 될 곳에서 얻었거나 지어낸 것입니다. 거의 언제나 후자입니다. 그것을 돌려주는 API는 없습니다.

Warden이 절약한 시간 수치를 절대 표시하지 않는 이유가 그것입니다. 표시하는 것은 연속 기록의 길이와 몇 번 부탁했는지이고, 둘 다 실제로 알고 있는 값입니다.

차단 화면은 거의 고정입니다

차단된 앱을 열었을 때 보이는 화면에는 아이콘 하나, 제목, 부제, 버튼 레이블 두 개가 허용됩니다. 그게 전체 면적입니다.

그 위의 버튼은 앱을 열 수 없습니다. 차단된 앱을 닫거나 스스로 사라지는 것뿐입니다. 그게 메뉴 전부입니다. 그러니 차단기가 알림을 통해 자기 화면으로 오라고 하는 것은 게으름이 아니라, Apple이 제공하는 유일한 경로이기 때문입니다.

확장 기능에는 실행 시간이 거의 없습니다

일정을 지켜보는 부분은 아주 작은 예산의 백그라운드 확장으로 돌아갑니다. 로컬 상태를 읽고, 차단을 걸고, 네트워크 호출을 한 번 하고 돌아올 정도입니다.

그래서 진지한 차단기는 논리를 기기에 두고 상태를 작게 유지합니다. 차단할지 판단하는 데 네트워크 왕복이 필요한 것은, 회선이 느릴 때 열려버리는 차단기입니다.

어느 것도 우회할 가치가 없는 이유

이 제한들은 하나같이 대안이 더 나쁘기 때문에 존재합니다. 앱 목록을 읽을 수 있는 앱은 그것을 팔 수 있습니다. 휴대폰을 영구히 잠글 수 있는 앱은, 당신을 대신해 설치한 누군가가 당신에게 쓸 수 있습니다.

여기서 만드는 사람의 정직한 태도는 천장의 위치를 말하고 그 아래에서 설계하는 것이지, 천장이 없는 척 암시하는 것이 아닙니다. 고려 중인 차단기에게 설정에서 권한을 빼면 어떻게 되는지 물어보세요. 아무 일도 없고 아무도 모른다는 답이라면, 얼마나 고민했는지 알 수 있습니다.

자주 묻는 질문

앱이 제가 차단한 앱을 볼 수 있나요?

없습니다. iOS는 읽을 수 없는 토큰만 건네고 이름과 아이콘은 직접 그립니다. 앱의 개인정보 정책이 아니라 시스템이 강제합니다.

왜 몇 시간을 아꼈는지 알려주는 앱이 없나요?

당신의 사용량을 서드파티 앱에 돌려주는 인터페이스가 없기 때문입니다. 그 숫자를 보여주는 앱은 추정하고 있고, 추정을 측정처럼 제시하고 있습니다.

차단기에서 스크린 타임 접근 권한을 뺄 수 있나요?

네, iOS 설정에서 언제든지요. 당신의 휴대폰입니다. 물어볼 가치가 있는 것은 앱이 그것을 알아채는지, 그리고 다른 누군가가 알게 되는지입니다.

Warden 받기작동 방식

다음 글