Política de Privacidade — No Panic
Data de vigência: A ser definida antes do envio às lojas
Última atualização: 2026-06-27
Editor: No Panic Labs (nome de trabalho temporário até a finalização da entidade legal), Ucrânia.
Contato de suporte: denysdubov88@gmail.com (também o único canal para solicitações de privacidade / LGPD / GDPR).
URL canônica: https://denid88.github.io/nopanic-app/privacy-policy.pt-br.html
Esta Política de Privacidade explica como a No Panic Labs ("nós", "nosso") lida com informações em conexão com o aplicativo móvel No Panic (o "App"). Ao usar o App você reconhece que leu esta Política.
Projetamos o No Panic para ser respeitoso com a privacidade por padrão:
- Sem cadastro, sem inscrição, sem login. O App é totalmente anônimo.
- Sem publicidade e sem SDK de relatório de falhas. O App não lê seu ID de publicidade (IDFA / GAID) diretamente. No iOS, se — e somente se — você optar pela análise, o App apresenta o aviso App Tracking Transparency (ATT) da Apple para que o Firebase Analytics e o Facebook App Events possam incluir o IDFA em sua medição; recusar o aviso ATT é totalmente respeitado e o App continua funcionando da mesma forma.
- A análise é estritamente opcional. O App usa Firebase Analytics e Facebook App Events para entender o uso agregado, mas a coleta está desativada por padrão e só liga depois que você aceita explicitamente — durante o onboarding ou mais tarde em Ajustes → Privacidade. Você pode desativar novamente a qualquer momento e ambos os SDKs são instruídos a parar de coletar imediatamente.
- Entradas do diário e favoritos permanecem no seu dispositivo. Nunca são enviados a nós.
- Catálogo de Médicos opcional. A seção de Exercícios inclui um catálogo opcional de especialistas que você pode navegar anonimamente. Se você optar por listar a si mesmo como especialista, as informações que digitar no formulário de envio são enviadas ao nosso backend Supabase e, após aprovação manual, exibidas publicamente no App. Navegar pelo catálogo não exige conta nem envia qualquer informação pessoal sobre você.
- Os serviços externos com os quais o App conversa são: o provedor de assinatura (RevenueCat + Apple / Google) quando você interage com o paywall, Google Fonts ao carregar a tipografia, o backend Supabase que alimenta o Catálogo de Médicos opcional, e — apenas se você consentiu — Firebase Analytics e Facebook App Events.
Leia abaixo para os detalhes.
1. Quem é o controlador
O controlador de dados é a No Panic Labs, estabelecida na Ucrânia. Contato: denysdubov88@gmail.com. Não nomeamos um Encarregado de Proteção de Dados formal — todas as solicitações de privacidade vão para o mesmo e-mail.
2. O que o App armazena no seu dispositivo
O App mantém as seguintes informações somente localmente no seu dispositivo. Não recebemos nem lemos esses dados.
| Armazenamento | O que contém | Por quê |
|---|---|---|
SharedPreferences (iOS NSUserDefaults / Android SharedPreferences) — não criptografado |
Flag onboarding_completed |
Pular onboarding após o primeiro uso. |
SharedPreferences |
pro_entitlement_cache — instantâneo JSON do seu direito Pro mais recente (flag ativo, data de expiração, flag de renovação, ID de produto, flag de teste) |
Mostrar o estado de bloqueio correto na inicialização a frio, inclusive offline. |
SharedPreferences |
affirmation_favorites — IDs das afirmações que você favoritou |
Permitir revisitar seus favoritos. |
SharedPreferences |
affirmation_of_day_id + affirmation_of_day_date |
Mostrar uma "afirmação do dia" estável. |
SharedPreferences |
analytics_consent — booleano; false por padrão, definido como true apenas após seu consentimento explícito |
Controla a coleta do Firebase Analytics (ver §3.4). |
Banco SQLite local nopanic_journal.db, tabela journal_entries |
Texto do diário, emoji de humor opcional, timestamps de criação/atualização, ID local autoincrementada | Alimenta a função Diário. |
Banco SQLite local nopanic_medication.db |
Nomes de medicamentos, dosagens, agendamentos e histórico de doses que você insere no Rastreador de Medicação | Alimenta a função Rastreador de Medicação. Armazenado apenas no seu dispositivo; nunca transmitido aos nossos servidores, serviços de terceiros ou provedores de análise. |
| Cache de áudio gerenciado pelo SO | Estado de reprodução em cache para arquivos de áudio empacotados | Reprodução fluida dos exercícios. |
| Cache local do Firebase Analytics (somente se o consentimento de análise for concedido) | Um Firebase Instance ID pseudônimo com escopo de app e uma fila de eventos aguardando upload | Buffer de análise entre uploads de rede. Limpo quando você revoga o consentimento ou desinstala. |
Tudo acima é removido quando você desinstala o App ou usa a ação "Limpar dados" / "Descarregar app" do seu sistema operacional.
O App não coleta nem armazena:
- seu nome, endereço de e-mail, telefone ou localização precisa — exceto as informações que você voluntariamente digita no formulário opcional de envio ao Catálogo de Médicos (por exemplo, seu nome, telefone, uma foto opcional e uma imagem de certificado de qualificação obrigatória), que são enviadas ao nosso backend Supabase para que seu cadastro possa ser exibido publicamente (ver §3.6). Esta exceção aplica-se somente se você optar por se cadastrar como especialista; simplesmente navegar pelo catálogo não envia nada sobre você;
- ID de publicidade (IDFA / GAID) — o App não lê o IDFA ou GAID por si só. No iOS, ao tocar "Concordar" na tela de Consentimento de Análise, o App apresenta o aviso App Tracking Transparency (ATT) da Apple para que o Firebase Analytics possa acessar o IDFA para fins de medição; se você recusar o aviso ATT, ou recusar a análise por completo, o IDFA não é compartilhado com o Firebase. No Android, o App não solicita nem lê o Google Advertising ID (GAID);
- contatos, calendários ou entrada de microfone. As fotos (e, se você optar, a câmera) são acessadas apenas se você anexar uma foto de perfil opcional ou a imagem de certificado obrigatória a um envio do Catálogo de Médicos (ver §3.6 e §4); fora isso, o App nunca lê sua biblioteca de fotos nem usa a câmera;
- histórico de navegação ou qualquer uso fora do App;
- tokens push (o App não tem notificações push).
Dados de medicação — Nomes, dosagens, agendamentos e histórico de doses que você insere no Rastreador de Medicação são armazenados apenas no seu dispositivo usando o banco local (SQLite). Nunca são transmitidos aos nossos servidores, serviços de terceiros ou provedores de análise. Contagens de eventos anonimizadas (p. ex., que uma dose foi registrada) podem ser enviadas se você optou pela análise, mas nunca o nome do medicamento nem qualquer detalhe identificador.
3. Terceiros que podem processar dados sobre você
Usar o App aciona um conjunto mínimo e específico de interações com terceiros. Listamos exaustivamente.
3.1 Apple (App Store) e Google (Google Play)
- O que processam: suas transações de compra e assinatura, recibos de transação, sua conta de loja (Apple ID / conta Google) e qualquer telemetria que a plataforma do seu dispositivo colete no nível do SO.
- Por quê: cobrança, gestão de assinatura, reembolsos.
- Onde: regido pelas próprias políticas de privacidade da Apple e do Google.
- Nossa visibilidade: podemos ver resultados anônimos de compras via RevenueCat (ver abaixo). Não vemos seu nome, e-mail ou detalhes de pagamento.
3.2 RevenueCat
- O que processam: um RevenueCat App User ID pseudônimo que o SDK gera no seu dispositivo, seus eventos de compra, status de assinatura, plataforma e país, e a chave de API RevenueCat em uso. Veja a política de privacidade da RevenueCat para o panorama completo.
- Por quê: usamos RevenueCat para configurar produtos de assinatura, verificar se você atualmente tem o direito
proe lidar com os fluxos de compra / restauração, sem construir nosso próprio backend de validação de recibos. - Quando o App contata o RevenueCat: ao iniciar o app (para buscar o direito atual e armazená-lo em cache), ao abrir o paywall (para carregar ofertas de produtos) e quando você toca em Assinar ou Restaurar.
- Onde: servidores RevenueCat. A infraestrutura da RevenueCat fica principalmente nos Estados Unidos; as transferências são cobertas pelos termos padrão de proteção de dados.
3.3 Google Fonts (busca de fonte em tempo de execução)
- O que processam: uma requisição HTTP padrão para o CDN de fontes do Google para a tipografia "Quicksand", incluindo seu endereço IP e metadados básicos da requisição.
- Por quê: o App usa o pacote
google_fonts, que busca o arquivo da fonte no primeiro uso. Uma vez obtido, é armazenado em cache localmente pelo pacote. - Nota: se você desabilitar isso, alguns textos voltam para fontes do sistema. Podemos enviar a fonte como recurso empacotado em uma versão futura para remover essa chamada externa.
3.4 Firebase Analytics (somente com consentimento)
- O que é: o SDK Firebase Analytics do Google (
firebase_core+firebase_analytics), integrado para nos ajudar a entender o uso agregado — quais funções as pessoas usam, onde os fluxos são abandonados, quais exercícios mais ajudam. Nenhum conteúdo bruto (texto do diário, favoritos, mensagens) jamais sai do dispositivo. - Modelo de consentimento: desativado por padrão. O SDK é inicializado com a coleta desligada. Mostramos uma tela de Consentimento de Análise durante o onboarding e o mesmo interruptor em Ajustes → Privacidade. Só após você tocar "Concordar" / ativar o interruptor chamamos
setAnalyticsCollectionEnabled(true). Revogar o consentimento chamasetAnalyticsCollectionEnabled(false)imediatamente e suprime todas as chamadas de evento e propriedade de usuário no processo. - App Tracking Transparency (somente iOS): quando você toca "Concordar" na tela de Consentimento de Análise no iOS, o App chama a API ATT da Apple (via pacote
app_tracking_transparency) para mostrar o aviso do sistema. Sua escolha rege se o Firebase Analytics pode associar o identificador de publicidade (IDFA) aos eventos de análise. Se você tocar "Pedir ao app para não rastrear" (ou tinha o rastreamento desativado globalmente), o IDFA nunca é compartilhado com o Firebase — a análise continua funcionando usando apenas o Firebase Instance ID pseudônimo. Nunca lemos o IDFA nós mesmos. Para nossa própria medição de taxas de opt-in, anexamos o resultado (authorized/denied/restricted/not_determined/not_supported) como parâmetroatt_statusno eventoanalytics_consent_set. Você pode alterar sua escolha de rastreamento a qualquer momento em Ajustes do iOS → Privacidade e Segurança → Rastreamento. - O que é coletado (somente enquanto habilitado):
- Visualizações de tela (via
FirebaseAnalyticsObserverdo Firebase conectado ao GoRouter). - Eventos de produto que registramos explicitamente — p. ex.
emergency_tapped,panic_flow_started/panic_flow_tip_viewed/panic_flow_completed/panic_flow_exited,exercise_opened/exercise_session_started/exercise_session_completed,games_opened/game_started/game_completed/game_exited,journal_entry_saved(com contagem de palavras em faixas como1-25, nunca a contagem bruta ou o texto),affirmation_favorited,paywall_shown/paywall_subscribe_tapped/purchase/restore_completed,settings_opened,legal_opened,support_opened,language_changed,onboarding_*,analytics_consent_shown/analytics_consent_set. A lista completa está emlib/core/services/analytics_event.dart. - Parâmetros de evento limitados a metadados não identificadores: IDs de cenário, índices de dica, IDs de preset, nomes de exercício, nomes de jogo (p. ex.
snake,tetris,bubble_pop,mandala,memory_pairs), pontuações numéricas de jogo (p. ex. tamanho da cobra, linhas eliminadas no tetris, % de precisão no bubble-pop, jogadas em memory-pairs), IDs de produto, moeda, valor do plano, duração em segundos, percentual de progresso, faixa de contagem de palavras, origem de abertura de tela, código de idioma de/para, resultado ATT (att_status:authorized/denied/restricted/not_determined/not_supported). - Propriedades de usuário:
has_pro(true / false — se você atualmente tem o direito Pro),app_language(seu código de idioma da UI),onboarding_completed(true / false). - Identificadores coletados automaticamente pelo Firebase: um Firebase Instance ID pseudônimo (escopo do app, reiniciado ao desinstalar ou revogar consentimento), endereço IP (usado para geo aproximada e depois descartado conforme a política de retenção do Google), modelo do dispositivo, versão do SO, versão do app.
- Visualizações de tela (via
- O que nunca é enviado: texto do diário, títulos do diário, texto de afirmação, conteúdo de dicas, notas, áudio reproduzido, listas de favoritos, localização precisa, ID de publicidade, e-mail, telefone, ou qualquer identificador atrelado ao seu nome.
- Onde: servidores Firebase do Google (Estados Unidos e outras regiões do Google), regidos pela política de privacidade do Google e termos de processamento de dados do Firebase.
- Retenção: configuramos o projeto Firebase para usar a janela padrão de retenção de dados de usuário do Google (atualmente 14 meses para dados em nível de usuário); os dados agregados de relatórios são retidos indefinidamente.
- Como desativar: Ajustes → Privacidade → interruptor Análise. Isso muda
analytics_consentparafalse, chamasetAnalyticsCollectionEnabled(false)e o SDK para de coletar neste dispositivo.
3.5 Facebook App Events (somente com consentimento)
- O que é: o SDK Facebook App Events da Meta Platforms (
facebook_app_events), usado para medição agregada do uso de funcionalidades e campanhas de aquisição. Nenhum conteúdo bruto (texto do diário, favoritos, mensagens) jamais sai do dispositivo. - Modelo de consentimento: desativado por padrão. O SDK é inicializado com o log automático de eventos desativado e a coleta do ID de publicidade desativada (
FacebookAutoLogAppEventsEnabled = false,FacebookAdvertiserIDCollectionEnabled = falseemInfo.pliste as flagsmeta-datacorrespondentes emAndroidManifest.xml). O mesmo interruptor de consentimento no app que controla o Firebase Analytics (tela de Consentimento de Análise durante o onboarding; depois Ajustes → Privacidade) também controla o Facebook App Events. Só após você tocar "Concordar" / ativar o interruptor chamamossetAutoLogAppEventsEnabled(true). Revogar o consentimento chamasetAutoLogAppEventsEnabled(false)e suprime todas as chamadas de evento no processo. - App Tracking Transparency (somente iOS): mesmo com o consentimento no app concedido, o Facebook App Events permanece silencioso a menos que o resultado ATT da Apple seja
authorized. Se você tocar "Pedir ao app para não rastrear", ou tinha o rastreamento desativado globalmente, o App chamasetAdvertiserTracking(enabled: false)no SDK, mantém a flag de log automático desativada e nunca envia eventos para a Meta. No Android não há aviso ATT; o SDK é habilitado quando o consentimento no app é concedido. - O que é enviado (somente enquanto habilitado): os mesmos nomes de evento e parâmetros não identificadores descritos em §3.4 espelhados para a Meta — p. ex.
emergency_tapped,panic_flow_started/panic_flow_completed,exercise_session_started/exercise_session_completed,paywall_subscribe_tapped,purchase,restore_completed,language_changed,analytics_consent_set. As compras incluem ainda o ID do produto, o valor e a moeda no esquema de compra padrão da Meta. - O que nunca é enviado: texto do diário, títulos do diário, texto de afirmação, conteúdo de dicas, notas, áudio reproduzido, listas de favoritos, localização precisa, e-mail, telefone, ou qualquer identificador atrelado ao seu nome. Nunca chamamos
setUserDataousetUserIDno SDK, portanto a Meta nunca recebe de nós e-mail, telefone ou ID de cliente em hash. - Onde: servidores da Meta Platforms, Inc. (principalmente Estados Unidos e Irlanda), regidos pela política de privacidade da Meta e termos de processamento de dados.
- Retenção: regida pela política padrão de retenção de eventos de app da Meta (ver a política de privacidade da Meta). Revogar o consentimento ou desinstalar interrompe a coleta adicional.
- Como desativar: Ajustes → Privacidade → interruptor Análise. Isso muda
analytics_consentparafalse, chamasetAutoLogAppEventsEnabled(false)no SDK do Facebook e o SDK para de enviar eventos neste dispositivo.
3.6 Supabase (backend do Catálogo de Médicos)
- O que é: o Supabase é um banco de dados Postgres hospedado e um serviço de armazenamento de arquivos (Storage) operado pela Supabase, Inc. em nome do Editor. Ele alimenta o Catálogo de Médicos ("Запис до лікаря") opcional na seção de Exercícios — uma lista pública de especialistas. Este é o primeiro e único backend operado pelo Editor com o qual o App conversa. Nenhum dos seus dados no dispositivo (entradas do diário, medicamentos, hábitos, favoritos, análise) é jamais enviado ao Supabase — somente os dados do catálogo descritos abaixo.
- Quando você navega pelo catálogo (anônimo): abrir o Catálogo de Médicos busca no Supabase a lista de especialistas aprovados, filtrada pelo idioma do App. A requisição carrega seu endereço IP e a chave de API pública (anon) do App, mas nenhuma conta e nenhuma informação pessoal sobre você. A navegação permanece anônima.
- Quando você se cadastra como especialista (totalmente opcional, iniciado por você): usando o botão "?" → formulário "Cadastre-se como médico", as informações que você digita são enviadas ao Supabase e armazenadas para serem exibidas publicamente no catálogo após aprovação manual. Os campos são: nome completo, especialização(ões), anos de experiência, uma descrição de serviços, país e cidade (ou um indicador "online"), um número de telefone de contato opcional, o preço por consulta e sua moeda, a duração de uma consulta (em minutos), um horário de atendimento opcional, identificadores opcionais de Viber / Telegram / WhatsApp / Instagram / Threads / TikTok uma foto de perfil opcional enviada a um bucket do Supabase Storage (
doctor-photos) e uma imagem de certificado de qualificação obrigatória enviada a um bucket separado do Supabase Storage (doctor-certificates). Como o propósito do catálogo é uma listagem pública, essas informações tornam-se publicamente visíveis após a aprovação — não envie nada que você não queira exibido publicamente. - Aprovação e remoção: os envios são armazenados como não aprovados (
approved = false) e só são exibidos depois que o Editor os aprova manualmente. A escrita no catálogo exige um segredo de aplicação compartilhado, verificado no servidor; de qualquer forma, todo envio é armazenado como não aprovado até ser revisado. Você pode solicitar correção ou remoção a qualquer momento enviando e-mail para denysdubov88@gmail.com — o Editor então exclui o registro e qualquer foto ou certificado enviado. - Onde: a infraestrutura de nuvem do Supabase (a região selecionada para o projeto). Quaisquer transferências internacionais são cobertas pelo acordo de processamento de dados (DPA) e pelas Cláusulas Contratuais Padrão do Supabase.
3.7 Serviços que não rodam
Para transparência, o App não inclui:
- Amplitude, Mixpanel, PostHog ou qualquer SDK de análise além do Firebase Analytics descrito em §3.4 e do Facebook App Events descrito em §3.5;
- Sentry, Crashlytics, Bugsnag ou qualquer outro SDK de relatório de falhas;
- SDKs de publicidade;
- SDKs de login social (o SDK Facebook App Events descrito em §3.5 não inclui Facebook Login nem nenhuma funcionalidade de social graph — somente o subconjunto de eventos de app / medição);
- SDK do TikTok, AppsFlyer, Adjust, Branch ou outros SDKs de atribuição;
- serviços de notificação push (mensageria FCM/APNs não é integrada, mesmo que Firebase Core esteja presente).
4. Permissões que o App solicita
O App não solicita microfone, localização, contatos, calendário ou Bluetooth. No iOS, o App solicita acesso à biblioteca de fotos (NSPhotoLibraryUsageDescription) somente quando você opta por anexar uma foto de perfil opcional ou o certificado de qualificação obrigatório ao se cadastrar no Catálogo de Médicos (ver §3.6), e solicita acesso à câmera (NSCameraUsageDescription) somente quando você opta por fotografar seu certificado durante esse mesmo envio — nunca em outro caso; a foto de perfil é opcional, você pode enviar o cadastro sem ela, e o App nunca lê sua biblioteca de fotos nem usa a câmera em qualquer outro momento. O App também solicita a permissão App Tracking Transparency (ATT) da Apple — somente quando você afirmativamente opta pela análise na tela de Consentimento de Análise, nunca na primeira inicialização e nunca se você recusar a análise. O propósito é descrito em §3.4 e §3.5.
O App reproduz áudio empacotado usando APIs padrão do SO. Para habilitar reprodução em segundo plano para o exercício Sono — para que a música continue tocando quando você bloquear a tela e os controles de tela de bloqueio / Central de Controle / Notificação permaneçam disponíveis — o App declara as seguintes capacidades de SO sem aviso: no Android, as permissões WAKE_LOCK, FOREGROUND_SERVICE e FOREGROUND_SERVICE_MEDIA_PLAYBACK e um serviço em primeiro plano de reprodução de mídia (fornecido pelo pacote audio_service); no iOS, o valor audio no array UIBackgroundModes do Info.plist. Nenhuma dessas capacidades exibe um aviso interativo de permissão ou concede ao App acesso a quaisquer dados seus — apenas permitem que o próprio motor de áudio do App continue tocando enquanto o App está em segundo plano ou a tela está apagada.
5. Crianças
O App não é direcionado a crianças menores de 13 anos e não coleta conscientemente dados pessoais delas. Se acreditar que uma criança abaixo da idade mínima usou o App, contate-nos para que possamos ajudar.
6. Seus direitos legais (LGPD, GDPR, UA, UK GDPR, CCPA)
Como o App não associa nenhum dado à sua identidade, muitos direitos tradicionais (acesso, exportação, eliminação de "seus dados pessoais") não se aplicam no sentido habitual — não há registro do lado do servidor vinculado a você. Você tem, ainda assim, direito a:
- Acesso / portabilidade: exporte suas entradas do Diário manualmente copiando-as do App. Uma função de exportação integrada ainda não está disponível; contate-nos se precisar de ajuda.
- Eliminação: exclua entradas individuais do Diário dentro do App; exclua todos os dados do App desinstalando, usando a ação "Limpar dados" / "Descarregar app" / "Redefinir" do seu SO, ou redefinindo o dispositivo. A única exceção a "não há registro do lado do servidor vinculado a você" é um cadastro no Catálogo de Médicos que você tenha enviado voluntariamente (ver §3.6); você pode removê-lo a qualquer momento enviando e-mail para denysdubov88@gmail.com (ver também o Apêndice B).
- Dados de assinatura: para registros de compra e assinatura mantidos pela Apple, Google ou RevenueCat, exerça seus direitos diretamente com esses provedores — eles podem identificá-lo pela conta da loja. Auxiliaremos se você nos contatar.
- Objeção / restrição / reclamação: você pode se opor ao tratamento ou restringi-lo. No Brasil, sob a LGPD, você pode contatar a Autoridade Nacional de Proteção de Dados (ANPD). Se estiver na UE/EEE, Reino Unido ou Suíça, também pode registrar reclamação junto à sua autoridade nacional de proteção de dados. Residentes da Califórnia podem exercer direitos CCPA; não "vendemos" nem "compartilhamos" informações pessoais para publicidade comportamental cross-contexto.
Para exercer qualquer direito, envie e-mail para denysdubov88@gmail.com.
7. Base legal (UE/EEE, Reino Unido, Suíça, Brasil)
Onde o GDPR, LGPD ou lei equivalente se aplica, as bases legais para o tratamento mínimo descrito acima são:
- Contrato (Art. 6(1)(b) GDPR / Art. 7, V LGPD) — fornecer o App e, quando aplicável, processar sua assinatura.
- Interesse legítimo (Art. 6(1)(f) GDPR / Art. 7, IX LGPD) — cachear o estado do direito para o App funcionar offline, buscar a fonte usada pela UI e manter a integridade do paywall.
- Consentimento (Art. 6(1)(a) GDPR / Art. 7, I LGPD) — a única base legal para Firebase Analytics e Facebook App Events. A coleta por ambos os SDKs fica desligada por padrão e só é ativada após seu consentimento afirmativo na tela de Consentimento de Análise (ou em Ajustes → Privacidade). Você pode retirar o consentimento a qualquer momento com o mesmo interruptor, sem efeito sobre sua capacidade de usar o App. A retirada não afeta a licitude do tratamento realizado antes da retirada.
8. Transferências internacionais
O próprio App armazena dados no seu dispositivo no seu país de residência. Quando você interage com o paywall, RevenueCat e App Store / Google Play podem transferir dados internacionalmente (principalmente para os Estados Unidos) sob suas próprias salvaguardas (Cláusulas Contratuais Padrão e mecanismos equivalentes). Se você habilitou a análise, o Firebase Analytics também transfere dados de eventos para a infraestrutura do Google (principalmente para os Estados Unidos) sob as Cláusulas Contratuais Padrão do Google e mecanismos equivalentes, e o Facebook App Events transfere dados de eventos para a infraestrutura da Meta Platforms (principalmente Estados Unidos e Irlanda) sob as Cláusulas Contratuais Padrão da Meta e mecanismos equivalentes. Quando você navega ou se cadastra no Catálogo de Médicos, o Supabase processa a requisição em sua infraestrutura de nuvem (a região selecionada para o projeto) e pode transferir dados internacionalmente sob o acordo de processamento de dados e as Cláusulas Contratuais Padrão do Supabase.
9. Retenção
- Dados no dispositivo: mantidos até você os excluir ou desinstalar o App.
- RevenueCat: mantidos conforme a política de retenção da RevenueCat para dados de assinatura.
- Apple / Google: mantidos conforme suas respectivas políticas.
- Firebase Analytics (somente se você optou): dados em nível de usuário mantidos pela janela padrão de 14 meses configurada em nosso projeto Firebase; dados agregados de relatório mantidos indefinidamente. Revogar o consentimento ou desinstalar para a coleta adicional; eventos já enviados podem ser excluídos sob solicitação (ver §6).
- Facebook App Events (somente se você optou): mantidos conforme a política padrão de retenção de eventos de app da Meta. Revogar o consentimento ou desinstalar interrompe a coleta adicional; os dados existentes podem ser excluídos sob solicitação (ver §6).
- Envios ao Catálogo de Médicos (somente se você se cadastrou como especialista): mantidos no backend Supabase até que você solicite a remoção ou o Editor remova o cadastro.
- Correspondência de suporte: se você nos escrever para denysdubov88@gmail.com, mantemos o tópico de e-mail por até 24 meses e então o excluímos.
10. Segurança
Mantemos o processamento no servidor ao mínimo e dependemos do sandboxing da Apple e do Google para proteger dados armazenados no seu dispositivo. As entradas do Diário não são criptografadas pelo App além do que o sistema operacional fornece em repouso; se seu dispositivo suporta criptografia de disco completo e você habilitou um código de acesso, seus dados se beneficiam disso. Recomendamos manter seu SO atualizado e usar código de acesso ou bloqueio biométrico.
11. Mudanças nesta Política
Podemos atualizar esta Política conforme o App evolui. Mudanças serão refletidas na data "Última atualização" acima e, se materiais, destacadas no App ou na ficha da loja. O uso continuado após a vigência da Política atualizada constitui reconhecimento.
12. Contato
Perguntas, solicitações ou queixas sobre esta Política: denysdubov88@gmail.com.
Apêndice A — Inventário técnico (para completude)
Esta seção espelha o que um desenvolvedor ou auditor veria no código, para que nada no App fique não divulgado.
- Plataforma: Flutter (Dart
^3.11.3), distribuído globalmente na Apple App Store e Google Play; nome do pacote / identificador de bundleapp.nopanic. - Pacotes de terceiros usados que podem tocar rede ou armazenamento do SO:
purchases_flutter(RevenueCat),firebase_core+firebase_analytics(Firebase Analytics — condicionado ao consentimento opt-in),facebook_app_events(Meta Facebook App Events — condicionado ao consentimento opt-in e, no iOS, ao ATT estarauthorized, como descrito em §3.5),app_tracking_transparency(somente iOS — mostra o aviso ATT do sistema quando a análise é optada, como descrito em §3.4 e §3.5),google_fonts(busca de fonte em tempo de execução),supabase_flutter(cliente Supabase — chamadas de rede ao backend do Catálogo de Médicos, como descrito em §3.6),image_picker(seleção opcional de foto para um envio do Catálogo de Médicos; no iOS usa a galeria do sistema via PHPicker e, quando você fotografa seu certificado, a câmera),flutter_image_compress(compressão no lado do cliente da foto enviada e da imagem do certificado antes do upload),country_state_city(lista offline empacotada de países/cidades para o filtro do Catálogo de Médicos — sem chamada de rede),just_audio+audio_service+audio_session(reprodução local de áudio, incluindo reprodução em segundo plano e controles de tela de bloqueio / Central de Controle / Notificação para o exercício Sono via umAudioHandlerpersonalizado; outros exercícios usam apenasjust_audiosimples),shared_preferences(armazenamento chave-valor local, incluindo a flaganalytics_consent),sqflite(SQLite local),url_launcher(abre URLs externas no navegador do sistema quando você toca em Termos, Privacidade ou Suporte),package_info_plus(lê a versão/build local do app). - URLs externas abertas (somente quando você as toca): a URL de Termos, a URL de Privacidade e o link
mailto:do e-mail de Suporte. - Chaves de API: uma chave pública do SDK RevenueCat é compilada no build via
--dart-define. A configuração do Firebase (GoogleService-Info.plist/google-services.json) é empacotada em tempo de build. Essas chaves identificam o app, não você. - Um backend Supabase (um banco de dados Postgres hospedado mais o Storage de arquivos) operado pela Supabase, Inc. em nome do Editor agora alimenta o Catálogo de Médicos opcional: ele serve a lista de especialistas aprovados (leituras), armazena os perfis de especialista enviados pelos usuários via uma RPC
submit_doctorprotegida por segredo (sempre armazenados comapproved = falseaté a aprovação manual) armazena fotos de perfil opcionais no bucket de Storagedoctor-photose armazena a imagem de certificado de qualificação obrigatória no bucket de Storagedoctor-certificates. Nenhum outro backend operado pelo Editor processa dados de usuário. Os dados de análise são processados pelo Google e pela Meta em nosso nome apenas após consentimento explícito.
Apêndice B — Resumo de eliminação de dados (para revisão de loja)
Se um revisor de loja perguntar "como um usuário exclui seus dados?":
- Dentro do App: abra Diário, exclua entradas individualmente. No Rastreador de Medicação, exclua medicamentos e entradas do histórico de doses individualmente.
- Desinstale o App ou use a ação "Limpar dados" (Android) / "Descarregar App + Excluir" (iOS) do seu dispositivo. Isso remove todos os dados do App no dispositivo, incluindo entradas do Diário, favoritos de afirmação, flag de onboarding, cache de direito Pro, flag
analytics_consente o Firebase Instance ID. - Para parar a coleta de análise em andamento, abra Ajustes → Privacidade e desative o interruptor Análise. Para também excluir eventos de análise já enviados, envie e-mail para denysdubov88@gmail.com e iniciaremos uma solicitação de exclusão contra o projeto Firebase e o conjunto de dados de eventos de app da Meta.
- Para remover um envio que você fez ao Catálogo de Médicos, envie e-mail para denysdubov88@gmail.com com o nome enviado; o Editor exclui o registro e qualquer foto ou certificado enviado do backend Supabase.
- Para cancelar ou excluir dados de assinatura mantidos pela Apple, Google ou RevenueCat, use as ferramentas de gestão de assinatura na sua conta da App Store ou Google Play, ou envie e-mail para denysdubov88@gmail.com para assistência.