Denkhilfe beim Erstellen einer App

A

awacs75

Neues Mitglied
0
Hallo zusammen...

Nach den letzten echt klasse Erfahrungen hier im Forum benötige ich nochmal eure Hilfe..
Ich habe eine Vorstellung einer App, die ich gerne schreiben würde.

Die soll in etwa so laufen:

Jemand füttert eine Art Datenbank mit neuen Informationen..
Sobald neue Informationen eingegangen sind, soll die Datenbank diese Infos automatisch an alle installierten App-Nutzer übertragen und dort in der App anzeigen.

Ich habe zwar schon so grundlegend eine Idee, wie ich das realisieren kann, jedoch fehlt mir noch etwas Hintergrundwissen/infos was das Thema Datenbank und automatisches übertragen angeht.

Wäre echt super, wenn mir ja jemand einen groben "Fahrplan" geben könnte, was für methoden/komponente ich benötige.

Nicht das mich jetzt jemand falsch versteht..
Ich möchte nicht das mir einer hier Codes zur Verfügung stellt oder so, ausser er will das*ggg* sondern einfach nur Denkanstösse in die richtige Richtung.

Vielen Dank schonmal im Voraus.

MfG
awacs
 
Hi,

du brauchst eine Datenbank, die über eine Schnittstelle mit dem Internet verbunden ist.
Hier sind die gängigsten Lösungen PHP/MySQL.
Es gibt aber auch noch NodeJS/MongoDB oder Google Cloud Services.

Der normale Workflow über automatische Benachrichtigungen geht so:
Es gibt neue Informationen in der Datenbank -> Push-Nachrichten werden an die Benutzer versendet -> Benutzerendgerät ruft die neuen Informationen vom Server ab.

Für Push-Nachrichten gibt es auch ein paar Anbieter, aber GCM (Google Cloud Messaging) sollte dafür ausreichen.
 
  • Danke
Reaktionen: awacs75
Hallo Kardroid, erstmal vielen Dank.

Versteh ich das also richtig das ich zb ne MySQL Datenbank habe in die ich Infos einspeise und GCM schaut regelmässig in der DB ob neuigkeiten da sind und sendet dann eine Nachricht an das Endgerät, das Nachrichten abgerufen werden können?

Wie sieht das mit den Zugangsdaten zu der Datenbank aus? Müssen die dann in der APP hinterlegt werden, was ja ein gewisses Sicherheitsrisiko darstellt oder wird die gesammte Kommunikation dann über GCM abgewickelt?
 
Versteh ich das also richtig das ich zb ne MySQL Datenbank habe in die ich Infos einspeise und GCM schaut regelmässig in der DB ob neuigkeiten da sind und sendet dann eine Nachricht an das Endgerät, das Nachrichten abgerufen werden können?
Nein du musst GCM mitteilen das es neuigkeiten gibt. (z.B. HTTP Aurruf oder XMPP)

Wie sieht das mit den Zugangsdaten zu der Datenbank aus? Müssen die dann in der APP hinterlegt werden, was ja ein gewisses Sicherheitsrisiko darstellt oder wird die gesammte Kommunikation dann über GCM abgewickelt?
Deswegen ja der Webservice um die Datenbank herum, damit du nirgends deine Datenbankzugangsdaten veröffentlichen musst.

lg. Dagobert
 
Speziell hierzu gibt es schon einige Threads hier im Android App Entwicklung Forum. Schau da doch mal durch, da wurde schon viel zum Thema gepostet.

Stichworte php/rest/json/xml/oauth

cu
 
Ich wüde das eher so verstehen, dass Du nach dem Update deiner Daten dem GCM sagen musst, dass die DB "was" hat. Die sendet dann einen Notify an die Endgeräte und die holen sich dann die Daten.

Mit den Zugangsdaten zur DB bist du auf dem richtigen Weg. Wegen dieser Probleme stellt man Datenbanken nicht global dem Internet zur Verfügung. Datenbanken sollten nur über "Frontends" also typischwerweise eine Webanwandung offen erreichbar sein. Dieses Frontend kann man in PHP oder was besserem :D schreiben. So kann man nicht nur sicherstellen, dass die DB Zugangs-Daten nicht offen rumliegen, sondern auch, dass andere nicht irgendwelche unerwarteten SQL Befehle an deine DB senden können.
 
Das Thema PHP und MySQL ist kein Drama. Da kann ich mir wohl helfen, da ich damit schon seit langem arbeite.
Was mir halt immer nur etwas "Schwierigkeiten" bereitet ist die portierung auf Android bzw zu erfahren welche Methoden und/oder Services ich an welcher Stelle nutzen muss.

Da fühl ich mich etwas erschlagen von, denn das kann doch kein Mensch auswendig können*ggggg* zu wissen, an welcher Stelle man welche Methode usw nutzen kann/muss :)
 
Hi,

du kannst ja klein anfangen und dann immer größer werden.
Also erstmal eine PHP-Datei erstellen, in der du die Daten über einen Browser abrufen kannst.
http://meinserver.de/datenauslesen.php
Dann schreibst du einen Async Task mit einem HTTP-Client und ließt die Daten mal beispielweise in deine App und lässt sie dir im Log ausgeben.

Dann fängst du mit dem GCM an und implementierst die Registrierung am GCM mit deiner AppId.

Danach erstellst du eine PHP-Datei, die Daten in die Datenbank schreibst, und gleichzeitig eine Nachricht an den GCM-Server schickt, der dann den Android-Endgeräten eine Nachricht schreibt, dass der Server neue Daten hat.

Anschließend muss nur noch der Service geschrieben werden, der die Nachricht abfängt und die neuen Daten vom Server holt und an anzeigt.
 
Connecting to the Network | Android Developers

Hier wird erklärt, wie man eine Http-Verbindung implementiert. Es gibt im Netz viele Beispiele mit der Klasse HttpClient. Die Implementierung ist zwar einfacher, wird vom Android seit fast 4 Jahren nicht mehr aktiv gepflegt. Sprich es ist langsamer, braucht mehr Speicher und es fehlen aktuelle Bugfix.
 

Ähnliche Themen

W
Antworten
2
Aufrufe
744
rene3006
R
5
Antworten
0
Aufrufe
1.149
586920
5
Muecke1982
Antworten
8
Aufrufe
1.034
Skyhigh
Skyhigh
Zurück
Oben Unten