Grundsatzfragen zu meinem neuen Projekt Einnahmen-Ausgaben App

BigMemo007

Aktives Mitglied
Hallo liebes Forum,

ich will ein Projekt (App) realisieren, dass Einnahmen und Ausgaben gegeneinander stellt.

Es soll ein Feld für die Betragseingabe geben, Datumseingabe, zwei Listen (jeweils für Einnahmen und für Ausgaben) und dann ein "Verbuchen"-Button geben. Am Besten alles auf einer Frame. Die Einnahmenliste soll links und die Ausgabenliste soll rechts platziert werden.

Ideal ist der Aufbau der Listen hirarchisch. Z.B sollen Grundsätliche Punkte wie Lebensmittel, Bekleidung, Mobililtät usw Unterpunkte wie Wasser, Hosen, Schuhe, Auto, Fahhrad usw beinhalten. Der User soll mit einem +-Button jeweils eine Untergruppe selber in der Liste erstellen können. Bei Bedarf soll er in der Untergruppe noch eine Untergruppe erstellen können. Das ideal ohne Limit, aber ich glaube das ist unmöglich. 5 Untergruppen villeicht? Hast was geht.

Die App am Besten für Desktop, Android und IOS. Aber IOS und Java wird schwierig. Oder doch nicht?

Was ich kann und was ich habe:

Ich würde behaupten, dass ich in Java nicht mehr ein Anfägner bin, sonder jetzt in Richtung fortgeschrittener Programmierer gehe. Einfach Spiele wie Snake, Vier-Gewinnt usw habe ich selber programmieren können. Und meine IDE ist Eclipse.

So. Meine Fragen sind folgende:

1. Nehme ich Swing oder JavaFX oder doch was anderes?

2. Welche ListenView nehme ich für die Anzeige meiner Listen? (TableView, ListView, usw)

3. Um die Kostenposten zu speichern, welche Collection würdet ihr mir empfehlen. Den kleinsten Teil, z.b eine spezielle Buchung Schuhe, 31,20€ 9.920 habe ich gedacht, packe ich in eine HashMap. Name (Schuhe) mit String, Betrag float und Date für Datum. Die HashMap in eine Arraylist, da alle Buchungen über eine ArrayList zugreifbar werden sollen. Gibt es bessere Lösungen auch in Anbetracht der Unterpunkte?

4. Android soll ja auch bedient werden. Wie nutze ich Eclipse für Android und Desktop? Habt ihr Ratschläge für mich?

Am Ende soll der User mit einem Button "Auswertung" z.B. mit einem Balkendiagramm sein Ergebnis sehen können. Ob er im Plus oder im Minus ist und die größten Kostenposten mit einem Blick erkennen können und entscheiden wie wichtig welche Kosten sind oder ob vermeidbar sind.

Für Hilfen, Ideen, Denkanstöße bin ich immer sehr dankbar.

Meine Hoffnung nach disem Projekt ist, dass ich ein viel besserer Programmierer geworden bin :))
 

BigMemo007

Aktives Mitglied
Webtechnologien sind wahrscheinlich für dieses Vorhaben eh die bessere Lösung. Da müsste ich mich rein arbeiten. Könnte natürlich zwei drei Udemy Kurse reinziehen.
Aber meine Intension ist, Java oder grundsätzlich Programmieren noch besser zu verstehen und würde erstmal Java bevorzugen. Mit Hilfe könnte ich es in Java auch schaffen.
Lassen sich Media Queries über CSS auch über Eclipse in Java einbinden?
 
K

kneitzel

Gast
Also die Idee mit Web-Technologien ist recht gut aus meiner Sicht. Du kannst Dir diesbezüglich z.B. einmal Vaadin ansehen. Sogenannte Progressive Web Apps (PWAs) kann man auf dem Handy im Browser aufrufen und dann gibt es für den Nutzer die Möglichkeit, diese App wie eine App auf dem Handy zu handhaben.

