Frage zur Speicherung von Leveln/Stufen

  • Antworten:6
Mike Hopeman
  • Forum-Beiträge: 31

01.04.2014, 14:59:45 via Website

Hallo,

ich möchte ein Projekt realiseren, eine Art Workout App. Dort sollen verschiedene Levels/Stufen absolviert werden.

Wie kann ich das am Besten in Android implementieren? Ich wollte die Levels (Kategorie, Beschreibung, Dauer, etc.) in einer XML-Datei speichern und dann in Android parsen. In der App speichere ich jedes Training als Aktivität (ähnlich wie bei Runtastic) in einer SQLite Datenbank ab. Die Aktivitäten schreibe ich in eine weitere SQLite Datenbank, die mir zum Loggen der gesamten Aktivitäten dienen.

Ist diese Vorgehensweise okay, oder liege ich damit völlig falsch? Bin leider kein Meister der Datenbanken ;-)

Vielen Dank und beste Grüße, Mike

Antworten
Mac Systems
  • Forum-Beiträge: 1.727

01.04.2014, 15:21:21 via Website

Na die User werden sich bedanken wenn Sie das Phone wechseln und der vorschritt weg ist.
Ich würde mir die Play Games Services (Selbst die benutzt) anschauen.
-> http://developer.android.com/google/play-services/games.html

Windmate HD, See you @ IO 14 , Worked on Wundercar, Glass V3, LG G Watch, Moto 360, Android TV

Antworten
Mike Hopeman
  • Forum-Beiträge: 31

01.04.2014, 15:24:13 via Website

Da hast du natürlich vollkommen Recht, ich habe vergessen zu erwähnen, dass es sich hierbei um ein Projekt meiner Uni handelt.

Es geht also nur um einen Prototypen, der nur auf einem Gerät läuft. Also brauche ich, in meinem speziellen Fall, keine Play Games Services.

Antworten
Mac Systems
  • Forum-Beiträge: 1.727

01.04.2014, 15:31:54 via Website

Und ? Nutz doch die Infrastruktur aus, ausser du hast zuviel Zeit und willst das Rad neu erfinden.

Ansonsten wirst du dich auf jeden Fall mal mit ContentProvider auseinander setzen müssen, evtl. für banale Dinge reichen auch SharedPreferences.

Kleiner einstieg ist z.b das hier -> https://www.grokkingandroid.com/android-tutorial-writing-your-own-content-provider/

Wichtiger ist aber dich zu überlegen welches Schema deine DB haben muss. Man findet zwar oft einfache ein Tabellen content provider aber es gibt auch recht komplexe und du solltest evtl. ein Design erstmal entwerfen und dann überlegen wie du den ContentProvider entsprechend implementierst.

Weiterhin gibt es auch ORM Frameworks für android wie zum GreenDAO (Auch noch nie benutzt). Das Konzept dahin kannst du dir auch mal grob anlesen
und eine Idee davon zu bekommen ob das was wäre.

hth,
Mac

Windmate HD, See you @ IO 14 , Worked on Wundercar, Glass V3, LG G Watch, Moto 360, Android TV

Antworten
Mike Hopeman
  • Forum-Beiträge: 31

01.04.2014, 15:47:50 via Website

Das Handy hat keine SIM-Karte und wird auch nicht über WLAN funken, also muss ich alles "offline" erledigen. Ansonsten würde ich natürlich gerne den Service verwenden, aber das macht ja nur mit Internet Sinn, oder? Achievements und so Zeug brauche ich ja nicht.

Sorry für die dumme Frage, aber warum werde ich mich mit ContentProvider auseinander setzen müssen? Ich habe mir schon den Aufbau meiner SQLite Tabelle überlegt, aber brauche ich den ContentProvider nicht hauptsächlich dann, wenn ich meine Daten mit anderen Applikationen austauschen will? Die verwendeten Tabellen sind sehr überschaubar und haben wenige Spalten.

(Wie gesagt, ich bin da nicht so der Pro in dem Gebiet, daher bin ich um jede Hilfe dankbar ;-) )

Antworten
Mac Systems
  • Forum-Beiträge: 1.727

01.04.2014, 19:21:48 via Website

ok,

du musst dennoch halt zusehen das deine DB Abfragen / Inserts etc vom UI Entkoppelt bleiben. Daher wie schon erwähnt könnte man einen DBAdapter schreiben der dir die Daten liefert und den Zugriff etwas kapselt. Da wäre ggf. ein kleiner ThreadPool und ein callback interface das richtige über das du dann Daten an das UI liefern kannst. Ich würde es zumindest grob dann so angehen.

Ein SQLiteOpenHelper kann dir dann auch ggf helfen das Schema und die DB mit vorab werten zu befüllen.

Windmate HD, See you @ IO 14 , Worked on Wundercar, Glass V3, LG G Watch, Moto 360, Android TV

Antworten