Brauche Hilfe bei Konzepterstellung für App und Servern

  • 6 Antworten
  • Letztes Antwortdatum
P

paulh14

Neues Mitglied
0
Hallo liebe Leute,
ich bräuchte mal eure Hilfe...

Und zwar möchte ich ein bisschen was lernen über Apps die Daten mit Servern austauschen...

Ich möchte gerne eine App programmieren um einfach das System zu verstehen und das programmieren zu lernen!

Also: Ich möchte z.B. mit einem Server Daten (Text, Bilder, Videos usw.) austauschen und anderen, die auch diese App haben (z.B. meine Frau oder andere Verwandte) zur Verfügung stellen. Also im Prinzip ähnlich wie WhatsApp oder Viber (keine Angst ich will denen keine Konkurenz machen:winki: ich will es nur verstehen und lernen). Leider habe ich gerade was die Server angeht nicht wirklich viel Ahnung....!

Hier meine Fragen:

[1]:
Für den Datenaustausch brauche ich einen Server... kann man da einen Hoster nehmen und da alles programmieren?

[2]:
Welche programmiersprache nehme ich am besten für den Server?

[3]:
Welches protokoll nehme ich am besten für die Datenübertragung? (WhatsApp z.B. nutzt XMPP) Ich würde nämlich gerne mit Verschlüsselung arbeiten! Außerdem wäre Push Unterstützung wichtig!

[4]:
Die Nutzer müssen sich ja irgendwie am Server anmelden, wie macht man das am besten?


Vielleicht hat der ein oder andere eine Idee und könnte einfach ein paar Stichworte dazu sagen,... ich erwarte keine großen Erklärungen - werde mich entsprechend bei Google informieren!

Vielen Dank schon mal für eure Hilfe!!!

Gruß
 
[1] zum testen kannst und solltest du dir erst mal einen Server zu hause einrichten.
hoster brauchste erst mal nicht, und wenn programmierst du bei dir und lädst es normalerweise fertig dort hoch.

[2] Da würde ich sagen: Nimm das was du kannst.
Theoretisch kannst du da nehmen was du willst.
PHP hat den Vorteil, dass PHP Webspace (also den Teilder mal dein Server wird) überall für sehr wenig Geld hinterher geschmissen bekommst.
Wenn's größer wird würde ich allerdings was anderes nutzen. Ich hab meinen eigenen Application Server für den ich mit Java programmiere (kann ich besser als PHP und es gibt keinen Bruch zwischen Server und App, man kann die gleichen Libs und Klassen nutzen etc.)
[3] Das am besten passende ;)
Kommt halt drauf an was du genau machen willst, im Prinzip reicht aber für das meiste HTTP vollkommen aus, kannst natürlich auch XMPP nutzen, aber HTTP dürfte weiter verbreitet sein da dürfte man mehr Tutorials zu finden. (wobei xmpp da auch einiges bieten dürfte)
Push ist unabhängig vom Protokoll.
[4] Auch eine sehr interessante Frage, tausend möglichkeiten
Eigene Benutzerkonten, Google+ Login, Facbeook Login, Twitter login. etc.
Das kann man so pauschal nicht beantworten.
 
Vielen Dank schon mal!

Vielleicht noch ein paar restliche Fragen, die mir später gekommen sind...

Wie gesagt, ich habe nicht viel Ahnung von Servern, worauf sollte ich achten, damit das Projekt funktioniert! Zu Hause habe ich z.Z. leider nicht die Entsprechende Hardware um einen Application Server laufen zu lassen... Nur eine NAS von Synology wo man glaube ich PHP/Python zum laufen bringen kann... Aber wenn es auf einen Webspace auch geht...(es gibt ja kostenlosen zum ausprobieren...)

Wie funktioniert das mit den Servern...? Ich schicke aus der App eine message an einen bestimmten Port von dem Server und was macht der dann? Wird der Port per Polling oder Interrupt abgefragt? Wie kann ich dann sagen, dass ein bestimmtes Script o.ä. ausgeführt werden soll?

Wie ist das mit der Datenbankstruktur? Wieviele Datenbanken würdet ihr mindestens empfehlen? Ich denke mindestens eine für Benutzerdaten und eine für die Daten die gesendet werden, oder?
 
Zuletzt bearbeitet:
Hallo Paul,

ich glaube, du machst dir viel zu viele Gedanken über den Server.

Für mich hört es sich so an, als ob du Erfahrung mit hardwarenaher Programmierung hast, aber dir die Werkzeuge für eine Client/Serverarchitektur fehlen.

Ich würde an deiner Stelle mit einem Apache anfangen, der PHP kann und eine MySQL Datenbank.
Man braucht auch nicht unbedingt zwei Datenbanken. Eine Datenbank mit verschiedenen Tabellen reicht auch.

Auch wenn du keine Internetseiten programmieren möchtest, empfehle ich dir ein Buch dafür:
Einstieg in PHP 5.5 und MySQL 5.6: Für Programmieranfänger geeignet: Galileo Computing: Amazon.de: Thomas Theis: Bücher
Ein WebServer, der mit Android kommunizieren kann, ist sowas ähnliches wie eine Internetseite.