Nachteil ist dabei natürlich, dass es da Abstriche am "native Look" und der Bedienung gibt. Dies ist aber generell der Fall - egal, was man an Cross-Plattform Framework einsetzt.

Weitere Möglichkeiten:
- Wenn man JavaFX nimmt, dann ginge es aber auch mit den in Java geschriebenen Apps. Dazu kannst Du mal bei https://gluonhq.com/ vorbei schauen - speziell dort das Gluon Mobile.
- reine native App Entwicklung für jede Plattform. Desktop wäre dann Swing / JavaFX oder SWT, Android wäre dann entsprechend mit dem Android Studio + Android SDK und für iOS auf dem Mac mittels XCode und Swift. Das war in der Vergangenheit mein Weg, damit eben wirklich entsprechend für jede Plattform exakt alles stimmig ist. Und man hat den großen Vorteil, dass man eben nicht in Probleme rennt weil man Dinge benötigt, die nicht oder nicht in der richtigen Version für die Plattform zur Verfügung stehen. (Was habe ich mich mal eine Zeit lang mit Cordova und Xamarin abgeplagt. Das war ein Horrortrip ... Speziell Xamarin habe ich als ganz miese Lösung in Erinnerung.)
- Wenn man nicht auf Java basieren möchte: Cordova ist ein von vielen HTML / JavaScript / CSS Frameworks. Die Native App ist dann eigentlich nur noch ein abgespeckter Web-Browser mit entsprechender Web-App drin. ==> Aus meiner Sicht durch PWAs abgelöst! Aber wenn man zwingend einen App-Store Eintrag braucht, dann ist das evtl. der Weg, den man gehen möchte ... Da gibt es aber auch noch mehr. Electron wäre so ein Framework für den Desktop - Visual Studio Code nutzt das wohl ....
- C# wäre noch zu nennen mit dem Xamarin. Meine Erfahrung ist, dass Microsoft (bzw. aufgekaufte Firmen) da gute Ideen hatte und immer noch hat, aber die Umsetzung teilweise extrem mangelhaft ist. So ist die Basis das XAML - ein XML Dokument ähnlich dem FXML bei JavaFX. Nur eben deutlich stärker was z.B. Bindings und so angeht. Und das gibt es dann für alle Plattformen: Desktop wäre WPF, Silverlight war ein Browser Plugin (Rest in Peace), Windows Phone 7 / 8 und das ganze Windows 10 Drama mit allen möglichen App-Technologien. Aber Cross Plattform war es nicht. Es brauchte ständig Anpassungen und so. Zu Windows Phone 7 Zeiten habe ich dann z.B festgestellt, dass das TextField unter WP7 in der Funktionalität nicht komplett umgesetzt war (Zeit zu Ende? Entwickler keine Lust mehr gehabt? Wer weiss ...) Also ich würde davon meine Finger lassen ...
- C++ fällt mir direkt QT ein....

Aber die sinnvolle Lösung: Vaadin. Mach eine Web-Applikation daraus. Da kannst Du dann auch schön direkt mit Daten auf einem zentralen Server arbeiten und so ... Also meiner Meinung nach eine Top Sache (Wobei ich das auch nur ausgetestet habe. Damals mit Anforderung, einen Barcode Reader zu haben. Das hat prinzipiell geklappt, aber das war nicht 100% überzeugend (was an meinem Code und den gewählten Abhängigkeiten gelegen haben könnte bzw ich bin sicher, dass es daran lag, weil ich da kein Experte war und auch jetzt nicht bin!) so dass ich das damals als native Android App umgesetzt habe.

Webtechnologien sind wahrscheinlich für dieses Vorhaben eh die bessere Lösung. Da müsste ich mich rein arbeiten. Könnte natürlich zwei drei Udemy Kurse reinziehen.
Aber meine Intension ist, Java oder grundsätzlich Programmieren noch besser zu verstehen und würde erstmal Java bevorzugen. Mit Hilfe könnte ich es in Java auch schaffen.
Lassen sich Media Queries über CSS auch über Eclipse in Java einbinden?

Da schau Dir mal Vaadin an. Da kannst Du viel in Java machen. HTML, JavaScript und CSS kann man auch einbinden / machen, aber das ist nicht zwingend notwendig (aber früher oder später nutzt man es natürlich eh, spätestens, wenn es gut aussehen soll :) )
 

