Integração móvel de torneios e buscas
1) Arquitetura e pontos de incorporação
Navegação: lobby → guia Torneios/Buscas; acesso rápido do heder (ícone com crachá de progresso).
Os diplomas são: 'app ://event/a.id a.',' app ://mission/a.id ',' app ://liderboard/SE-O-quê? '? tab = my' - um único roteiro para in-app, canhões e widgets da Web.
Incorporar conteúdo:- Native/React Native/Flutter para liderbords, cartões de missão e temporizadores.
- WebView - apenas para informações/regras estáticas; não pode render um real-time crítico.
2) Cartão de missão: anatomia móvel
Cabeçalho ≤ 2 linhas, ícone tipo, breve descrição (o que/onde/quanto tempo).
Progress bar + número (2/3), estimativa de tempo (≈ 20-25 min), complexidade (•).
Prêmios: tokens/cosméticos mini-ícones, sem subtexto «em dinheiro».
CTA 1: «Começar/Continuar/Retirar». Secundary: «Mudar» (cooldown), «Mais informações».
Timer para deadline (cores macias, vermelho nos últimos 10%).
Estado on _ hold: "Verificando o resultado (até 3 min). Recompensa guardada".
3) Liderbords no celular (sem flicker)
Colunas: # local, jogador (avatar/moldura/marca), óculos, área de prémios, temporizador.
Sticky «Eu» + botão «para mim mesmo». Jump to rank (campo de entrada de número).
Atualizações de batch de 1 a 2 segundos, animação de movimento de 120 a 200 ms.
Paginação: scroll infinito + «para o início/para si mesmo».
Apenas as linhas diff (virtualização, windowing) são visíveis.
4) Mensagens e notificações in-app (orquestra sem spam)
Regra: Prioridade in-app de cartão de bolo email.
Janelas: Cruzamento do utilizador on-line provável com o agendamento (modelo «atividade nos próximos 90-120 min»).
Frequência: ≤ N/semana, ≤ M/dia; relógio silencioso; «silêncio inteligente» depois do mut.
Payloades: texto curto + graduação + prémios.
Exemplos: `push. payload`:json
{
"Title": "Sprint da noite, 20 minutos", "body": "Início daqui a 15 minutos Cosméticos raros na área de prémios. ", "deeplink": "app://event/ev. s5. sprint20? highlight=reward"
}
Cartão in-app: «≈20 -25 min, 3 provedores, um drop raro 10%».
5) Off-line e rede fraca
A caixa das missões/horários entre 24 e 48 horas; «Última sincronização: 14:02».
Estados off-line: «Ver regras» e «Planejar participações», sem iniciar.
Botão Repetir para erros de rede; ETAG/If-None-Match para economizar.
6) Desempenho e bateria
Virtualizar listas (300 + linhas).
Lotes/spright, limite de duração VFX (0. 6–1. 2 c), sem shaders pesados.
Os times são um único shedooler tico, não um 'setInterval' por elemento.
Atualizações de fundo: BG App Refresh/WorkManager com gota de frequência e tamanho de resposta.
Telemetry: WebSocket/SSE → compactação; backoff no fundo.
7) Segurança, honestidade e anti-abws
O servidor decide o RNG, o cliente decide apenas o visual.
Idempotidade de prémios: um evento → um valor (server-side).
Humanity-challengs em vez de capchi (micro-gestos), são ativados por risco.
Limitação de «mudar de missão» (cooldown), variabilidade de exigência (anti-farm).
As hipóteses de drop, pity, caps, regras de ligas.
8) Guardas RG no celular
«Modo silencioso», «abaixar os efeitos dos outros», lembranças de pausas.
Os sinais de fadiga reduzem a complexidade, ofereçam interrupção e proíbem formatos longos.
Opt-out rápido a partir da personalização de notificações e mini-jogos.
9) Direitos e privacidade
iOS ATT/Notificações: explicar o valor, pedir permissão após o microboarding.
Android 13 + autorizações runtime de pelúcia; canais de notificação (low/normal/high).
Coleta de dados - unidades; PII mínimo; telas de política e «Remover dados».
10) Analista e métricas
Cartões de missão: CTR, Start Rate, Complition Rate, Median TTC, Equip Rate/Duration para cosméticos.
Torneios: Join Rate, participação «para si», tempo de visibilidade das tabelas, P95 tempo antes do prémio.
Notificações: Janela Hit Rate (em sessão ativa), Join Uplift, Mute/Unsub Rate.
Economia: Emision to GGR, Prize ROY, Gini em SP.
Estabilidade: falhas de rede, duração dos renders, ANR/Crash-free.
11) A/B plano
1. Bar de progresso: numérico + visual vs apenas visual.
2. A estimativa de tempo do cartão está ativada/desligada.
3. Taxa de atualização do liderbord: 1 com vs 2 s.
4. Tempo de pouso: T-30 vs T-15 min
5. Formato de cartão: um CTA vs dois iguais.
6. «A si mesmo»: botão vs fixado.
12) Nuances de plataforma
iOS: BG App Refresh é limitado; use o canhão com 'content-available' para atualizações silenciosas (com cuidado).
Android: WorkManager/Foreground Service apenas com uma atividade aparente; os canais de notificação são obrigatórios.
React Native/Flutter:- RN: FlatList com 'getItemLayout '/' windowSize', Reanimated 3 para animações diff.
- Flutter: `ListView. builder '+' AnimatedList '/' ImplicitlyAnimatedReorderableList ', isolados para a lógica pesada.
13) Modelo de conteúdo (JSON) e licenciaturas
Missão
json
{
"id": "m. s5. play. providers. 3 "", title ":" Abra três provedores "", summary ":" Jogue em 3 provedores diferentes em 30 minutos "" "", "25": "medium" "", est _ time _ min ":", progress "": "1": ", target": 3 ", rewards": "tokens": 12 ", cosmetic _ drop": a." rarity ":" Rare ", p": 0. 1}}, "expires_at": "2025-10-28T18:00:00Z", "state": "available", "deeplink": "app://mission/m. s5. play. providers. 3? start=true"
}
Torneio
json
{
"event_id": "ev. s5. sprint20", "title": "Вечерний спринт 20 мин", "stage": "qualifier", "ends_at": "2025-10-24T21:00:00Z", "leaderboard": {"league": "Gold I", "my_rank": 128, "delta_to_next": 42}, "rewards_preview": [{"type": "cosmetic", "rarity": "Epic"}], "deeplink": "app://event/ev. s5. sprint20? tab=leaderboard"
}
Esquema URI
app://event/{id}
app://mission/{id}
app://leaderboard/{id}?tab=my app://quests/today
14) Estados, erros, esqueletos
Loading: esqueletos 3-5 linhas/tales, shimmer ≤ 1. 2 c.
Empty: texto útil + «Obter missão inicial».
Erro: mensagem simples + «Repetir»; O dinheiro off-line e a hora da última sincronização.
15) Cheque de lançamento (MVP → v1. 0)
MVP (2-4 semanas):- Graduações, cartões de missão básicos, liderboard com batch updates 2 s.
- In-app cartões de notificação, um canal de pool, um cachê de programação, a tela «Como funciona».
- Tumblers RG, anti-farm (cooldown «Mudar de missão»).
- Pessoal «para si», Jump to rank, mini-jogo aquecido (≤ 90 s) no qualificador.
- Pelouras silenciosas para atualização de fundo, reason-codes com on _ hold.
- Telemetria: janela Hit Rate, Join Uplift, Gini SP.
- Pista sazonal completa, cosméticos retro-cambistas, localização, disponibilidade (contraste, rótulos VoiceOver/TalkBack).
- Logs de auditoria, apelações, anti-biometria.
- A/B-motor (bandeiras de fici), relatórios de honestidade.
A integração móvel entre torneios e buscas funciona quando a navegação é instantânea (graduação), a UI chitabelina «de um só olhar», as atualizações são suaves e rentáveis à bateria, e a honestidade e os guardas RG estão incorporados a cada solução, desde os cartões de missão até a banda. Dê ao jogador objetivos compreensíveis, temporizadores previsíveis e VFX silencioso, mantenha a economia sob os caps e mede as janelas Hit Rate, Complition/Join Uplift e Gini em SP - então a conexão móvel se tornará um motor de envolvimento sustentável sem ruídos.