Mein Einsteigerprojekt | Wegweiser zur Herangehensweise [MySQL]

  • Antworten:4
Rick. B.
  • Forum-Beiträge: 5

20.03.2017, 17:43:41 via Website

Hallo liebe AndroidPIT-Community,

ich habe mir ein, für mich speziell angepassten, Einsteigerprojekt zusammengedacht, welche einige Aspekte beinhaltet. Simpel aber nicht zu simpel, nicht abgeschottet von anderen Wissensbereichen, pragmatisch (bereitet mir einen nutzen) und somit stimmt auch die Motivation und das Interesse.

Ich hab allerdings keine Ahnung, vor allem habe ich keine Ahnung wo die Grenzen zwischen verschiedenen Wissensbereichen liegt. Daher bitte ich euch um etwas Direktion, so dass ich meine Recherche präzisieren kann.

Dass ich mit Java arbeiten will und den Einstieg finden will ist wohl klar, jedoch möchte ich direkt auch die Verbindung mit MySQL herstellen. Ich weiß dass es auch zuverlässige lokale Datenbankensysteme gibt, jedoch habe ich ein besonderes interesse für MySQL, da ich es noch für spätere Projekte gut einbauen, vor allem in Verbindung mit Java als "GUI".
Ich möchte also in diesem Projekt mit Java und MySQL arbeiten um anhand eines Konkreten Ziels in die beiden Sprachen einzukommen.

Das Projekt oder die App könnt ihr aus ner Mischung aus Spiel und Aufgabenliste sehen.
Mit Aufgabenliste ist gemeint, dass ich Wiederholende Aufgaben, die jeden Tag, Woche und Monat wiederholt werden, eintragen. Mit dem Spielerischen ist gemeint, dass diese Aufgaben täglich abgehakt werden und die qualität bewertet wird z.B. durch die vergabe von Punkten oder Sternchen^^

Fassen wir mal zusammen.
Ich möchte anhand dieser App direkt mit Java und MySQL hand in hand arbeiten.
Ich möchte gerne Aufgabenlisten Verwalten können und sie abhaken und bewerten.
(Interessant wäre hier zu wissen ob auch eine gewisse "Kalender-Funktion" hinzugefügt werden muss, da ich schon gerne eine Kalendarische Ansicht genießen möchte)

Fällt euch gerade ein oder zwei Tutorials ein, die diesem nahe kommen?
Ansonsten hättet ihr sonstige Tipps für mich?
Sind da noch Schritte die ihr mir empfehlen würdet zu gehen? - ich hab z.b. daran gedacht auszuarbeiten welche "screens" (sagt man doch so oder?) notwendig wären. Wahrscheinlich würde das Struktur und Übersicht bieten.

Vielen Dank fürs lesen, freue mich schon auf euer Feedback.
Angenehme Woche euch, hoffe ihr seid heute gut reingekommen ;)

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

20.03.2017, 19:41:15 via Website

Hallo Rick,
Herzlich wikommen hier im Forum :)



Zuerstmal muss dir klar sein, dass Java zwar vielseitig ist, jedoch ist es vom Handling und vom Code her doch etwas anderes für Android und/oder für Desktop zu entwickeln. Da gibt es vor allem im Lifecycle etc. große unterschiede.

Zuallererst ist es mal wichtig, dass du Java und das OOP Prinzip kennen lernst wenn du dies noch nicht beherrschst.

Sobald du das verstanden hast, kannst du dich an Android herantasten.

Zum anderen ist dann die Struktur wichtig und klärende Fragen:
1. Wie sieht das Datenmodell aus (im Programm und in der DB)
2. Ist die DB auf einem Server und muss per API abgefragt werden oder ist die DB lokal auf dem Gerät (für lokale DBs bietet Android SQLite Support an, dies ist vom SQL Dialekt her relativ gleich zu MySql)
3. Welche Funktionen soll die App haben ( ggf. auch detalierte Ansichten etc..)

Diese Fragen musst du uns jetzt nicht alle beantworten, es ist nur wichtig, dass du während der Planung eine Antwort bzw. vorstellung davon hast.

Ganz ausarbeiten kann man das in den meisten Fällen bei privaten Proejkten eh nicht, denn es fällt einem immer was neues während dem programmieren ein ;).

Wenn du dich mal eingearbeitet hast, wirst du sehen, das sein Vorhaben garnicht so kompliziert ist, wie es (ohne tiefere Kentnisse) erstmal scheint.
Z.b. gibt es für deine Klender Ansicht eine View die zu du entsprechend mit Daten füllen kannst. Du musst also kaum das "Rad neu erfinden"; ;)

Für krokretere Hilfe bitte dann auch konkret nachfragen, aus deiner Beschreibung geht bisher nur hervor, dass du noch nciht ganz sicher bist, wie du anfangen kannst.
Ich hoffe das ist dir hiermit etwas klarer geworden ;)

LG Pascal //It's not a bug, it's a feature. :) ;)

swa00

Antworten
Rick. B.
  • Forum-Beiträge: 5