BigMemo007

Aktives Mitglied
Vaadin hört sich sehr interessant an. Habe aber grade dazu Fragen:

1. Kann man Vaadin eine App (Android, IOS, Desktop) so gestalten, dass sie wie eine native aussieht? Ohne dass der Browser komplett geladen wird mit Adresszeile, Menüpunkten, usw., sondern nur die Browserengine startet mit der App?

2. Soll ich mir vor Vaadin ein Tutorial über die Webtechnologien (HTML, CSS, JavaScript, PHP, usw) mir reinziehen?

3. Habt ihr eine gute Tutorial-Empfehlung für Vaarin und ggf. für die Webtechnologien?
 

mihe7

Top Contributor
Das Problem bei einem solchen Projekt ist, dass es beliebig erweiterbar ist :)

Man kann also z. B. mit einer reinen Desktop-Anwendung beginnen, dann überlegt man sich, dass man vielleicht noch Android haben will. Kaum ist das rum, kommt man auf den Trichter, dass es doch schön wäre, wenn die Daten nicht lokal gehalten werden, sondern über das Internet verfügbar wären, dann kommen andere Geräte dazu usw.

Die Frage ist also: was ist Dein Ziel? Wenn Du das machst, um mehr mit Java zu arbeiten, macht es natürlich keinen Sinn, eine PWA zu schreiben, die die Daten lokal auf dem Gerät verwaltet. Wenn die Anwendung selbst im Vordergrund steht und es in erster Linie darum geht, möglichst eine App für Android und iOS zu haben, dann macht es keinen Sinn, sich mit JavaFX oder gar Swing rumzuschlagen. Wenn Du sagst, eigentlich will ich alles haben, dann kannst Du natürlich auch beides machen. Möglichkeiten gibt es mehr als genug.

Selbstverständlich lassen sich verschiedene Ansätze kombinieren, z. B. ein Java-Backend, auf das mit verschiedenen Clients zugegriffen werden kann. So könntest Du einen Web-Client, einen Android-Client (nativ) und eine Desktop-Anwendung schreiben. Alleine bei Web-Clients gibt es gefühlt mehr Möglichkeiten als Menschen auf dem Planeten.

Beispielsweise käme es bei den Web-Clients wieder darauf an, ob Du Hintergrundwissen erlangen, etwas ausprobieren oder fit für die Arbeitswelt werden willst? Sprich: ohne Framework, irgendein abgefahrenes Framework oder das, was aktuell am Markt gefragt ist? Hat alles seine Vor- und Nachteile.
 
K

kneitzel

Gast
Also wie das aussehen würde mit einer PWA kannst Du recht gut ausprobieren: https://labs.vaadin.com/business/

Also einfach mal mit einem Browser auf verschiedenen Geräten aufrufen. Nach dem Aufruf sollte dich ein Smartphone fragen, ob es die App installieren soll. So lief es zumindest auf meinem Android und iOS Gerät.
Wenn Du die App installiert hast, dann kannst Du den Browser zu machen und die App starten. Und dann hast Du natürlich keine Elemente des Browser mehr wie die Adresszeile und so ...

Wenn Du meinst, dass Vaadin etwas ist, das Dich interessiert, dann wäre vaadin.com der erste Anlaufpunkt für mich. Da findet sich viel Dokumentation. Die Trainings-Videos sind aber größtenteils nicht frei (Die ersten einer Serie in der Regel, also evtl. brauchbar für einen ersten Überblick / Start) - die hat man erst, wenn man etwas Geld in die Hand nimmt. Aber das sollte nicht notwendig sein, denn es gibt genug Dokumentation, Beispiele, ... Und auch ein freies eBook. Also da einfach mal auf der Seite etwas austoben. Das erste Trainings Video, das frei ist, gibt evtl. auch einen guten und schnellen Einstieg - um überhaupt erst einmal erkennen zu können, ob es das ist, was man will.

