# Allgemeine Fragen zu einer App



## OnDemand (12. Nov 2022)

Hallo zusammen,

bin grad dabei mit Kotlin eine App zu schreiben. Erstmal für Android später mittels Jetbrains Multiplatform Feature, auch für iOs wenn ich das hinbekomme.

Nun spiele ich ein wenig herum und speichere Daten in PropertyFiles usw. Dabei kamen mir schon einige Fragen für die spätere "echte App", vielleicht hat ja jemand guten Input für mich.

1. Ich möchte zb in der App Bestellungen anzeigen. Jeder App Nutzer hat eine Webapp bei mir. Diese Webapp bekommt eine REST API Endpoint um eben die Bestellungen abzurufen (damit man unterwegs sehen kann, was so los ist usw)

*Erste Anforderungen*

*Die App muss eine Benachrichtung senden, wenn eine neue Bestellung rein kommt*
Hier war meine erste Überlegung ein Messagebroker. Könnte man die App aber auch direkt ansprechen irgendwie? Dass die App jede Sekunde beim Server anfragt ob es eine neue Bestellung gibt, find ich doof (Datenvolumen)


*Die Bestellungen soll man in der App alle ansehen*
Hier gibt es die Überlegung ob die App ale Bestellungen speichern soll (redundant, da ja schon auf der Webapp gespeichert) oder einfach jedesmal alle Bestellungen per API geholt werden und die Daten gar nicht persistent gespeichert werden > verursacht aber auch wieder Traffic. 


*Speicherung sensibler Daten*
Wo speichert man am besten sensible Daten (wie die REST Auth Daten)? Genügt es diese private in den Systemproperies zu speichern (andere Apps kommen da ja nicht ran oder lieber per SQLi und verschlüsselt?
Grundsätzlich möchte ich eigentlich keine Daten auf den Geräten der User speichern, da dort keine Backups erfolgen usw. Ich stelle mir vor, dass alles an Daten immer auf der Webapp gespeichert wird und Daten nur mit REST hin nud her geschoben werden. Hier mach ich mir aber so meine GEdanken bezgl. Datenvolumen. Ich kann nicht einschätzen, wie viel Datenvolumen ein JsonObjekt verbraucht. Müsste man erst mal messen. 
Vielleicht könnte man auch einige "Teure" Abfragen nur im WLAN erlauben (ausser der User setzt eine Einstellung, dass ihm das Datenvolumen egal ist)

Würde mich über Anregungen freuen.


----------



## Jw456 (12. Nov 2022)

Zu Punkt 1
Da würde ich FCM (Firebase Cloud Messaging) benutzen. Geht auch unter IOS.
Das ist schon in Android Integriert.
Denn ein Dienst der 24/7 im Hintergrund läuft ist seit neuen in Android sehr schwierig.

Punkt 2
Hier kannst du auch der FCM Nachricht gleich Daten mitgeben oder veranlassen das sie vom Server geholt werden wenn zu groß. Du kannst auch Nachrichten an nur einen oder mehren User senden.

Punkt 3
Da würde ich nur den Hash Wert des PW speichern oder das Auth Token.
Nie das PW in Reinform.


----------



## OnDemand (12. Nov 2022)

Danke, schau ich mir an!


----------



## Jw456 (12. Nov 2022)

Fage Systemproperies was ist das für dich?
Der Bereich /data/data/ Appname oder?
Da kommt ja nur die App selber ran oder Root.

Das Token oder Hash werte würde ich vielleicht als "SharedPreferences" speichern.


----------



## OnDemand (12. Nov 2022)

Ja genau data. Ich werd vermutlich alles in Shared speichern. Eine Datenbank find ich zu übertrieben


----------

