Kann man mit javascript und sqlite eine Handy-App schreiben?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Naja, du willst also eine webapp, verstehe ich das richtig?

Nun, wenn das offline laufen soll usw. nennt man das progressive web app, pwa.

Lokale datenbank ist möglich, das nennt sich "web sql", sqlite kannst du vom Browser aus nicht nutzen. Eine webapp ist in der Sandbox vom Browser, kann also nicht auf Systemdateien zugreifen.

wiele 
Fragesteller
 07.12.2021, 09:33

Weißt Du den einen oder anderen guten Link, der mich da weiterbringen kann?

0
jort93  07.12.2021, 10:25
@wiele

Ich persönlich nutze ja gerne nodejs und das angular Framwork. Das ist aber relativ komplex das erstmal zu verstehen.

React ist da einfacher.

Das sind serverside frameworks, beim user selbst ist das lightweight.

0
wiele 
Fragesteller
 07.12.2021, 12:55
@jort93

Danke. Serverseitig habe ich bisher PHP verwendet. Ich brauche möglichst etwas, das mir (mit nicht zu viel Aufwand ;) ) ermöglicht, Daten lokal zu speichern, wenn keine Internetverbindung vorhanden ist oder diese zu langsam ist.

Gut, ich werde mal unter lightweight suchen.

0
jort93  07.12.2021, 13:23
@wiele

Also, nodejs mit react und angular wäre javascript serverside.

"ich werde mal unter lightweight suchen." was??

Das sollte nur heißen dass angular and react überwiegend serverside sind. Nach "lightweight" zu suchen ergibt keinen sinn.

0
wiele 
Fragesteller
 07.12.2021, 13:21

Danke nochmal. Deine Antwort und die Kommentare von Dir haben mir wirklich geholfen. :)

0

klar geht das, wenn du noch HTML für die Gestaltung nimmst, dann hast du eine sogenannte Webapp (danke jort93)

und bezüglich der zusätzlichen Sachen... alle Javascript-Bibliotheken sind am Ende in reinem Javascript geschrieben.

ob und welche Teile du verwendest, steht dir frei

wiele 
Fragesteller
 07.12.2021, 08:55

Html ist natürlich kein Problem.

Wie sieht das ganze dann praktisch aus? Variable = new sqliteDB() oder so ähnlich? Sqlite ist ja auf dem Handy wohl installiert, aber wie nutzt man das in dem Zusammenhang?

0
wiele 
Fragesteller
 07.12.2021, 09:39
@rikks

Danke für den Link. Ich habe allerdings den Eindruck, dass das nicht ganz up to date ist.

0
jort93  07.12.2021, 10:32
@wiele

Web SQL ist auch deprecated, veraltet. Die haben die spezifikationen schon seit jahren nicht verändert.

Das wird aktuell durch IndexedDB ersetzt.

IndexedDB ist vielleicht die bessere idee, viele mobile browser können kein WebSQL.

1
rikks  07.12.2021, 10:37
@jort93

cool, danke für die Erweiterung meines Horizonts 🤗

Ich setze bei Webapps nachwievor eher auf zentrale Datenbanken auf dem Server als auf eine Client-basierte Datenbank, daher bin ich nicht 100% fit, aber ich lerne dankbar dazu

1
jort93  07.12.2021, 10:42
@rikks

localstorage hat wohl den besten support, das unterstützt eigentlich jeder webbrowser seit 2010.

WebSQL support haben einige browser schon rausgekickt.

Und IndexedDB support kommt so langsam, einige browser haben ein paar Probleme damit.

Aber localstorage ist ein ganz einfacher key-value store. Außerdem sehr limitiert in der größe... bei den meisten browsern 10mb pro domain. Das kann ein problem sein.

1
wiele 
Fragesteller
 07.12.2021, 12:56
@jort93
IndexedDB ist vielleicht die bessere idee

Danke für den Tip, das kenne ich auch noch nicht.

0
wiele 
Fragesteller
 07.12.2021, 13:00
