Welche Datenbank für eigene Android-App?
Hey, ich würde in der nächsten Zeit gerne eine eigene App programmieren und im Google-Playstore zur Verfügung stellen. Die App wird wahrscheinlich nicht von vielen Personen genutzt. Sagen wir mal die Höchstgrenze wären 200 Personen maximal. Bevor ich jedoch mit der App anfange, würde ich gerne von euch wissen welche Art von Datenbank ihr mir empfehlen würdet.
Sollte ich in meiner App lieber mit bereits bestehenden Datenbanken, wie Firebase von Google arbeiten, oder sollte ich lieber eine eigene Datenbank mit SQL machen?
Wo liegen die Vor- und Nachteile und welche würdet ihr mir empfehlen?
3 Antworten
eine eigene Datenbank mit SQL machen
Weißt Du überhaupt, was eine Datenbank wirklich ist und was sie tut?
Wenn Du das wüsstest, würdest Du sowas gar nicht erst in Betracht ziehen ;)
Und was Du verwendest, hängt von deinen Anforderungen ab.
Die Art der Daten beeinflusst die Art der Datenbank (z.B. SQL vs. NoSQL).
Wenn die App nur offline arbeiten soll, kannst Du keinen Datenbank-Server auf dem Gerät installieren, da bietet sich ein Datenbank-System an, das auf einer Datei basiert.
Der Umfang der Daten beeinfluss ist natürlich auch relevant, da alle Systeme anders performen.
Oder wenn Du einen Cloud-Dienst nutzen willst, dann solltest Du dich danach richten, was dort angeboten wird.
Und dann gibt's noch die Möglichkeit, mehrere Datenbanksysteme zu kombinieren, je nach Anforderung, oder die Server-Anwendung nutzt eine relationale Datenbank und die Handy-App eine Dokumentendatenbank. Oder es ist eine MicroServices-Architektur mit zig Datenbanken.
Für lokale Handy-Apps dürfte aber SQLite das verbreitetste System sein.
Bei Server-Anwendungen würde ich auf den SQL-Server setzen, da habe ich die meiste Erfahrung mit.
Oder Du schaust dich bei den NoSQL-Datenbanken um, da habe ich keinen Überblick.
Oder Du speicherst einfach selber z.B. als JSON-Dateien, das erspart dir Anfang einiges an Arbeit, was besonders für einen Programmier-Anfänger einfacher sein dürfte, koset meiner Erfahrung nach später aber einiges an Arbeit, wenn man fest stellt, dass man doch eine Datenbank braucht.
Firebase (oder ähnliches in der Cloud) wäre für deine Usermengen definitiv günstiger, zumal dies auch ein kostenloses Tier hat.
Eine eigene Datenbank hat halt den Nachteil, dass du diese selber betreiben musst (bei einem Hoster oder auf einem eigenen Server). Wenn deine App Erfolg hat, wird es dann auch schnell teuer.
Um in Android lokal etwas zu speichern, gibt es verschiedene Möglichkeiten. Shared Preferences, simple Dateien, SQLite...
Die Shared Preferences sind nur dazu gemacht, um kleine Dinge zu speichern, etwa einen Login Token oder eine Einstellung, ob der Darkmode aktiviert ist oder nicht.
Für dich wäre eine SQLite Datenbank am sinnvollsten. Dies ist eine Datenbank in einer Datei. Du brauchst also keinen Server.
Die Möglichkeiten von allen Optionen kannst du auch noch hier durchlesen: https://www.androidauthority.com/how-to-store-data-locally-in-android-app-717190/
Zu SQLite Datenbanken auf Android gibt es sicherlich einige Tutorials auf YouTube oder Anleitungen im Internet.
Das liegt an dir, was du benutzen willst
Ich bin noch Amateur in Sachen programmieren usw. Was würdest du denn empfehlen und wo liegen die Vorteile? Muss man auf irgendetwas besonderes achten, wenn man eine App veröffentlicht?
Der Preis sollte das letzte Argument sein, zuerst müssen die Anforderungen geprüft werden.
Hey, danke für deine Antwort. Wenn man jetzt eine Offline-App programmieren möchte kann man das aber mit SQL machen oder? Das soll ja dann nur auf dem Gerätespeicher gespeichert und zugegriffen werden.