Wie kann ich eine Web-App entwickeln, die genauso gut ist wie eine native mobile App? [geschlossen]

Ich bereite mich darauf vor, mit der Arbeit an einem Projekt zu beginnen, mit dem Sie Ihre Musiksammlung von jedem Gerät aus anhören können. Mein Plan ist es, es als responsive Website zu erstellen, sodass ich mit nur einem Frontend so ziemlich jedes Gerät ansprechen kann.

Das Problem ist, dass ich möchte, dass die App offline funktioniert. Ich möchte, dass Benutzer sowohl auf dem Handy als auch auf dem Desktop Songs für die Offline-Wiedergabe speichern können, und ich möchte nicht, dass die App streng vom Vorhandensein einer Internetverbindung abhängig ist.

Ist das eine umsetzbare Idee? Ich denke, ich könnte dies wahrscheinlich auf dem Desktop-Ende zum Laufen bringen, indem ich eine Chrome-Erweiterung oder -App hinzufüge (ich bin damit einverstanden, dass meine Website auf nur einen Browser beschränkt ist), aber ich habe keine Ahnung, ob dies auf Mobilgeräten möglich ist. Ich interessiere mich wirklich nur für Android; Gibt es eine Möglichkeit, dies auf Android als Web-App zum Laufen zu bringen?

nebenbei: Ja, ich weiß, dass eine Web-App nie ganz so benutzerfreundlich sein wird wie eine native App. Ich plane, dieses Projekt alleine durchzuführen, daher ist es mir wichtiger, die Arbeitsstunden für die Entwicklung zu reduzieren, als die perfekte UX zu haben.

TLDR: Ich erstelle eine responsive Web-App, aber ich möchte, dass sie offline auf Android und auf Chrome für den Desktop funktioniert. Es muss in der Lage sein, viele große Dateien dauerhaft zu speichern und ohne Internetverbindung zu funktionieren. Gibt es Bibliotheken/APIs/Software, die mir dies ermöglichen würden?

Antworten (1)

Hmm, eigentlich denke ich, dass ich eine ziemlich gute Lösung dafür gefunden habe. Mit Android können Sie eine App erstellen, die nur eine WebView zum Anzeigen einer Website ist, und Sie können JavaScript-Methoden an Methoden in Ihrer Android-App binden. Es gibt eine ganze Reihe von APIs für Chrome-Erweiterungen, die Dinge wie den Zugriff auf das Dateisystem tun können.

Wenn also meine Web-App geladen wird, prüft sie im Grunde, ob Android oder die Chrome-Erweiterung verfügbar sind. Wenn eines dieser Dinge tatsächlich verfügbar ist, verwendet es die entsprechenden Methoden, um auf das Dateisystem und was auch immer zuzugreifen. Wenn beides nicht verfügbar ist, wird die App im „Lite“-Modus ausgeführt, wobei einige Funktionen nicht verfügbar sind.

Was das Zwischenspeichern der Seiten betrifft, um sicherzustellen, dass sie offline funktionieren: Ich denke, ich muss eine Art Index darüber führen, welche Dateien immer verfügbar und zwischengespeichert sein müssen, und diese Dateien so schnell wie möglich lokal herunterladen. Unter Android kann ich shouldOverrideUrlLoading() verwenden , um sicherzustellen, dass alle Anforderungen an diese zwischengespeicherten Dateien abgefangen und stattdessen die lokale Kopie geladen wird. Ich habe die genauen Details noch nicht herausgefunden, aber ich weiß, dass eine ähnliche Sache in Chrome machbar ist (tatsächlich sieht es so aus, als könnten Chrome-Apps für Android/iOS ausgeführt werden, also entwickle ich vielleicht einfach eine Chrome-App ...)