@rikks
Ich setze bei Webapps nachwievor eher auf zentrale Datenbanken auf dem Server als auf eine Client-basierte Datenbank

Genau das habe ich bisher auch gemacht - wobei ich in Summe eine einzige Web-Anwendung programmiert habe ;)

Aber nun kam die Anforderung (von meiner Tochter), dass sie das nutzen will, wenn sie unterwegs ist und keine Internet verfügbar (bzw. ihr Datenvolumen aufgebraucht) ist. In dem Moment nutzt ihr die App nämlich nichts mehr, da sie weder auf gespeicherte Daten zugreifen, geschweige denn sie verändern kann.

0
jort93  07.12.2021, 13:21
@wiele

Die frage ist ob du eine offline-first oder online-first web app machen willst.

Willst du das sie primär online ist, aber offline auch teilweise funktioniert, oder willst du das sie primär offline ist, aber auch einige online funktionen anbietet.

Also, ist die grundsätzliche annahme dass der nutzer internet hat, oder ist die grundsätzliche annahme dass der nutzer kein internet hat.

Das ist eine sehr wichtige unterscheidung.

0
wiele 
Fragesteller
 07.12.2021, 13:26
@jort93

Ja, in erster Linie soll sie online verwendet werden. Aber manchmal hat man kein Internet oder Datenvolumen, so dass man beispielsweise erst abends zu Hause wieder Internet hat.

Für den Fall, dass temporär (ein paar Stunden?) kein Internet da ist, soll die Anwendung wenigstens in gewissen Teilen weiter genutzt werden können.

Es sollen also auch Daten gespeichert werden können und wenn das Internet wieder verfügbar ist, sollen die Daten mit den Daten auf dem Server abgeglichen werden.

0
jort93  07.12.2021, 13:28
@wiele

z.B. habe ich auf meinem smartphone ein app um verschiedene stahlsorten zu vergleichen.

Die funktioniert erstmal offline komplett, aber ich kann die datenbank mit einer online datenbank abgleichen. Das wäre offline first, weil ich sie normalerweise komplett offline nutze.

Online first ist eher eine traditionelle web app, wobei ich dann an einigen stellen caching einsetze damit die website weiter funktioniert. Aber ich habe dann keine vollständige funktionalität.

Kommt halt drauf an was das für eine art von anwendung ist, was da sinnvoll ist.

Macht jetzt z.B. wenig sinn gutefrage.net als offline first anwendung zu bauen.

0
wiele 
Fragesteller
 07.12.2021, 13:51
@jort93
Macht jetzt z.B. wenig sinn gutefrage.net als offline first anwendung zu bauen.

Ja, da hast Du wohl recht :)

Für mich wären theoretisch beide Varianten denkbar. Allerdings sollen User auch von den Änderungen/Erweiterungen der Daten anderer User profitieren. Dieser Gedanke wird besser unterstützt, wenn man immer wieder online ist, weil dann auch entsprechende Daten für andere nutzbar gemacht werden können.

Mache ich eine offline-first, dann lädt das ggf dazu ein, jeweils das eigene Süppchen zu kochen und ein Austausch der Daten wird zwar nicht prinzipiell verhindert, aber die Anreize für den Einzelnen sind geringer, online zu gehen und die Daten zu teilen.

Bei online-first hat der einzelne User über die Offline-Funktionalität weitere Funktionen oder Vorteile, wenn er online geht. Da ist die Motivation höher, online zu gehen.

0
jort93  07.12.2021, 09:09

Ne, mobile App nennt man das nicht. Webapp heißt das.

Mobile App heißt einfach "Handy App".

0
rikks  07.12.2021, 09:10
@jort93

vielen Dank, du hast natürlich Recht.

0

wenn du spezifisch nh handyapp möchtest kannst du dir auch apache cordova anschauen

Woher ich das weiß:Recherche
wiele 
Fragesteller
 15.12.2021, 19:59

ah ok... danke, werde ich mir anschauen.

0