image

Unlimited bootcamps and 750+ courses forever

70
%OFF

AK

Ayumu Kitabayashi25/10/2026 23:55
Share

Por que o Screen Time bloqueia o app inteiro e não só a aba de Reels (iOS)

    Não dá para bloquear só a aba de Reels do Instagram com o Tempo de Uso do iPhone, nem com a API de Screen Time que os apps de terceiros usam. A unidade dessa API é o app inteiro (ou uma categoria, ou um domínio da web). Não existe um token para "uma parte de outro app". Por isso o bloqueio leva junto as DMs. Abaixo explico o que a API oferece e o que dá para construir com ela.

    O que o usuário tem hoje

    • Limite diário do próprio Instagram: conta todo o tempo no app. Responder o grupo da faculdade gasta o limite igual a rolar Reels. Quando acaba, aparece um aviso que dá para fechar.
    • Limites de Apps do Tempo de Uso: esse bloqueia de verdade, mas bloqueia o Instagram todo, mensagens incluídas.

    Com o que a API de Screen Time trabalha

    Apps de terceiros acessam o Tempo de Uso por três frameworks: FamilyControls, ManagedSettings e DeviceActivity. Tudo gira em torno de três tipos de token:

    • ApplicationToken: um app inteiro
    • ActivityCategoryToken: uma categoria inteira, como Redes Sociais
    • WebDomainToken: um domínio inteiro

    O usuário escolhe no FamilyActivityPicker e o seu app recebe só tokens opacos. Ele nem fica sabendo quais apps foram escolhidos. Com esses tokens você aplica o bloqueio (shield) pelo ManagedSettings e agenda ou reage a limites de uso pelo DeviceActivity.

    Repare no que falta: não há token para "a aba de Reels dentro do Instagram". Não existe API para olhar dentro de outro app, ler o que está na tela ou bloquear um pedaço da interface dele. É de propósito. É o mesmo sandbox que impede um app qualquer de ler as suas mensagens.

    Na web acontece a mesma coisa. O ManagedSettings bloqueia sites por domínio. Dá para bloquear instagram.com, mas não instagram.com/reels mantendo instagram.com/direct.

    O que dá para construir

    Como o app oficial não pode ser alterado, o caminho que funciona é mostrar a rede social num lugar que você controla:

    1. Abrir o site num WKWebView do seu app e esconder as partes indesejadas (aba de Reels, Explorar, posts sugeridos) com CSS e um pouco de JavaScript. As mensagens continuam funcionando porque fazem parte do mesmo site.
    2. Usar o Screen Time para bloquear o app oficial, para que o hábito de tocar no ícone do Instagram não leve de volta ao app completo. O shield pode mostrar um botão. Na ShieldActionExtension não dá para abrir outro app direto, mas dá para mandar uma notificação que abre o seu.

    Os custos dessa abordagem:

    • Você depende do site. O que a versão web não tem (postar Stories, mensagens de voz, chamadas) não fica disponível.
    • Enquanto o app oficial está bloqueado, as notificações dele não chegam.
    • Os sites mudam o HTML e os seletores quebram. É preciso conferir com frequência.

    Onde eu uso isso

    Eu desenvolvo sozinho o minulo, um app de iPhone que funciona desse jeito. Esconder Reels e Shorts é grátis, e as DMs continuam. Os limites: ele não muda os apps oficiais (os Reels somem só dentro do minulo), as notificações do app oficial não chegam enquanto ele está bloqueado, o bloqueio grátis dura até 2 horas por vez e não há versão para Android.

    Escrevi antes aqui no DIO sobre os tokens do FamilyControls e a privacidade, que é a outra metade desse assunto.

    Share
    Recommended for you
    Neo4j - Certification
    DXC - IA do Zero ao Primeiro Agente
    Reclame AQUI - Dados e IA na Prática
    Comments (0)