Generell würde ich dann ruhig erst einmal bei Vaadin einsteigen. Aber immer wenn Du Dinge brauchst, die Neu für Dich sind oder in denen Du nicht sicher bist, dann wäre mein Tipp: Schritt zurück und diese Sache erarbeiten. Also nicht versuchen, im aktuellen Projekt das irgendwie "zum laufen zu kriegen" ohne die Technologie verstanden zu haben! Technologien sollten meiner Meinung nach bei Bedarf immer ausreichend angelesen / ausgetestet werden, damit man sie dann richtig einsetzen kann.
 

BigMemo007

Aktives Mitglied
Vielen Dank an euch. Werde mich mit diesen Technologien auf jedene Fall beschäftigen. Doch will ich meine Lösung ersteinmal mit JavaFX hinkriegen. Wenn ich das geschafft habe, denke ich, dass ich mein Programm soweit verstanden habe und auch diese auf andere Technologien oder Plattformen einfacher übertragen kann.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Erste Schritte Grundsatzfragen Unterschied Java / PHP Java Basics - Anfänger-Themen 6
B Paar kleine Grundsatzfragen zu Java Java Basics - Anfänger-Themen 5
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
P Wie kann ich beispielsweise Speicherstände eines Spiels DAUERHAFT in meinem Programm speichern? Java Basics - Anfänger-Themen 3
D Anfängerfrage zu meinem Programm. Java Basics - Anfänger-Themen 15
httprt Probleme bei dem erstellen von leveln in meinem Spiel Java Basics - Anfänger-Themen 2
J Frage zu meinem Code (OOP) Java Basics - Anfänger-Themen 4
NadimArazi Wie kann ich eine collision detection für die Paddles in meinem Pong Programm hinzufügen? Java Basics - Anfänger-Themen 4
A wie kann ich es in meinem Programm rein tun Java Basics - Anfänger-Themen 8
C konstruktiver Kritik zu meinem Lösungsansatz Java Basics - Anfänger-Themen 22
E extern Datei von meinem Computer aufmachen Java Basics - Anfänger-Themen 5
J Erste Schritte Was mache ich in meinem Code falsch. Java Basics - Anfänger-Themen 3
W Wo ist der Wurm in meinem Grundverständnis von Klassen? Java Basics - Anfänger-Themen 22
K Wie kontrolliere ich ob ich die Zahl in meinem Array schon hab? Java Basics - Anfänger-Themen 9
K Error bei meinem Programm - Hilfe Java Basics - Anfänger-Themen 8
R Was muss ich an meinem Code ändern? Java Basics - Anfänger-Themen 2
S Hilfe bei meinem Code [Schleife]? Java Basics - Anfänger-Themen 5
M Problem mit meinem Programm Java Basics - Anfänger-Themen 6
W Dezimalzahl in Binär umwandeln - Was sollte ich an meinem Programm verbessern? Java Basics - Anfänger-Themen 5
W Wie ziehe ich positive ungerade Zahlen von meinem Hauptwert ab? Java Basics - Anfänger-Themen 17
V Operatoren Was will mir die Tabelle in meinem Lehrbuch sagen? (logische Operatoren) Java Basics - Anfänger-Themen 4
N Problem bei meinem Code Java Basics - Anfänger-Themen 10
P Erste Schritte Bitte ein paar Erklärungen zu meinem Code Java Basics - Anfänger-Themen 6
H OOP, wie gehts richtig? (Beispiel von meinem Prof) Java Basics - Anfänger-Themen 6
H IOException in meinem Programm Java Basics - Anfänger-Themen 7
K Frage zu meinem ersten Programm Java Basics - Anfänger-Themen 5
K Frage zu meinem Programm Java Basics - Anfänger-Themen 25
F Methoden Kleines Problem mit meinem Glücksrad... Java Basics - Anfänger-Themen 9
O Wert in einer URL hinzufügen (in meinem Beispiel Google) Java Basics - Anfänger-Themen 7
M Wo ist der Fehler in meinem Programm? Java Basics - Anfänger-Themen 12
G Welche Java-Version auf meinem Rechner? Java Basics - Anfänger-Themen 2
D Keine Ausgabe in meinem Helden Programm Java Basics - Anfänger-Themen 2
M kurze frage zu meinem Code ... Java Basics - Anfänger-Themen 3
S Wie ist folgender Kommentar in meinem Ant file zu verstehen..? Java Basics - Anfänger-Themen 0
N Frage zu meinem Calculator Java Basics - Anfänger-Themen 6
D Verschiedene Fragen zu meinem Projekt Java Basics - Anfänger-Themen 6
F Hilfe bei meinem Spiel Java Basics - Anfänger-Themen 3
X Datentypen Probleme mit Char bei meinem 1. Spiel Java Basics - Anfänger-Themen 20
F Wie rechne ich bei meinem Code, die Wahrscheinlichkeit von Fall X aus? Java Basics - Anfänger-Themen 3
D Problem mit meinem ersten JOptionPane - Fatal exception occurred. Program will exit. Java Basics - Anfänger-Themen 6
K Hilfe, komme nicht weiter in meinem JAVA-Spiel Java Basics - Anfänger-Themen 3
C ArrayIndexOutOfBoundsException bei meinem ersten objektiorientierten Programm Java Basics - Anfänger-Themen 4
H frage zu meinem quellcode Java Basics - Anfänger-Themen 10
B Wo ist der Fehler in meinem Script Java Basics - Anfänger-Themen 4
Gonzalez Eingabe des Benutzers mittels readLine()-Methode. Klappt in meinem Beispiel nicht! Java Basics - Anfänger-Themen 7
M Fehler in meinem Quicksort! Java Basics - Anfänger-Themen 21
JeromeM90 Problem bei meinem Programm : Lottozahlen Java Basics - Anfänger-Themen 30
S Was ist falsch an meinem Rechner? Java Basics - Anfänger-Themen 7
S Ich habe ein kleines Problem mit meinem Übungsprogramm Java Basics - Anfänger-Themen 7
N NullPointerException bei meinem AbstractListModel Java Basics - Anfänger-Themen 4
G Brauche eure Hilfe bei meinem Programm Java Basics - Anfänger-Themen 4
A Ä;Ö;Ü warum geht das nicht mit meinem Konsolenprogramm ? Java Basics - Anfänger-Themen 5
A Java I/O Probleme mit meinem Encypter. Java Basics - Anfänger-Themen 6
S was ist in meinem code falsch? Java Basics - Anfänger-Themen 2
M brauche hilfe bei meinem Taschenrechner mit dem "-&quot Java Basics - Anfänger-Themen 4
G fibonacci was stimmt an meinem code nicht? Java Basics - Anfänger-Themen 2
C Zugriff auf Datein in meinem jar File Java Basics - Anfänger-Themen 23
D frage zur meinem objekt. sinnvolle objektmethode Java Basics - Anfänger-Themen 3
megachucky Problem bei meinem Videothek-Programm Java Basics - Anfänger-Themen 5
K komme in meinem stammchat nicht rein. Java Basics - Anfänger-Themen 6
megachucky Was kann ich besser / sinnvoller machen bei meinem code Java Basics - Anfänger-Themen 7
G Was is falsch mit meinem program? (stringvergleich-problem) Java Basics - Anfänger-Themen 8
J Probleme mit meinem Taschenrechner Java Basics - Anfänger-Themen 2
A Daten aus einer HashMap aus einer DB speichern und mit neuen Werten vergleichen Java Basics - Anfänger-Themen 8
V Die Funktion des neuen Schlüsselworts in Java Java Basics - Anfänger-Themen 1
A JTextArea entfernen und durch neuen Text ersetzen Java Basics - Anfänger-Themen 8
L Ordner in neuen erstellten Ordner erstellen Java Basics - Anfänger-Themen 12
B Alle Links in einem Text suchen und ersetzen mit einem neuen Link Java Basics - Anfänger-Themen 18
N Wie lerne ich neuen Code zu benutzen? Java Basics - Anfänger-Themen 6
M Erste Schritte Neuen Frame nur einmal offen haben Java Basics - Anfänger-Themen 6
B MySQL starten / stoppen -> Stoppen erzeugt neuen Prozess Java Basics - Anfänger-Themen 0
W Klassen [GELÖST] Objekte während der Laufzeit mit neuen veränderten Werten beliebig oft initialisieren Java Basics - Anfänger-Themen 2
J Variablen String neuen Wert zuwesein Java Basics - Anfänger-Themen 6
J Welche Methoden laufen im neuen thread ?? Java Basics - Anfänger-Themen 9
O Java Erzeugung von neuen Objekten Java Basics - Anfänger-Themen 1
M Neuen Ordner im Überverzeichnis erstellen, und dadrin arbeiten Java Basics - Anfänger-Themen 4
S Wie bestehende Excel-Einträge mit neuen Vergleichen (mit Apache POI)? Java Basics - Anfänger-Themen 0
J Int Array und String in einer neuen Methoder übergeben Java Basics - Anfänger-Themen 7
1 Neuen Datentyp für rationale Zahlen als Klasse entwickeln Java Basics - Anfänger-Themen 20
T Alte Einträge im Array werden von neuen überschrieben Java Basics - Anfänger-Themen 5
kaoZ Android Programmierung / Erstellen einer neuen Instanz Java Basics - Anfänger-Themen 2
R Problem beim erstellen eines neuen Klassenobjekts Java Basics - Anfänger-Themen 2
T Threads Neuen Thread nicht aus main-Methode starten Java Basics - Anfänger-Themen 3
C Probleme mit neuen Objekten Java Basics - Anfänger-Themen 3
L warum werden nicht die neuen Point Daten der Zeile 25 beim ausprinten Zeile 28 übernommen ? Java Basics - Anfänger-Themen 8
J Klassen wie würde das in einer neuen class aussehen Java Basics - Anfänger-Themen 6
F erstellen einer neuen methode für das Zeichenfenster Java Basics - Anfänger-Themen 4
S Input/Output Neuen InputStream System.in setzen Java Basics - Anfänger-Themen 11
J Datentypen List - gleiche Einträge bei neuen Objekten Java Basics - Anfänger-Themen 31
J neuen jFrame öffnen per buttonklick Java Basics - Anfänger-Themen 3
R Button soll neuen Frame öffnen Java Basics - Anfänger-Themen 21
K Methode überschreiben - neuen Fehler Werfen? Java Basics - Anfänger-Themen 6
S Einen neuen String ohne Array oder List erzeugen??? Java Basics - Anfänger-Themen 13
E Keine neuen Beiträge Mit JavaMachine Datei vom Host in den Ram des Host laden. Java Basics - Anfänger-Themen 4
L Bei Click Neuen Tab Fenster öffnen Java Basics - Anfänger-Themen 8
L Textzeilen nach 2 Wörtern untersuchen wenn vorhanden Zeile in neuen Text ausgeben wenn nicht löschen Java Basics - Anfänger-Themen 10
R Array eines neuen Typen erstellen und befüllen Java Basics - Anfänger-Themen 2
I Integer neuen wert zuweisen Java Basics - Anfänger-Themen 2
I Color-Objekt neuen Wert zuweisen Java Basics - Anfänger-Themen 3
O Neuen Blackberry 8800 oder Curve gegen kleines Programm Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben