Me gusta la m煤sica metal de diferentes direcciones. Para rastrear nuevos productos, hice un analizador que busca 谩lbumes nuevos y los coloca en la base de datos. Durante la existencia de la aplicaci贸n, casi no toqu茅 el analizador, aunque est谩 lejos de ser ideal, pero el front-end se rehizo varias veces.

Under the cat es una historia sobre c贸mo copi茅 la aplicaci贸n de React Native a Svelte y la publiqu茅 en Google Play.
Creaci贸n de aplicaciones
La primera versi贸n de Metalz fue escrita en react y mobx-state-tree . Luego, quer铆a poner la aplicaci贸n en Google Play y rehacer todo en react-native usando la plantilla expo . Cuando Google, en riesgo de eliminaci贸n, exigi贸 una versi贸n de 64 bits, reescrib铆 todo en Svelte . A modo de comparaci贸n, la construcci贸n en reaccionar pesaba ~ 300kb, la construcci贸n en Svelte ~ 90kb. No realic茅 ninguna optimizaci贸n de ensamblaje, solo plantillas est谩ndar.
Anuncio Anuncio
En la aplicaci贸n react-native, utilic茅 anuncios ad-mob, pero no es compatible con la plataforma web. Decid铆 conectar AdSence, pero no pas茅 la moderaci贸n. El rechazo indic贸 que no hab铆a contenido en mi sitio y se dieron recomendaciones para escribir art铆culos de calidad. Y yo, por as铆 decirlo, no tengo art铆culos, por lo que la apelaci贸n tambi茅n fall贸. Tuve que cambiar el proveedor de publicidad. La elecci贸n recay贸 en la red de publicidad de Yandex. Hice el componente Svelte, en el m贸dulo del cual se saca el contador de bloque de anuncios. Es uno para todas las instancias del componente, por lo que puede usar esta opci贸n en cintas con desplazamiento infinito.
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}`} />
Agregar funcionalidad PWA
Despu茅s de que se escribi贸 la solicitud, tuve una pregunta sobre la asamblea. La plantilla esbelta no puede agregar un hash a un paquete. No instal茅 el colector, pero de inmediato tom茅 a Sapper . Fuera de la caja, obtuve un conjunto de paquetes con un hash, SSR, PWA y enrutamiento. Puedes leer m谩s en la documentaci贸n .
Construir apk
La creaci贸n de la aplicaci贸n result贸 ser bastante simple. Us茅 estas instrucciones .
No olvides reemplazar los 铆conos por los tuyos, esto no se menciona en el tutorial.
El tama帽o del apk con PWA adentro result贸 ~ 1.3mb. El paquete react-native pesaba ~ 16.4mb. No realic茅 ninguna optimizaci贸n de ensamblaje.
Publicar en Google Play
Despu茅s de enviar la solicitud de verificaci贸n, recib铆 una denegaci贸n de publicaci贸n por violaci贸n de las condiciones.
Estado de la aplicaci贸n MetalZ - Nuevos lanzamientos de m煤sica de metal (com.az67128.metalz): Suspendido de Google Play debido a una violaci贸n de la pol铆tica
Durante la revisi贸n, descubrimos que su aplicaci贸n infringe las pol铆ticas de Webviews y de spam de afiliados . No permitimos aplicaciones cuyo prop贸sito principal sea dirigir el tr谩fico de afiliados a un sitio web o proporcionar una vista web de un sitio web sin el permiso del propietario o administrador del sitio web.
Luego, present茅 una apelaci贸n, donde indiqu茅 que se hab铆a realizado el procedimiento de confirmaci贸n de TWA, adjunt茅 la pantalla de Generador y comprobador de listas de declaraciones y un enlace al archivo assetlinks.json.
La aplicaci贸n se desbloque贸 despu茅s de un par de d铆as. Al hacerlo, recib铆 consejos de soporte:
En el futuro, si tiene un comprobante de permiso para usar la propiedad intelectual de un tercero, puede enviarlo por adelantado a nuestro equipo mediante este formulario. El enlace tambi茅n se puede encontrar en la p谩gina de listado de la tienda en la secci贸n Descripci贸n completa.
Por lo tanto, si planea publicar PWA y desea evitar problemas, env铆e un comprobante de propiedad del dominio con anticipaci贸n.
Si planea anunciarse en su aplicaci贸n, es posible que se le niegue la publicaci贸n en ausencia de una pol铆tica de uso. El generador de pol铆ticas de privacidad de la aplicaci贸n me ayud贸.
Conclusi贸n
Publicar una aplicaci贸n PWA en Google Play fue m谩s f谩cil de lo que esperaba. De los profesionales, obtuve:
- Aplicaci贸n ligera;
- Una base de c贸digo;
- Actualizaciones sin Google Play.
El c贸digo fuente de la aplicaci贸n esbelta se puede ver en gitlab'e