Hallo,
für das Studium habe ich die Aufgabe eine App zu schreiben.
Einen mobilen Einkaufszettel. Dieser kann die typischen Aufgaben erledigen. Einträge erstellen, löschen, updaten (CRUD).
Einzige Besonderheit: Bei der Eingabe des Produktnamens soll ein Textvervollständigungsmenü aufploppen. Dieses Menü zeigt passende Einträge an, die man schonmal in die Liste eingetragen hat.
Dem Prof sind einhalten der Separation of Concern, Software-Design, MVVM, angemessene Datenstrukturen und so weiter sehr wichtig.
Der Fokus auf dem Design ist ihm deutlich weniger wichtig. ("Es sollte stimmig sein. minimal ansprechendes (sinnvolles) graphisches Design")
Ich habe meine App auf Gitlab hochgeladen und würde die Experten bitten mal drüber zu schauen. Wichtig wäre mir ob ihr einen groben Schnitzer/Verstoß gegen ein Pattern oder eine Sache die man viel eleganter lösen könnte findet.
Gerne könnt Ihr die App auch ausführen. Es liegt eine Room DB zugrunde und als AVD Device eignet sich am besten ein Pixel 2. Warum das Pixel 2, dazu komme ich später nochmal zurück.
Zu meinen Fragen:
1. Ich habe ein ListView. Und bei Klick auf ein bestimmtes Item, wird dieses im Bearbeitungsmodus geöffnet. Um die Infos des Objekt in der neuen Activity zu haben, gibt es mehrere Wege. Ich habe es mit Parcelable und Intent gelöst. Man könnte auch eine DB Abfrage machen, wenn man die Id per Intent übergibt. Was wäre der beste Weg? Parcelable oder DB-Abfrage? In meinem Use-Case spielt das eine untergeordnete Rolle, da man nie mehr als 50 Einträge gleichzeitig haben wird.
2. Warum ein Pixel 2? Dem Prof ist das Design nicht so wichtig. Und das Pixel 2 passt von den Maßen sehr gut zu meinem Test-Device (Galaxy S5). Leider ist es so wenn ich es auf meiner Hardware ausführe, das die EntryActivity sehr verschoben wird (Speichern Button im Landsscape wird garnicht angezeigt). Wie müsste man das Layout umschreiben, dass es auf beiden Geräten gleich aussieht? Responsive für alle Smartphone-Größen brauche ich nicht.
Dazu verstehe ich eine Sache nicht. Im Layout-Preview habe ich das Pixel 2 eingestellt, das AVD ist auch ein Pixel 2. Ich musste das "Menge"-Feld extra versetzt anbringen, damit es auf dem AVD bündig zu den anderen Feldern erscheint. Warum?

3. Zu guter Letzt möchte ich den Code noch refactorn. Abschnitte in Funktionen auslagern, etc. Unteranderem möchte ich gerne viele Warning von Android Studio auflösen (Lambda Ausdruck statt anonyme Klasse, etc). Auch die Ressourcen reinigen. Bei sämtlichen String-Werten im Layout eine Verweis auf eine Id einbauen.
Gibt es da einen Weg, das möglichst automatisch zu machen? Bzw ohne das ich jedes Warning einzeln durchgehe?
Vielen Dank.
mfg werdas34
für das Studium habe ich die Aufgabe eine App zu schreiben.
Einen mobilen Einkaufszettel. Dieser kann die typischen Aufgaben erledigen. Einträge erstellen, löschen, updaten (CRUD).
Einzige Besonderheit: Bei der Eingabe des Produktnamens soll ein Textvervollständigungsmenü aufploppen. Dieses Menü zeigt passende Einträge an, die man schonmal in die Liste eingetragen hat.
Dem Prof sind einhalten der Separation of Concern, Software-Design, MVVM, angemessene Datenstrukturen und so weiter sehr wichtig.
Der Fokus auf dem Design ist ihm deutlich weniger wichtig. ("Es sollte stimmig sein. minimal ansprechendes (sinnvolles) graphisches Design")
Ich habe meine App auf Gitlab hochgeladen und würde die Experten bitten mal drüber zu schauen. Wichtig wäre mir ob ihr einen groben Schnitzer/Verstoß gegen ein Pattern oder eine Sache die man viel eleganter lösen könnte findet.
Gerne könnt Ihr die App auch ausführen. Es liegt eine Room DB zugrunde und als AVD Device eignet sich am besten ein Pixel 2. Warum das Pixel 2, dazu komme ich später nochmal zurück.
Zu meinen Fragen:
1. Ich habe ein ListView. Und bei Klick auf ein bestimmtes Item, wird dieses im Bearbeitungsmodus geöffnet. Um die Infos des Objekt in der neuen Activity zu haben, gibt es mehrere Wege. Ich habe es mit Parcelable und Intent gelöst. Man könnte auch eine DB Abfrage machen, wenn man die Id per Intent übergibt. Was wäre der beste Weg? Parcelable oder DB-Abfrage? In meinem Use-Case spielt das eine untergeordnete Rolle, da man nie mehr als 50 Einträge gleichzeitig haben wird.
2. Warum ein Pixel 2? Dem Prof ist das Design nicht so wichtig. Und das Pixel 2 passt von den Maßen sehr gut zu meinem Test-Device (Galaxy S5). Leider ist es so wenn ich es auf meiner Hardware ausführe, das die EntryActivity sehr verschoben wird (Speichern Button im Landsscape wird garnicht angezeigt). Wie müsste man das Layout umschreiben, dass es auf beiden Geräten gleich aussieht? Responsive für alle Smartphone-Größen brauche ich nicht.
Dazu verstehe ich eine Sache nicht. Im Layout-Preview habe ich das Pixel 2 eingestellt, das AVD ist auch ein Pixel 2. Ich musste das "Menge"-Feld extra versetzt anbringen, damit es auf dem AVD bündig zu den anderen Feldern erscheint. Warum?

3. Zu guter Letzt möchte ich den Code noch refactorn. Abschnitte in Funktionen auslagern, etc. Unteranderem möchte ich gerne viele Warning von Android Studio auflösen (Lambda Ausdruck statt anonyme Klasse, etc). Auch die Ressourcen reinigen. Bei sämtlichen String-Werten im Layout eine Verweis auf eine Id einbauen.
Gibt es da einen Weg, das möglichst automatisch zu machen? Bzw ohne das ich jedes Warning einzeln durchgehe?
Vielen Dank.
mfg werdas34