20.03.2017, 20:39:28 via Website

Hallo Pascal,

danke dir für die erste Hilfestellung! Du hast vollkommen recht, ich habe eine Idee, aber weiß nicht genau wie ich anfangen soll :D

Kennst du das vllt, dass du etwas versuchst auszuarbeiten, dabei eine gewisse Methodig verwendest, die du zwar benutzt aber nicht in Worte fassen kannst, was genau du gerade machst? Quasi so wie wenn du ein 3 Jahre altes Kind aus der Spielrunde holst und nach den Regeln fragst - das Kind kann zwar nach den regeln spielen, ist sich allerdings nicht bewusst wie diese sind xD
Genau das gleich gefühl habe ich auch, was mich in die Richtung Datenbankdesign gebracht hat. Daher auch der Wunsch mit MySQL zu arbeiten. Ich habe auch einige Server zur verfügung die ich gerne dafür nutzen würde.

Ich habe mir eben noch ein paar Video's zum Thema OOP angeschaut. Ganz unbekannt ist mir das Prinzip nicht, allerdings hab ich es nie wirklich komplett verstanden. Mit den Video's fiehl mir ein Vergleich ein, der mich vllt dazu bringt das Konzept zu verstehen.

image

image

Ist nicht im Grunde ein Objekt ein Eintrag (in einer Datenbank?)

D.h. eine Klasse ist eine Tabelle, die spezifische Attribute in variablen vorweist. Die Einträge in eine solche Tabelle wären dann doch theoretisch Objekte?!
Wo nun die Methoden versteckt wären, im vergleich zur Datenbank ist mir gerade nicht schlüssig. Entweder gibt es bestimmte Attribute (Spalten) die Methoden aufweisen oder ...

Oder sind Datenbanken Klassen ohne Methoden?
Könnte man Methoden auch in der Datenbank abspeichern, in Tabellen also Klassen?

Ich bin verwirrt, aber die Fragen wirken sehr interessant und fruchtbar :D

Zum Thema Datenmodell habe ich mir www.heise.de/download/product/papdesigner-51889 heruntergeladen. Hattest du sowas gemeint?
Für mich wäre es interessant zu wissen, was genau vorher feststehen muss und was ich im laufe des Prozess hinzufügen kann, daher hatte ich auch speziell MySQL erwähnt. Ich werde allerdings einfach schon mal anfangen die Funktionen, Ansichten und Klassen herauszuarbeiten.

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

20.03.2017, 21:14:10 via App

Naja Datenbank und Klassen im Programm darfst du nicht in einen Topf werfen ;)

Sehe die DB nur als Datencontainer an in der die Daten gespeichert werden. Mehr ist es nicht.

Eine Klasse bzw. die Instanz davon als Objekt ist viel mehr als nur ein Datencontainer.

Ich greife da immer gerne auf das Beispiel zurück:

Du hast eine Klasse die Auto heißt. Darin definierst du Eigenschaften als Variable die jedes Auto hat.
Z.b. Leistung als Int.Name als String usw.
Diese Klasse ist jetzt die Definition für Objekte.
Objekt heißt du kannst mehrere Instanzen deiner Auto Klasse haben mit unterschiedlichen Daten. Z.b. ist das eine Auto ein Mercedes und das andere ein VW. Beides fällt jedoch unter die Defintion Auto da sie die selben Eigenschaften mit anderen Werten besitzen.
Die Daten kannst du als Tabelle in einer DB abbilden und speichern.

In einem Objekt kannst zu z.b. das Auto mit einer Definierten Methode Fahren() auch fahren lassen. Dabei ändert sich z.b. der Tachsostand etc. alles Dinge die man im Programm errechnen kann in SQL in der DB aber keinesfalls so anwendbar sind.
Somit steckt in der Programmklasse deine Datenverarbeitung und in der DB der einfache Datencontainer.

Vorher feststehen muss im Prinzip nix. Aber wenn man es richtig macht sollte man es vorher Planen. Am anfang wird das nicht funktionieren da man einfach zu wenig in der Materie drin ist um alles strukturiert aufzubauen. Das merkt man erst wenn man eine weile Programmiert hat und dann alten Code anschaut. Da denje ich zumindest meistens was ich mir dabei gedacht habe...

Ich an deiner Stelle würde mich mit deinem Plan so wie er sit erstmal zufrieden geben und versuchen teile umzusetzen. Erst wenn du eingearbeitet bist bekommst du ein "gespühr" dafür wie so ein Datenmodell mit den Entsprechenden Tabellen und Klassen aussehen kann

— geändert am 20.03.2017, 21:18:07

LG Pascal //It's not a bug, it's a feature. :) ;)

swa00

Antworten
pepperonas
  • Forum-Beiträge: 434

22.03.2017, 20:57:57 via Website

Wollte dich nur nochmal bestätigen, dass du grundsätzlich schon die richtige Vorgehensweise hast: erst informieren und dann machen.

Ansonsten hat Pascal schon alles erklärt, vieles kommt mit der Zeit. :)

Open Source

Pascal P.

Antworten