German Benötige Tipps für den Design

Sinan Tuzcu

Well-Known Member
Licensed User
Longtime User
Hallo,

seit zwei Wochen, versuche ich mir einen APP zu basteln, mit der ich meine Hausautomatisierung-Modul ansteuern kann.

Die Funktionen, wie Netzwerkeinstellungen und Relais Ein- bzw. Ausschalten sind bereits da und funktionieren auch.

Meine Frage ist, wie könnte ich vom Design her das ganze clever gestellten.
Die APP soll eine Startseite haben, anschließend soll es zu den Netzwerkeinstellungen gehen und dann nach dem man das getan hat, soll die Hauptseite öffnen.

Nun sind es aber nicht viele Elemente für die Netzwerkeinstellungen, da schaut es auch nicht so schön aus, wenn ich da eine volle Seite dafür nehme.

Ich habe keinen schimmer, wo ich was platzieren soll.

Gibt es jemand da draußen, der mir eine Vorlage an Design anbieten könnte?
Oder mir ein paar Tipps geben würde, wie ich das gestallten sollte?

Danke im Voraus
Sinan
 

DonManfred

Expert
Licensed User
Longtime User
Ich gebe dir nun zum dritten mal den Hinweis dir mal die ganzen Videos von Erel anzuschauen.
Unter anderem ist da auch Design ein Thema.
https://www.b4x.com/etp.html
 

MarkusR

Well-Known Member
Licensed User
Longtime User
Ich würde die Einstellungen als separates Activity Fenster machen, ob da wenig oder viel drin ist ist doch egal.
Wenn es zu viel wird mach es scrollbar.
Zwischen den Fenster wechseln geht mit StartActivity, anstonsten über die Back Taste.
Die Einstellungen würde ich öffnen wenn noch keine gemacht wurden oder per Menu Icon.
Für die Hausautomatisierung Funktionalität würde ich ein CustomView nutzen, also ein eigenes UserControl.
Guck doch einfach mal andere Apps zu dem Thema in Google Play Store an.
 

Sinan Tuzcu

Well-Known Member
Licensed User
Longtime User
Zwischen den Fenster wechseln geht mit StartActivity, anstonsten über die Back Taste.
Muss ich oder sollte ich bevor ich den StartActivity starte den aktuellen Activity schließen (Activity.Finish)?
 

MarkusR

Well-Known Member
Licensed User
Longtime User
Ich meine das Activity.Finish lößt ein Event aus nach der Sub.
Ich habe es nach StartActivity aufgerufen.
Ist leider nicht in der Online Anleitung erklärt.
 

MarkusR

Well-Known Member
Licensed User
Longtime User
Achso, ich dachte Du meintest vor oder nach StartActivity.
Einfach gesagt wenn Du nicht mit der Back Taste da wieder landen möchtest schließe es.
Wenn Du vom Einstellungs Fenster weiter springen würdest , dann würde die Back Taste wieder zu den Einstellungen gehen und das ist doof.
Ich meine wenn Du nur Activity.Finish benutzt müßtest du im Fenster zuvor landen.
 

pucki

Active Member
Licensed User
Longtime User
Ich liebe panels ;)

Damit kann man immer alles machen. Ich würde dir raten deine Netzwerkeinstellungen und alles was so aussieht wie Einstellungen in ein extra Panel zu machen. Viele Apps und Seiten benutzen dazu ein kleines Zahnrad oder wenn es die App erforderlich macht ein Menü-Punkt. Meine Apps haben eh Funktions bedingt Menüs so das ein Punkt mehr auch nix ausmacht.

Scrollen eines Fenster mag ich nicht. Lieber Gruppen bilden die logisch aufgebaut sind. Beim scrollen einen Fenstern mit Einstellungen kommt es sehr häufig zu Fehlreaktionen. Damit meine ich das man versehentlich ein Schalter umlegt den man nicht will.

Bei einer Home-Automations-App. würde ich wie folgt vorgehen. Auf der Startseite die einzelnen Räume auflisten mit ein Button. Beim klick auf den Button die Seite mit den Funktionen für diesen Raum auflisten. Und nicht vergessen. Ein Button mit den Text "ganzes Haus". Dies ist wichtig wenn man ein Haus verlässt und dann ein Sequenz auslöst die z.b. in ALLEN Räumen das Licht ausmacht.

Kleiner Tipp am Rand. Arbeite immer mit Rückmeldungen. Besonders wenn es sich um ein privates System ohne Internet handelt. (Stichwort : ESP 8266 ;) ).
Beispiel : sende ein Befehl an des Modul und warte auf die Antwort. Nur dann kannst du sicher sein, das der Befehl ausgeführt wurde. Und sende KEINE logischen Schaltbefehle sondern direkte Anweisungen. z.b. "Wohnzimmer Licht aus" oder "Wohnzimmer Licht an". Auf die Weise verhinderst du, das ein nicht empfangener Befehl die Sequenz durcheinander bringt.

Grundsätzlich gilt. Das wichtigste zuerst auf den Startbildschirm. Einstellungen immer klein machen. Die braucht man wenn alles gut geht. 1 x und nie wieder.

Ich hoffe das ich deine Frage richtig verstanden habe, und dir einige Tipp gegeben habe.

*edit* Was die Back-Taste angeht so lies dir mal diesen Thread durch.
https://www.b4x.com/android/forum/t...-abfangen-der-zurück-taste.96672/#post-609945
Das macht das Leben viel einfacher und die App schneller. Grund. Die Back-Taste wird über eine globale Variable gesteuert. Ich kann also sie benutzen zum zurückspringen. Aber verhindere gleichzeitig das ich aus der App fliege, bzw. die App von Bildschirm verschwindet wenn ich zu schnell oder zu viel gedrückt habe.


