Ich mag Metal Musik aus verschiedenen Richtungen. Um neue Produkte zu verfolgen, habe ich einen Parser erstellt, der nach neuen Alben sucht und diese in die Datenbank stellt. Während der Existenz der Anwendung habe ich den Parser fast nicht berührt, obwohl dies alles andere als ideal ist, aber das Front-End wurde mehrmals überarbeitet.

Unter der Katze ist eine Geschichte darüber, wie ich die Anwendung von React-Native nach Svelte kopiert und auf Google Play veröffentlicht habe.
Anwendungserstellung
Die erste Version von Metalz wurde in React und Mobx-State-Tree geschrieben . Dann wollte ich die Anwendung auf Google Play stellen und alles auf React-Native mithilfe der Expo- Vorlage neu erstellen. Als Google, das vom Löschen bedroht war, eine 64-Bit-Version forderte, habe ich alles auf Svelte neu geschrieben . Zum Vergleich wog die Build-on-Reaktion ~ 300 kb, die Build-on-Reaktion ~ 90 kb. Ich habe keine Baugruppenoptimierungen durchgeführt, nur Standardvorlagen.
Anzeige Anzeige
In der reaktionsnativen Anwendung habe ich Ad-Mob-Anzeigen verwendet, die Webplattform wird jedoch nicht unterstützt. Ich habe mich für AdSence entschieden, aber die Moderation nicht bestanden. Die Ablehnung ergab, dass auf meiner Website kein Inhalt vorhanden war und Empfehlungen zum Schreiben hochwertiger Artikel gegeben wurden. Und ich habe sozusagen keine Artikel, also ist auch die Berufung gescheitert. Ich musste den Werbeanbieter wechseln. Die Wahl fiel auf das Yandex-Werbenetzwerk. Ich habe die Svelte-Komponente erstellt, in deren Modul der Anzeigenblockzähler herausgenommen wird. Es ist eine für alle Instanzen der Komponente, sodass Sie diese Option in Bändern mit unendlichem Bildlauf verwenden können.
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}`} />
PWA-Funktionalität hinzufügen
Nachdem der Antrag geschrieben wurde, hatte ich eine Frage zur Versammlung. Die svelte-Vorlage kann einem Bundle keinen Hash hinzufügen. Ich habe den Sammler nicht eingerichtet, sondern sofort Sapper mitgenommen . Nach dem Auspacken habe ich eine Bundle-Assembly mit Hash, SSR, PWA und Routing erhalten. Weitere Informationen finden Sie in der Dokumentation .
Build apk
Das Erstellen der Anwendung erwies sich als recht einfach. Ich habe diese Anweisung verwendet .
Vergessen Sie nicht, die Symbole durch Ihre eigenen zu ersetzen. Dies wird im Tutorial nicht erwähnt.
Die apk-Größe mit PWA im Inneren stellte sich als ~ 1,3 MB heraus. Das reaktionsnative Bündel wog ~ 16,4 MB. Ich habe keine Baugruppenoptimierungen durchgeführt.
In Google Play veröffentlichen
Nachdem ich den Antrag auf Überprüfung gesendet hatte, erhielt ich eine Ablehnung der Veröffentlichung wegen Verstoßes gegen die Bedingungen.
Status der App MetalZ - Neue Metal-Musikveröffentlichungen (com.az67128.metalz): Wegen Verstoßes gegen die Richtlinien von Google Play gesperrt
Bei der Überprüfung haben wir festgestellt, dass Ihre App gegen die Richtlinien für Webviews und Affiliate-Spam verstößt. Wir erlauben keine Apps, deren Hauptzweck darin besteht, den Affiliate-Verkehr auf eine Website zu lenken oder eine Webansicht einer Website ohne Erlaubnis des Website-Eigentümers oder Administrators bereitzustellen.
Als nächstes legte ich Berufung ein, in der ich darauf hinwies, dass das TWA-Bestätigungsverfahren durchgeführt wurde, und fügte den Bildschirm für den Anweisungslistengenerator und den Tester sowie einen Link zur Datei assetlinks.json hinzu.
Die Anwendung wurde nach einigen Tagen entsperrt. Dabei erhielt ich Ratschläge vom Support:
Wenn Sie in Zukunft einen Nachweis über die Erlaubnis zur Nutzung des geistigen Eigentums eines Dritten haben, können Sie diesen über dieses Formular vorab an unser Team senden. Der Link befindet sich auch auf Ihrer Shop-Listingseite im Abschnitt Vollständige Beschreibung.
Wenn Sie planen, PWA zu veröffentlichen und Probleme vermeiden möchten, senden Sie daher vorab einen Nachweis über den Domainbesitz.
Wenn Sie in Ihrer Bewerbung Werbung schalten möchten, wird Ihnen möglicherweise die Veröffentlichung verweigert, wenn keine Nutzungsrichtlinie vorliegt. Der Generator für App-Datenschutzrichtlinien hat mir geholfen.
Fazit
Das Veröffentlichen einer PWA-Anwendung auf Google Play war einfacher als erwartet. Von den Profis bekam ich:
- Leichte Anwendung;
- Eine Codebasis;
- Updates ohne Google Play.
Der Quellcode der Svelte-Anwendung kann in gitlab'e angezeigt werden