7

Pitch: Os desafios (e gambiarras nativas) para aprovar um cliente do TabNews na App Store

Publicar app na Apple é chato pra caramba. Quem já tentou sabe que as diretrizes são rígidas e a revisão é humana, se você pegar um revisor em um dia ruim, até o que está certo pode dar errado.

Eu desenvolvi o Axolote, um cliente nativo para o TabNews. Minha inspiração visual foi o finado Apollo for Reddit (aquela interface fluida com cara de app nativo do iOS). Como eu já estava cansado do meu trabalho focado em web, usei o projeto para mergulhar de cabeça no ecossistema da Apple e aprender..

Só que para colocar o app na App Store, tive que rebolar para adaptar um cliente de terceiros às regras deles. Vou direto aos 3 principais problemas que enfrentei e como resolvi.


1. Exclusão de conta (API vs. Diretrizes)

Se o seu app tem login e cadastro, a Apple exige que exista uma opção para deletar a conta de dentro do aplicativo.

O problema: olhando a API do TabNews no GitHub, não achei nenhum endpoint para exclusão de conta.

Pesquisando no Reddit, saquei que a Apple não liga muito para como você resolve o problema por baixo dos panos, desde que a opção exista para o usuário. Lembrei de um post antigo dizendo que, para deletar a conta no TabNews, era preciso mandar e-mail para o suporte.

A solução: Criei um botão que gera um e-mail pré-formatado direto para o TabNews. Passou de primeira. Uma gambiarra honesta.


2. Moderação de Conteúdo (UGC)

O TabNews é um portal onde qualquer um publica (UGC - User Generated Content). Para a Apple, isso é um sinal vermelho se não houver moderação pesada no app. Precisei criar duas coisas localmente:

  • Bloqueio de usuário: Se você bloquear alguém no app, o conteúdo sumirá da sua timeline. No site continua normal, mas no Axolote o feed fica limpo.
  • Denúncia de posts: Segui a mesma lógica do e-mail pré-pronto, mas com um detalhe: o e-mail vem para mim, não para o TabNews. Como eu assinei o contrato da App Store, eu sou o responsável pelo que o app exibe. Se alguém denunciar algo pesado, eu recebo o aviso para tomar providências.

3. Moderação remota com custo zero (CloudKit)

A Apple também exige que eu consiga apagar ou ocultar um post de forma remota caso algo viole as regras deles. Como eu não queria gastar um tostão com servidor ou banco de dados externo, fui fuçar o CloudKit (a nuvem da Apple).

O CloudKit tem três tipos de banco: privado, compartilhado e público. O pulo do gato está no banco público.

Ele permite criar tabelas onde apenas eu (o desenvolvedor) tenho permissão de escrita pelo painel da Apple, mas qualquer usuário do app tem permissão de leitura.

A solução: Criei uma tabela de "Blacklist" nesse banco público. Se um post precisar ser banido do app por violar as regras da App Store, eu jogo o ID dele lá. O Axolote faz uma checagem rápida nessa lista via iCloud quando abre e filtra o conteúdo na hora. Moderação remota, segura e com custo zero de infraestrutura.


No fim das contas, deu para colocar o app no ar usando 100% dos recursos nativos e sem dor de cabeça com backend. Fica a dica para quem estiver brigando com a App Store.


Quer testar o app?

O Axolote já está disponível na App Store! Se você usa iOS e quer experimentar uma navegação focada em performance, gestos e com uma experiência totalmente nativa no TabNews, dá uma olhada nos links do projeto:

🔗 Baixar direto na App Store

🌐 Site oficial (axolote.app.br)

Feedbacks, críticas e sugestões são mais do que bem-vindos!

Carregando publicação patrocinada...