Eu gosto de música metal de diferentes direções. Para rastrear novos produtos, criei um analisador que procura álbuns novos e os coloca no banco de dados. Durante a existência do aplicativo, quase não toquei no analisador, embora esteja longe do ideal, mas o front-end foi refeito várias vezes.

Sob o gato, há uma história sobre como eu copiei o aplicativo do react-native para o Svelte e o publiquei no Google Play.
Criação de aplicativo
A primeira versão do Metalz foi escrita em react e mobx-state-tree . Então, eu queria colocar o aplicativo no Google Play e refazer tudo no react-native usando o modelo de exposição . Quando o Google, sob risco de exclusão, exigiu uma versão de 64 bits, reescrevi tudo no Svelte . Para comparação, o build no react pesava ~ 300kb, o build no Svelte ~ 90kb. Não realizei nenhuma otimização de montagem, apenas modelos padrão.
Anúncio Anúncio
No aplicativo nativo de reação, usei anúncios ad-mob, mas ele não suporta a plataforma da web. Decidi conectar o AdSence, mas não passei na moderação. A recusa indicou que não havia conteúdo no meu site e recomendações foram dadas para escrever artigos de qualidade. E como eu não tenho artigos, o recurso também falhou. Eu tive que mudar o provedor de publicidade. A escolha recaiu na rede de publicidade Yandex. Criei o componente Svelte, no módulo do qual o contador de blocos de anúncios é retirado. É um para todas as instâncias do componente, portanto, você pode usar esta opção em fitas com rolagem infinita.
Ad.svelte<script context="module"> let id = 1; </script> <script> import { onMount } from "svelte"; const internalId = id; onMount(() => { id += 1; (function(w, d, n, s, t) { w[n] = w[n] || []; w[n].push(function() { Ya.Context.AdvManager.render({ blockId: "RA--1", renderTo: `yandex_rtb_R-A--${internalId}`, async: true }); }); t = d.getElementsByTagName("script")[0]; s = d.createElement("script"); s.type = "text/javascript"; s.src = "//an.yandex.ru/system/context.js"; s.async = true; t.parentNode.insertBefore(s, t); })(window, window.document, "yandexContextAsyncCallbacks"); }); </script> <div id={`yandex_rtb_R-A--${internalId}`} />
Adicionando funcionalidade do PWA
Depois que a inscrição foi escrita, eu tive uma pergunta sobre a montagem. O modelo svelte não pode adicionar um hash a um pacote. Eu não montei o colecionador, mas imediatamente peguei o Sapper . Fora da caixa, obtive um conjunto de pacotes com um hash, SSR, PWA e roteamento. Você pode ler mais na documentação .
Build apk
A criação do aplicativo acabou sendo bastante simples. Eu usei esta instrução .
Não se esqueça de substituir os ícones pelos seus, isso não é mencionado no tutorial.
O tamanho do apk com o PWA dentro ficou ~ 1.3mb. O pacote nativo de reação pesava ~ 16,4mb. Não realizei nenhuma otimização de montagem.
Publicar no Google Play
Depois de enviar o pedido de verificação, recebi uma negação de publicação por violação das condições.
Status do aplicativo MetalZ - Novas versões da música metal (com.az67128.metalz): suspenso no Google Play devido a uma violação da política
Durante a análise, descobrimos que seu aplicativo viola a política de visualizações da web e spam de afiliados . Não permitimos aplicativos cujo objetivo principal seja direcionar o tráfego afiliado a um site ou fornecer uma visualização da web sem a permissão do proprietário ou administrador do site.
Em seguida, interpus um recurso, onde indiquei que o procedimento de confirmação da TWA havia sido realizado, anexei a tela Gerador de lista de declarações e testador e um link para o arquivo assetlinks.json.
O aplicativo foi desbloqueado após alguns dias. Ao fazer isso, recebi conselhos do suporte:
No futuro, se você tiver prova de permissão para usar a propriedade intelectual de terceiros, poderá enviá-la à nossa equipe com antecedência usando este formulário. O link também pode ser encontrado na sua página de listagem da loja na seção Descrição completa.
Portanto, se você planeja publicar o PWA e deseja evitar problemas, envie uma prova de propriedade do domínio com antecedência.
Se você planeja anunciar em seu aplicativo, pode ser negada a publicação na ausência de uma política de uso. O gerador de políticas de privacidade de aplicativos me ajudou.
Conclusão
A publicação de um aplicativo PWA no Google Play foi mais fácil do que eu esperava. Dos profissionais, obtive:
- Aplicação leve;
- Uma base de código;
- Atualizações sem o Google Play.
O código fonte do aplicativo Svelte pode ser visualizado em gitlab'e