Eine APP für mein Clan programmieren.

  • Hallo zusammen,


    nach langer Zeit möchte ich nun doch noch einmal versuchen in die APP Programmierung von Android vorzustoßen. Ich möchte mit einer kleine APP beginnen zu wenn alles klappt mit neuen Features später erweitern.


    Hierzu hätte ich ganz gern das mir vielleicht erfahrene Andriod Programmierer sagen könnten ob ich gedanklich auf dem richtigen Weg bin und oder ob man das eine oder Andere eine bessere Möglichkeiten gibt.


    So nun zu meinen Projekt.


    Ich betreibe (immer noch) eine Homepage mit vielen Mitgliedern, denen ich meine APP zur Verfügung stellen möchte.


    Zu Beginn möchte ich nichts weiter wie ein Loggin Bereich (Ich glaube das schwiesigste ersteinmal überhaupt) und dann eine Übersichtsseite mit ein zwei Buttons die dann zu den einzelnen Features führen wie zB. Mitgliederliste, Terminpläne .....


    Meine Gedanklicher Ansatz ist hierzu nun das ich mit JSON ARRAY arbeite würde um an die Daten der Homepage bzw. SQL Datenbank zu gelangen. Da ich damals gescheiter bin direkt an die SQL Datenbank der Homepage zukommen.
    Macht man das so oder welche Möglichkeiten gibt es da noch, denn es werden später mehr Daten als nur Benutzernamen und Kennwort sein ?


    Ich danke schon mal fürs lesen.


    MfG Oliver

  • Hallo,


    Zitat

    Zu Beginn möchte ich nichts weiter wie ein Loggin Bereich (Ich glaube das schwiesigste ersteinmal überhaupt) und dann eine Übersichtsseite mit ein zwei Buttons die dann zu den einzelnen Features führen wie zB. Mitgliederliste, Terminpläne .....


    http://www.androidhive.info/20…t-android-with-php-mysql/


    Zitat


    Meine Gedanklicher Ansatz ist hierzu nun das ich mit JSON ARRAY arbeite würde um an die Daten der Homepage bzw. SQL Datenbank zu gelangen. Da ich damals gescheiter bin direkt an die SQL Datenbank der Homepage zukommen.


    Ja das wäre ein möglicher Weg. Anfragen an deine WebSeite als HTTP Request (POST) verschicken. Wichtig wäre hier
    ein Verschlüsselung, weil man AndroidApps auch dekompilieren kann bzw. auch die Prefs auf dem Handy auslesen.
    Also IDs bzw Passwörter würde ich immer verschlüsseln.

    Ich hatte ein ähnliches Problem und mir hat dies hier geholfen


    http://www.androidsnippets.com…t-between-android-and-php


    Tja und die Antworten deiner Requests (Anfragen) kommen dann ja sicherlich von einem PHP Skript und die kannst du ruhig in JSON verschicken.
    In Android lassen sich diese Sachen wunderbar verarbeiten.


    Um weniger Ärger mit den ganzen Netzwerkzugriffen zu haben, empfehle ich die Verwendung von "Volley" einem Framework von Google welches Dir in dem Berreich jede Menge Arbeit abnimmt.

  • Hallo ….


    Vielen, vielen Dank für deine Antwort und den Links, das ist
    mal ein Toller Ansatz für mich zum Loslegen.


    Zum Thema Sicherheit habe ich mir noch keine Gedanken
    gemacht, andererseits frage ich mich ob die Daten und Informationen die ich
    verwenden werde so Geheim sein werden!? Ich werde den Usernamen und das
    Passwort an PHP übergeben, auswerten und boolean zurückmelden ob der Zugriff OK
    ist, und in den ersten Schritten werde ich meine Mitglieder auslesen und
    auflisten. So mal der Plan.



    Zum Thema JSON, was ich mich noch Frage ist wenn ich die
    Mitgliederliste erstelle würde ich das so umsetzen wollen: Wird die Option gewählt
    schicke ich ein request an PHP und bekomme ein JSON zurück mit allen
    Informationen die ich anzeigen lassen möchte.


    Das würde dann aber bedeuten das ich immer Internet benötige
    um sie anzeigen zulassen!? Also dann speichern? Dann muss ich aber prüfen ob
    die Daten noch aktuell sind!


    Wie würdest du das umsetzen?


    Von "Volley" habe ich noch nichts gehört.



    Vielen Dank, Oliver

  • -> also deine Infos welche Du oft benötigst und in der App auch offline anzeigen lassen möchtest, würde ich cachen bzw. richtig speichern.
    Bei einer Mitgliederliste wo du gleich mehrere Informationen hast, würde ich mir lokal auf dem Handy eine SQLite Datenbank anlegen und die Daten dort hinterlegen.


    Wenn deine App neu auf einem Handy installiert wird, wäre es dann folgender Ablauf
    -> Prüfe auf SQLite Mitgliederdatenbank -> Wenn Leer dann alle Daten vom Server holen und Datenbank befüllen.


    Wenn deine App bereits installiert ist


    -> Prüfe ob Netzwerkverbindung ->Falls Online Anfrage an Server nach DB Version / Vergleich lokale/entfernte Datenbank z.b. über Datum der letzten Änderung bzw. Anzahl der User je nach dem was für Dich Sinn macht. -> falls Update nötig -> Datenbank aktualisieren
    -> wenn Version bereits aktuell .> weiter im Context,


    -----------------------------
    wenn du nur kleinere Datensätze speichern musst, kannst du Dir auch Daten als Text, JSON oder XML Dateien ablegen und einen Filecache bauen, das sollte man dann von Fall zu Fall entscheiden. Wobei die SQLite Lösungen sicherlich immer die systemkonformste Art ist, weil Android alles mitbringt um diese komfortabel zu nutzen. (Stichwort: LOADER )
    -----------------------------



    Nochmal zum Thema Sicherheit: Klar liest die NSA alles mit, aber :



    Zitat

    andererseits frage ich mich ob die Daten und Informationen die ich
    verwenden werde so Geheim sein werden!?


    Hmm allein wenn du Usernamen und Passwörter im Klartext überträgst schaffst du Dir selber eine Sicherheitslücke bzw. gefährdest die Daten deiner User.
    So bekomm ich Zugriff auf die Userprofile, da finde ich die Email des Users, eventl noch mehr Informationen naja und so wühle ich mich durch bis ich dann andere Logins von Ihm übernehme ect. pp (User sind oft limitiert was die Varianz der vielen verschiedenen Logins in Foren/Facebook/Email ect. angeht


    Passwörter in Foren sind heute ja sowieso oft gehashed und gesalzen. D.h. um das Passwort auf Richtigkeit zu prüfen musst du ja auf die Loginroutine deines Forums zurückgreifen. Um hier die Sicherheit zu erhöhen würde ich aber dennoch zwischen Android-App und PHP Skript mit Verschlüsselung arbeiten, es ist kein wirklicher Mehraufwand und du kannst ruhiger schlafen.


    Phase 2 wäre dann, das ich dein PHP Skript mit Daten bombardiere, wenn da auch noch Lücken sind (SQL Injections) dann übernehme ich deinen ganzen SQL Server und am Ende reiss ich deine ganze Seite runter. :( nicht gut.


    ------------------------------------------------------------
    Generell noch mal zu deiner App-Idee.


    Ich hab damals (2011) bevor ich wieder mit Java/Android begonnen habe, bei meiner ersten App erst einmal eine MindMap gebaut (xmind) da habe ich mir in schöne Blasen alle Sachen reingeschrieben was die App können soll bzw. was rein muss und was für die Zukunft geplant ist. Wenn man sich das ganze aufmalt oder schreibt, dann werden schon auf dem Papier einige Probleme sichtbar. (Das schützt einen natürlich nicht davor, das die App hier und da dann doch etwas "wuchert", aber so als Richtlinie, ist es eine ganz gute Hilfe. So kann man sich selber Step by Step vorwärts tasten und du hast kleine Erfolgserlebnisse (milestones).





    PS: Was seid Ihr für ein Clan ?

  • Jaein,
    kannst du machen, wie gesagt je nach Sensibilität der Daten und mit dem MCrypt ist es ja auch kein Problem. Also der Key bleibt unangetastet nur das Value wird verschlüsselt.
    Um etwaigen Angreifern keine große Chance zu geben sollten auch die keynamen nicht zu detailiert sein.


    also [{user: Bernd},{passwd: 23344}] ist sicherlich keine gute Idee. Entweder man nimmt Zahlen (was aber auch für einen Selber sehr unleserlich wird (im Source und man immer seine Aufzeichnung "Was war gleich die nummer 10?" bei der Hand braucht) oder verdeutscht und verkürzt:


    bi = benutzerID
    cp = crypted Passwort,


    damit sparst du auch Traffic.


    ---------------------------------------------------------------------------------------



    Bei mir habe ich das alles über die ID gelöst.
    Wenn in meiner App niemand angemeldet ist, so bleiben ihm diverse Bereich versperrt.


    Login ist natürlich offen:


    -> Benutzername und Passwort (EditText) werden an PHP Login-Skript verschickt.
    -> Bei erfolgreichem Login sendet dies mir ein JSON-Array mit der verschlüsselten ID des Users zurück und noch ein TRUE, damit ich weiss, das Login war erfolgreich,
    -> ID und Login-Status speichere ich in der App. (Prefs) -> (Damit muss sich der User nicht jedesmal wieder neu anmelden - das nervt ja sonst)


    -----------------------------------
    Jetzt stehen dem User alle Bereiche offen,
    bei jedem Request sendest du jetzt die verschlüsselte Id mit und entschlüsselst Sie wieder auf der PHP Seite. Damit ist der User eindeutig erkennbar.


    Wenn du die Sicherheit erhöhen willst, kannst du natürlich auch jedes Mal den Benutzernamen,Passwort noch mal mitschicken und dann im php doppelt Prüfen.
    Also nochmal über Kreuz. LoginDaten App / LoginDaten Server.


    Ich hatte damals das Problem das Userdaten und Inhaltsdaten in verschiedenen Datenbank lagen und jedes Mal 2 Verbindungen zu öffnen, bei jeder kleinsten Anfrage, brachte dann Performanceprobleme mit sich bzw. war nicht sehr elegant.


    Ich weiss ja nicht welches CMS du auf euerer ClanSeite benutzt, sicherlich liegt dort alles in einer Datenbank und man könnte über diese doppelte Sicherung nachdenken.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!