Gruß

Pucki

ps.: Eine 100 % Internet unabhängige Version einer Hausautomation ist einer meiner nächsten Projekte. Soll sogar mit Sprachsteuerung sein.
 
Last edited:

MarkusR

Well-Known Member
Licensed User
Longtime User
Bei der Hausautomatisierung würde sich auch Spracherkennung anbieten die Android schon eingebaut hat.
Knopf drücken -> Wohnzimmer Licht An.
Eine Draufsicht der Wohnung wäre auch gut als visuelle Info.
 

pucki

Active Member
Licensed User
Longtime User
So sehen die Einstellungen aus in einer App von mir, so als Anregung

Perfekt Alexander wenn man es nicht scrollen muss. ;)
Bei mehr würde ich einfach ein Reiter drüber machen oder Gruppenlisten.

Nur eine Frage dazu. Mit welchen Modul machst du die Schalter. ??

Gruß

Pucki
 

pucki

Active Member
Licensed User
Longtime User
Bei der Hausautomatisierung würde sich auch Spracherkennung anbieten die Android schon eingebaut hat.
Knopf drücken -> Wohnzimmer Licht An.
Eine Draufsicht der Wohnung wäre auch gut als visuelle Info.

jein. Die ist leider Internet abhängig. Jedenfalls reagiert mein Handy nicht auf Sprache wenn die "mobilen Daten" abgeschaltet sind. Ich kann nämlich nicht wählen lassen.

Gruß

Pucki
 

Alexander Stolte

Expert
Licensed User
Longtime User
Nur eine Frage dazu. Mit welchen Modul machst du die Schalter. ??
mit den B4XFloatTextField aus der XUI View Bibliothek, da es die App auch für IOS gibt und ich das Layout per code generiere und ich zu Faul bin alles doppelt zu machen und es so auch einfacher ist direkt cross platform zu programmieren.

Bei mehr würde ich einfach ein Reiter drüber machen oder Gruppenlisten.
Es ist ne Liste, ich wollte es eigentlich so machen, dass man die Gruppen auf und zu klappen kann, aber so viel Aufwand sind mir die Einstellungen doch nicht Wert gewesen :rolleyes:
 

pucki

Active Member
Licensed User
Longtime User
mit den B4XFloatTextField aus der XUI View Bibliothek,:rolleyes:

Danke für die Info. Ich code nur nebenbei. Und ich habe erst 5 Apps fertig. Allerdings alle für meinen Privatgebrauch. Jedes mal wenn ich eine neue App mache, suche ich nach den passenden Biblotheken. Das dauert oft länger als das coden selbst. Kein Witz.

Und was das Design im Layout angeht. Da kann ich dir nur Recht geben. Ich mache inzwischen auch viel mehr im Code aus in Designer. Wie gesagt ich liebe Panels. ;) Einfach alles in einen zusammenbauen. Und dann mit "visible" anzeigen oder halt nicht.

Gruß

Pucki
 

MarkusR

Well-Known Member
Licensed User
Longtime User
jein. Die ist leider Internet abhängig. Jedenfalls reagiert mein Handy nicht auf Sprache wenn die "mobilen Daten" abgeschaltet sind. Ich kann nämlich nicht wählen lassen.

Gruß

Pucki

Spracheinhabe geht bei mir ohne Internet. kein WLAN und Daten über Mobil aus.

B4X:
'Class Name MyVoice
Sub Class_Globals
    Private Voice1 As VoiceRecognition 'Phone library
End Sub

'Initialisiert das Objekt. Falls nötig kannst du Parameter zu dieser Methode hinzufügen.
Public Sub Initialize
    Voice1.Initialize("Voice1")
    Voice1.Language="de"
End Sub

public Sub RecognizeVoice As ResumableSub
    Voice1.Listen
    Wait For Voice1_Result (Success As Boolean, Texts As List)
    If Success And Texts.Size > 0 Then      
        Return "" & Texts.Get(0)
    End If
    Return ""
End Sub

B4X:
Sub ButtonNoteVoice_Click

    Dim Voice1 As MyVoice
    Voice1.Initialize

    Wait For (Voice1.RecognizeVoice) Complete (Result As String)
    EditTextNote.Text= Result
   
End Sub
 

pucki

Active Member
Licensed User
Longtime User
Wie hast du dein Handy eingestellt. ?

Weil ich kann nicht einmal normal wählen lassen ohne mobile Daten AN. (unabhängig von B4x). Ich hab ein Samsung A5(2017).

Gruß

Pucki
 

pucki

Active Member
Licensed User
Longtime User
Danke für den Code. Wieder einen neue Biblothek gelernt. ;)

Gruß

Pucki
 

Alexander Stolte

Expert
Licensed User
Longtime User
Jedes mal wenn ich eine neue App mache, suche ich nach den passenden Biblotheken. Das dauert oft länger als das coden selbst.
Mein Motto: gibt es was nicht, dann mache ich mir halt ein eigenes View.
Mir ist es wichtig das etwas Plattform übergreifend funktioniert, ich will so wenig Aufwand wie möglich haben, es gab keinen Pin Lock für IOS der mir gefallen hat, ich wusste zwar, dass DonManfred eine Bibliothek für Android gemacht hat, aber die läuft ja leider nicht auf IOS. Also hab ich 6 Stunden Investiert und hab halt eines selber gemacht.

Und was das Design im Layout angeht. Da kann ich dir nur Recht geben. Ich mache inzwischen auch viel mehr im Code aus in Designer. Wie gesagt ich liebe Panels. ;) Einfach alles in einen zusammenbauen. Und dann mit "visible" anzeigen oder halt nicht.
Panels sind eine schöne Erfindung :D
 
Top