Du musst die GET und POST Parameter verarbeiten und gibst etwas danach zurück. Ich empfehle direkt mal JSON.

Wenn du auf einem Windowsrechner programmierst, dann kannst du XAMPP benutzen.
XAMPP installiert dir direkt einen lokalen MySQL Server und einen Apache, der PHP kann.
In deinem WLAN kannst du auch auf den Server zugreifen. (Routerkonfiguration und IP vorrausgesetzt)

Wenn du spezielle Fragen hast, kannst du sie hier im Forum stellen.

Edit: Ich will dir mal direkt auf deine Frage antworten:
Wie funktioniert das mit den Servern...? Ich schicke aus der App eine message an einen bestimmten Port von dem Server und was macht der dann? Wird der Port per Polling oder Interrupt abgefragt? Wie kann ich dann sagen, dass ein bestimmtes Script o.ä. ausgeführt werden soll?
Um ein Interrupt oder Polling brauchst du dich nicht zu kümmern. Du schickst am Besten über HTTP ein GET oder POST an den Server. Das HTTP-Protokoll, TCP/IP und der WebServer kümmern sich um das Empfangen des Pakete aus dem Netz.
Das Endgerät wartet jetzt so lange, bis eine Antwort auf die Anfrage kommt, oder gibt nach einer vorher bestimmten Zeit auf und zeigt an, dass nichts emfangen werden konnte. (Timeout)
 
Zuletzt bearbeitet:
Kardroid schrieb:
Für mich hört es sich so an, als ob du Erfahrung mit hardwarenaher Programmierung hast, aber dir die Werkzeuge für eine Client/Serverarchitektur fehlen.
Stimmt einerseits, habe bisher nur Hardwarenah programmiert - wobei ich nur Grundlagen kenne, es aber gerne lernen möchte!!

Kardroid schrieb:
Hallo Paul,
Ich will dir mal direkt auf deine Frage antworten:

Um ein Interrupt oder Polling brauchst du dich nicht zu kümmern. Du schickst am Besten über HTTP ein GET oder POST an den Server. Das HTTP-Protokoll, TCP/IP und der WebServer kümmern sich um das Empfangen des Pakete aus dem Netz.
Das Endgerät wartet jetzt so lange, bis eine Antwort auf die Anfrage kommt, oder gibt nach einer vorher bestimmten Zeit auf und zeigt an, dass nichts emfangen werden konnte. (Timeout)
Danke, wusste nicht, dass es mit einem Webserver auch geht...!
Aber wie wird dann das entsprechende Script gestartet?

Und ich meinte ja, die Entsprechende Hardware habe ich ja nicht zu Hause - aber Webspace bietet ja einen Webserver...:confused2: oder?

Das Buch schaue ich mir mal an und von JSON habe ich auch schon gelesen, scheint ganz beliebt zu sein!
 
Hallo,

eigentlich geht das hier zu weit, aber ich möchte dir noch ein paar Denkanstöße und kurze Beispiele geben.

Ich antworte dir direkt auf deine Fragen:
Aber wie wird dann das entsprechende Script gestartet?
Das Script (ich gehe jetzt mal von PHP aus) liegt als Datei auf einem Webserver.
Der Webserver kann im ersten Schritt ein kostenloser Webserver sein.
Wenn du dir einen Webserver mietest, erhälst du eigentlich immer einen FTP-Account, womit du die Dateien hochladen kannst.
Normalerweise gibt es dann auch eine Domain, aber ich gehe jetzt in meinem weiteren Beispiel von example.com aus.
Bei Apache und PHP kommen die Dateien bei einem Linuxserver oft in den Ordner /var/www/ rein.
Jetzt kommt es darauf an, in welche Ordner du deine Dateien kopierst.
Wenn du ein Verzeichnis "unterordner" erstellst, und da eine PHP-Datei rein kopierst, die den Namen script.php hat, dann kannst du über http://example.com/unterordner/script.php das Script aufrufen.

Wenn du in deinem Script ein paar GET-Parameter empfangen und verarbeiten möchtest, dann kannst du über diese in PHP mit $_GET["name"] abfragen.
Also bei einem Aufruf von http://example.com/unterordner/script.php?name=bla kann dein Script mit "bla" weiterarbeiten.

Diese Aufrufe über http gehen natürlich auch mit einem Endgerät.
Bei Android musst du dafür einen AsyncTask erstellen und die Abfrage mittels eines HTTPClients abschicken. Wichtig ist auch die Internetpermission in der manifest-Datei.

Wenn dir diese Grundlagen fehlen, musst du sie dir erstmal aneignen und kannst danach hier spezifischere Fragen stellen.
 
@Kardroid
Wo ist de Danke Button?
Danke für die nette und ausführliche Hilfe!!!:thumbsup:

Denke jetzt habe ich erst mal die nötigsten Informationen zusammen!
 

Ähnliche Themen

4
Antworten
10
Aufrufe
1.035
jogimuc
J
D
Antworten
4
Aufrufe
426
Appento
Appento
Zurück
Oben Unten