Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Delphi XE6 - Multi Device Entwicklung (https://www.delphipraxis.net/180430-delphi-xe6-multi-device-entwicklung.html)

erich.wanker 20. Mai 2014 13:15

Delphi XE6 - Multi Device Entwicklung
 
Hallo Leute,

ich hab mir die kurze Demo von Delphi XE6 betreffend "Multi Device Entwicklung" angeschaut ...

.. so wie es ausschaut kann ich ein und das selbe Projekt für verschiedene Endsysteme kompilieren :-)


FRAGE 1:

Wie schauts mit diversen Bildschirmgrößen aus? .. ich meine jetzt nicht die PIXEL .. sondern die echte Größe eines Bildschirms in Zentimeter ... kleines Smartphone, großes Smartphone, Tablet, extrem großer Touchbildschirm .. da sollte das Userinterface ja jedes mal anders ausschauen ... ist "PixelsPerInch" die richtige Angehensweise und funktioniert das auf JEDEM Device (Android,iOS, Windows..)

Anhand der Größenangabe in Zentimeter müsste ich dann alle userinterface-componenten zur Laufzeit erstellen.

Ich stell mir das so vor:

Botton1: immer darstellen
Botton2: immer darstellen
Botton3: nice to have
Botton4: nice to have
...

Wenn das Programm gestartet wird und der Bildschirm ist 8 x 13 cm / 800 x 1300 px groß, dann wird Button1 und Button 2 erzeugt - jeder in der Größe von 400 x 300 px (untereinander dargestellt) und div. Details werden nicht dargestellt - Somit ideal für Finger optimiert.

Wenn das Programm gestartet wird und der Bildschirm ist 90 x 70 cm / 1280 x 960 px groß, dann wird Button1 Button2 Button3 und Button4 erzeugt - jeder in der Größe von 200 x 150 px (nebeneinander dargestellt) und div. Details werden dargestellt - somit für Maus optimiert.

Ein Userinterface, das sich selbst optimiert .. dafür brauch ich aber die Zentimeter des Bildschirms .. die Pixel sagen ja nicht aus wie groß ein Butten sein sollte ...

P.S.: Meine Annahme ist:
Kleiner Bildschirm = Smartphone
Mittlerer Bildschirm = Tablet
Großer Bildschirm = Computersystem mit Maus und Tastatur
..was zwar nicht immer stimmt - aber man kann ja in der Software Optionen für die Darstellung des Userintrafces anbieten ;-)

FRAGE 2:

ich hab auf einigen Server eine Firebird 2.1 (teilweise 2.5) Datenbank auf Port 3050 laufen ..
Kann ich eine kleine Android-App schreiben - die dann auf die bestehende Firebird Datenbank zugreifen kann?
per lokalem WLAN?
per Internet ? <- Gefahren, wenn ich Port 3050 auf den Server nach außen hin freigebe?
.. reden wir da von FireDAC ?

Vielen Dank für Infos und schöne Grüße aus dem Gasteinertal :-)
Erich

RWarnecke 20. Mai 2014 13:45

AW: Delphi XE6 - Multi Device Entwicklung
 
Zitat:

Zitat von erich.wanker (Beitrag 1259516)
Wenn das Programm gestartet wird und der Bildschirm ist 8 x 13 cm / 800 x 1300 px groß, dann wird Button1 und Button 2 erzeugt - jeder in der Größe von 400 x 300 px (untereinander dargestellt) und div. Details werden nicht dargestellt - Somit ideal für Finger optimiert.

Wenn das Programm gestartet wird und der Bildschirm ist 90 x 70 cm / 1280 x 960 px groß, dann wird Button1 Button2 Button3 und Button4 erzeugt - jeder in der Größe von 200 x 150 px (nebeneinander dargestellt) und div. Details werden dargestellt - somit für Maus optimiert.

Wie kommst Du zu dieser Annahme ?

Zitat:

Zitat von erich.wanker (Beitrag 1259516)
P.S.: Meine Annahme ist:
Kleiner Bildschirm = Smartphone
Mittlerer Bildschirm = Tablet
Großer Bildschirm = Computersystem mit Maus und Tastatur
..was zwar nicht immer stimmt - aber man kann ja in der Software Optionen für die Darstellung des Userintrafces anbieten ;-)

Das kannst Du nicht so verallgemeinern. Es gibt Handys mit 4 Zoll und 5 Zoll. Tablets mit 7,8 und 10 Zoll. Des weiteren ist eine App auf Android und/oder iOS immer anders aufgebaut als bei einem reinen Windows-Programm.

Zitat:

Zitat von erich.wanker (Beitrag 1259516)
FRAGE 2:

ich hab auf einigen Server eine Firebird 2.1 (teilweise 2.5) Datenbank auf Port 3050 laufen ..
Kann ich eine kleine Android-App schreiben - die dann auf die bestehende Firebird Datenbank zugreifen kann?
per lokalem WLAN?
per Internet ? <- Gefahren, wenn ich Port 3050 auf den Server nach außen hin freigebe?
.. reden wir da von FireDAC ?

Hier käme entweder eine eigene Datenbank lokal auf dem Gerät in Frage oder DataSnap oder REST.

mkinzler 20. Mai 2014 13:52

AW: Delphi XE6 - Multi Device Entwicklung
 
Zitat:

Ich hab auf einigen Server eine Firebird 2.1 (teilweise 2.5) Datenbank auf Port 3050 laufen ..
Kann ich eine kleine Android-App schreiben - die dann auf die bestehende Firebird Datenbank zugreifen kann?
Grundsätzlich ja
Zitat:

per lokalem WLAN?
Ja. Hier könnte man aber auch das AppTether Feature nutzen
Zitat:

per Internet ? <- Gefahren, wenn ich Port 3050 auf den Server nach außen hin freigebe?
Hier eher MultiTier und/oder Synchronisierung mit lokaler DB.
Z.B. DataSnap oder andere REST/SOAP-Lösung
Zitat:

.. reden wir da von FireDAC ?
oder andere Komponenten. (IBDAC/UniDAC, ...)

erich.wanker 20. Mai 2014 14:23

AW: Delphi XE6 - Multi Device Entwicklung
 
Zitat:

Zitat von erich.wanker (Beitrag 1259516)
Wenn das Programm gestartet wird und der Bildschirm ist 8 x 13 cm / 800 x 1300 px groß, dann wird Button1 und Button 2 erzeugt - jeder in der Größe von 400 x 300 px (untereinander dargestellt) und div. Details werden nicht dargestellt - Somit ideal für Finger optimiert.

Wenn das Programm gestartet wird und der Bildschirm ist 90 x 70 cm / 1280 x 960 px groß, dann wird Button1 Button2 Button3 und Button4 erzeugt - jeder in der Größe von 200 x 150 px (nebeneinander dargestellt) und div. Details werden dargestellt - somit für Maus optimiert.

Wie kommst Du zu dieser Annahme ?

Keine Annahme - sondern Wunschdenken ;-) .. so stelle ich mir meine Software vor:
.. bei kleinen Bildschirmen hab ich nur die wichtigsten Buttons ersichtlich - und die riesengroß
.. bei großen Bildschirmen hab ich alle Buttons sichtbar - weil ich ja den Platz hab


Zitat:

Zitat von erich.wanker (Beitrag 1259516)
P.S.: Meine Annahme ist:
Kleiner Bildschirm = Smartphone
Mittlerer Bildschirm = Tablet
Großer Bildschirm = Computersystem mit Maus und Tastatur
..was zwar nicht immer stimmt - aber man kann ja in der Software Optionen für die Darstellung des Userintrafces anbieten ;-)

Das kannst Du nicht so verallgemeinern. Es gibt Handys mit 4 Zoll und 5 Zoll. Tablets mit 7,8 und 10 Zoll. Des weiteren ist eine App auf Android und/oder iOS immer anders aufgebaut als bei einem reinen Windows-Programm.

z.B.: 10 Hauptmenübuttons:
ein Handy mit 4 Zoll würde die 3 wichtigsten Hauptmenübuttons anzeigen - das 5 Zoll Handy 4 Hauptmenübuttons - und ein 10 Zoll Tabett alle 10 Hauptmenübuttons... beim 4 Zoll Handy würden die 6 nicht dargestellten Menüpunkte in einem Button "Weitere Menüpunkte" aufrufbar sein ... Die procedure "erzeuge_hauptmenuebuttons" muß also auf die Größe des Bildschirms (in Zentimeter) reagieren ..

Kleine Bildschirmgrößen bieten wenige Buttons - die jedoch ordentlich groß!
Mittlere Bildschirme bieten ein paar mehr Buttons - in ordentlicher Größe
Große und riesige Bildschirme bieten ALLE Buttons - normale Größe - schön zum anclicken!

Der Workflow und das Userinterface will ich nicht OS-typisch gestallten sondern "nach meinen Designvorstellungen" .. wieso soll ein Programm nicht überall gleich ausschauen ?

Zitat:

Zitat von erich.wanker (Beitrag 1259516)
FRAGE 2:

ich hab auf einigen Server eine Firebird 2.1 (teilweise 2.5) Datenbank auf Port 3050 laufen ..
Kann ich eine kleine Android-App schreiben - die dann auf die bestehende Firebird Datenbank zugreifen kann?
per lokalem WLAN?
per Internet ? <- Gefahren, wenn ich Port 3050 auf den Server nach außen hin freigebe?
.. reden wir da von FireDAC ?

Hier käme entweder eine eigene Datenbank lokal auf dem Gerät in Frage oder DataSnap oder REST.[/QUOTE]

... lokal auf dem Gerät hilft mir leider nicht ;-) ...
Ich würde gerne in einer Android-App die Firebird-Datenbank (die am Server liegt)bearbeiten .. also eine Art "DBGrid - BDEdit , DBCommbobox - DBNavigator" in der Android-App reinziehen und diese dann mit einer Connection zum Server (via WLAN) verbinden ..

mkinzler 20. Mai 2014 14:30

AW: Delphi XE6 - Multi Device Entwicklung
 
Wie gesagt geht das theoretisch ist aber nich zu empfehlen! Besser MuliTier (Z.B. DataSnap, RemoteDB, mORMot o.ä.) Oder ne Lösung auf Basis von AppTethering.

erich.wanker 20. Mai 2014 14:58

AW: Delphi XE6 - Multi Device Entwicklung
 
Zitat:

Zitat von mkinzler (Beitrag 1259530)
Wie gesagt geht das theoretisch ist aber nich zu empfehlen! Besser MuliTier (Z.B. DataSnap, RemoteDB, mORMot o.ä.) Oder ne Lösung auf Basis von AppTethering.

Ok... verstehe .. :-) Danke ...

Ich denk mal - ich werde doch eine lokale Datenbank anlegen müssen :-( ...

Da die Hauptdatenbank aber sehr groß ist (und Inhalte besitzt - die für die mobile App unwichtig sind..) werd ich wohl am Server irgendie was exportieren - und am mobileDevice einspielen müssen (oh mann - da kann sicherlich einiges schief gehen..)

Uwe Raabe 20. Mai 2014 16:07

AW: Delphi XE6 - Multi Device Entwicklung
 
Zitat:

Zitat von erich.wanker (Beitrag 1259532)
Da die Hauptdatenbank aber sehr groß ist (und Inhalte besitzt - die für die mobile App unwichtig sind..) werd ich wohl am Server irgendie was exportieren - und am mobileDevice einspielen müssen (oh mann - da kann sicherlich einiges schief gehen..)

Da kommt mir irgendwie der Begriff VIEW in den Sinn...

RWarnecke 20. Mai 2014 18:47

AW: Delphi XE6 - Multi Device Entwicklung
 
Oder über REST die relevaten Daten zur Verfügung stellen und mit dem mobilen Device abrufen.

Mavarik 21. Mai 2014 12:45

AW: Delphi XE6 - Multi Device Entwicklung
 
Hi!

Wie war das noch... Es ist grundlegend falsch zu versuchen eine Desktop Anwendung "verkleinert" auf ein mobiles Device zu bringen.

Wenn es z.B. auf einem Pad nicht aussehen soll wie ein Spielzeug-Phone für Kinder, wirst Du auf der mobilen Seite Deiner Software sicherlich 2 Versionen der Forms haben. (Gerne mit Formular-Vererbung)
Einmal für Phone und einmal für Pad.

Mavarik

erich.wanker 21. Mai 2014 15:45

AW: Delphi XE6 - Multi Device Entwicklung
 
Hallo Mavarik.

meine Überlegungen sind:

Ein Form hat KEINE visuellen Komponenten .. die werden alle erst zur Laufzeit erstellt ..

Beispiel: Navigationsbuttons
- jeder Button hat Darstellungsoption: immer / wichtig / nice to have / wenn wirklich extrem viel platz da ist


Wie viele, wie groß und wo die Komponenten erzeugt werden - kommt auf die Bildschirmgröße in Zentimeter an.

Ein Smartphone mit hoher Auflösung hat grad mal ein paar Zentimeter Bildschirmbreite .. also werden die "immer"-Buttons groß erzeugt ... die restlichen Buttons verbergen sich im Button "weitere Buttons.."

Auf einem Tablet-PC < 7" hab ich mehr Platz .. also werden "immer" und "wichtig" Button groß erzeugt ..

Auf einem Tablet-PC > 7" hab ichnochmehr Platz .. also werden "immer", "wichtig" und "nice to have" Button erzeugt ..

und alles über 14" Bildschirmdiagonale wird als "Mausgesteuert optimiert" gezeichnet .. alle Buttons .. klein und fein ...

..soviel zu meiner Vorstellung ;-)

LiGrü
Erich


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz