Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Firemonkey in XE6 - Zwischenbericht (https://www.delphipraxis.net/180699-firemonkey-xe6-zwischenbericht.html)

greenmile 10. Jun 2014 12:01

Firemonkey in XE6 - Zwischenbericht
 
Vielleicht interessiert es ja den einen oder anderen. Ich habe nach einigen Fehlschlägen das Thema Firemonkey komplett von meiner ToDo-Liste geschoben und verwende eigentlich nur noch die Standard FMX Form, an Controls kommt mir bei Mac Projekten nur noch TMS's mCL auf den Tisch.

Aktuell musste ich jedoch ein Projekt realisieren, dass sowohl auf Android, als auch auf iOS läuft, also habe ich XE6/FMX eine Chance gegeben. Oder musste ich, kann man sehen wie man will.

Zunächst mal zur Installation: Wenn man das Mobile AddOn kauft, muss man zunächst ganz normal Delphi installieren. Anschließend das Setup nochmal starten, "Upgrade" klicken, Seriennummer vom Mobile eingeben und schon kann man Mobile auswählen. Geht zwar, aber da muss man erstmal drauf kommen. Das könnte man einfacher machen.

Die ersten Schritte waren jedoch einfach: Einfach ein neues Firemonkey-Mobile Projekt erzeugen, fertig. Einige Buttons auf die Form und fertig ist das 'Hallo Welt' Projekt. Dann ging es etwas tiefer in die Materie. Alles in allem konnte ich alles so realisieren, wie ich es von Windows kenne. Einige Unschönheiten (wie nicht unterstütze, typisierte Dateien) konnte ich relativ einfach umgehen und ganz nebenbei auch neues lernen, wie z.B. SQLITE. Die Hauptprobleme bestanden bei mir nicht in der Umsetzung, sondern erstmal herauszufinden, wie der Hase läuft. So wollte ich z.B. eine Liste, in der neben jedem Eintrag ein Pfeil nach rechts für "Weiter" ist. Am Anfang habe ich dafür mangels Wissen Panels genommen. Die konnten keine Farben, also habe ich Rectangles drauf gepackt. So recht gefallen hat es mir nie, aber was sollte ich tun. Irgendwann musste ich im Projekt mit Listen arbeiten, quasi "Text" und "Anzahl". TListview gibt es (jetzt endlich), also habe ich die genommen und siehe da ... wie geil, sowas wie meine gefakten Panel-Buttons kann das Teil von Haus aus. Sogar Bitmaps (basierend auf PNG) laufen wenn man rausbekommt, wie es funktioniert. Die Hilfe half an der Stelle leider nicht, weil keine Texte zu den Themen vorhanden waren.

Einige Dinge habe ich bis dato nicht verstanden. Z.B., ob man einen iOS Theme auch unter Android verwenden kann. Könnte ich zwar testen, bin aber faul. Oder wie man die Listview an den Kanten rund bekommt. Oder wie man eine vernünftige Skalierung hinbekommt. Es wird aber nur eine Frage der Zeit sein, bis das läuft.

Mehr als hilfreich ist die Möglichkeit, das Projekt als Win32 zu starten, da die Übertragung an ein Handy doch recht lange läuft und der Simulator irgendwie rumspinnt. Ich war faul und habe einige Sourcen direkt mittels Drag&Drop in das FMX Projekt kopiert.

Resume (auch an ME): Die Entwicklung hat einfach Spaß gemacht! In XE6 läuft es nahezu rund. Die Beispiele sind super, einzig die Hilfe lässt hier und da noch zu wünschen übrig. Für mobile Projekte werde ich nun gerne wieder auf XE6 zurückgreifen, es ist ziemlich cool geworden. Glückwunsch, ME und Embar!

Und wer über FMX flucht und noch XE3 verwendet: Testet XE6, es macht (endlich) wirklich Spaß und funktioniert.

===

Was ich mir allerdings noch wünsche:

- Listview Items zur Designzeit erstellen, derzeit muss ich sie dynamisch in FormCreate erstellen
- Bessere Guides zum Thema Listview, die ist ja recht mächtig WENN man sie beherrscht.
- Bessere Guides zum Thema Styles
- Insgesamt mehr Guides je Plattform und deren spezielle Eigenschaften
- Möglichkeit der nativen Komponenten
- Unter Android die Möglichkeit, einen Splash in den Projekteinstellungen zu definieren

Vieles ist möglich, allerdings nur durch Try-And-Error. Bis ich raus hatte, dass man für TMediaPlayer nix brauche außer halt TMediaplayer ... das hat gedauert.

stahli 10. Jun 2014 13:20

AW: Firemonkey in XE6 - Zwischenbericht
 
Würdest Du Dir auch ein ausgewachsenes FMX-Projekt für Win+Mac incl. LiveBindings zutrauen?
Ich meine ohne massenweise Workarounds zu nutzen?

Die ganze mobile Schiene interessiert mich immer noch nicht. FMX hätte ich gern genutzt als Alternative zur VCL. Bekanntermaßen mit recht blutiger Nase als Resultat.

Für mich wäre XE6 maximal ein Thema als vollwertige VCL-Alternative und als nahezug kostenfreies Fehlerupdate (von mir aus ohne Android-Unterstützung) für mein teures D XE3 Ultimate.

(Obwohl, eigentlich selbst dann würde ich wohl Emba nicht mehr wirklich als zahlender Kunde erhalten bleiben, da man mit kostenfreien Bugfixes für einen mittleren Zeitraum nicht mehr rechnen kann - ein Unding aus meiner Sicht.)

greenmile 10. Jun 2014 13:23

AW: Firemonkey in XE6 - Zwischenbericht
 
Ich verwende keine LiveBindings, deswegen kann ich dazu nichts sagen. Ausgewachsene Projekte würde ich, wenn sie nur unter Windows laufen, nur und ohne Ausnahme mit der VCL realisieren. Firemonkey ist cool für mobile und teilweise für Mac, unter Windows braucht man das nicht.

himitsu 10. Jun 2014 13:28

AW: Firemonkey in XE6 - Zwischenbericht
 
Zitat:

Zitat von greenmile (Beitrag 1261826)
- Grafiken (TImage) usw. zur Laufzeit einbinden, derzeit muss ich sie dynamisch zuwiesen
- Listview Items zur Laufzeit erstellen, derzeit muss ich sie dynamisch in FormCreate erstellen

Warte mal, du möchstest die gern zur Laufzeit dynamisch erstellen und machst das derzeicht auch schon so? :gruebel:

greenmile 10. Jun 2014 14:23

AW: Firemonkey in XE6 - Zwischenbericht
 
Zitat:

Zitat von himitsu (Beitrag 1261828)
Zitat:

Zitat von greenmile (Beitrag 1261826)
- Grafiken (TImage) usw. zur Laufzeit einbinden, derzeit muss ich sie dynamisch zuwiesen
- Listview Items zur Laufzeit erstellen, derzeit muss ich sie dynamisch in FormCreate erstellen

Warte mal, du möchstest die gern zur Laufzeit dynamisch erstellen und machst das derzeicht auch schon so? :gruebel:

Ich erstelle es zur Laufzeit, z.B. mittels "TListitem := lv...Items.Add".
Genau wie Images, die ich erst aus einer RES in ein TBitmap lade und dann an das TImage weiterschicke.

Oder geht das zur Designzeit?

Daniel 10. Jun 2014 14:42

AW: Firemonkey in XE6 - Zwischenbericht
 
Für den TListView geht das nur zur Laufzeit. Diese Komponente arbeitet dynamisch und wurde entwickelt mit den Blick auf die Aufgabenstellung, viele Einträge performant anzuzeigen. Solltest Du hingegen nur eine überschaubare Anzahl an Einträgen haben, dann könntest Du eine TListBox nehmen, diese kannst Du zur Designzeit bestücken.

eddie11 10. Jun 2014 14:48

AW: Firemonkey in XE6 - Zwischenbericht
 
Zitat:

Zitat von greenmile (Beitrag 1261833)
Ich erstelle es zur Laufzeit, z.B. mittels "TListitem := lv...Items.Add".
Genau wie Images, die ich erst aus einer RES in ein TBitmap lade und dann an das TImage weiterschicke.

Oder geht das zur Designzeit?

Also m.E. ist die ListView ja gerade dazu gedacht, zur Laufzeit gefüllt zu werden (z.B. aus einer Datenbank oder Web-Abfrage). Deshalb scheint mit ein Füllen bereits zur Designzeit nicht sinnvoll.
Für wenige Einträge kannst Du eine ListBox benutzen, die kannst Du schon zur Desingnzeit füllen.

TImages kann man sehr wohl zur Designzeit füllen - nicht jedoch die Images innerhalb einer Listview (da ja die Items auch noch nicht da sind).

greenmile 10. Jun 2014 15:02

AW: Firemonkey in XE6 - Zwischenbericht
 
Echt? Wie füllt ihr TImage? .Bitmap und .Picture gibt es da nicht.

Jonas Shinaniganz 10. Jun 2014 18:41

AW: Firemonkey in XE6 - Zwischenbericht
 
Lade keine IOS-Styles in Android Projekte oder umgekehrt! Das ist zur Designzeit nicht möglich und zur Laufzeit ein Hack. Du bekommst viele Probleme bei der Aktualisierung der Oberfläche. Mal davon abgesehen wäre so ein vorgehen punkto UI-Design-Richtlinien einfach krank.

Edit: vielleicht sogar rechtswidrig aber das ist nur so ein Gedanke

Mavarik 10. Jun 2014 19:52

AW: Firemonkey in XE6 - Zwischenbericht
 
Zitat:

Zitat von greenmile (Beitrag 1261842)
Echt? Wie füllt ihr TImage? .Bitmap und .Picture gibt es da nicht.

Klar
Grafik für Scale 1 2 3 usw... oder auch

Mavarik 10. Jun 2014 19:53

AW: Firemonkey in XE6 - Zwischenbericht
 
Zitat:

Zitat von Jonas Shinaniganz (Beitrag 1261863)
Lade keine IOS-Styles in Android Projekte oder umgekehrt! Das ist zur Designzeit nicht möglich und zur Laufzeit ein Hack. Du bekommst viele Probleme bei der Aktualisierung der Oberfläche. Mal davon abgesehen wäre so ein vorgehen punkto UI-Design-Richtlinien einfach krank.

Edit: vielleicht sogar rechtswidrig aber das ist nur so ein Gedanke

Hack... LOL...
Bei iOS mag das jemanden interessieren, aber bei Andorid?

Mavarik

jfheins 10. Jun 2014 20:11

AW: Firemonkey in XE6 - Zwischenbericht
 
Joa, schon. Wenn ich für eine App bezahle, erwarte ich auch, dass die UX stimmt. Und dazu gehören nunmal auch die Design Richtlinien.

Da fällt mir ein, ich muss noch eine zwei-Sterne Bewertung für eine solche App verfassen ... *ab in den Play Store*

greenmile 10. Jun 2014 20:13

AW: Firemonkey in XE6 - Zwischenbericht
 
Ich kenne einige App's, die unter Android so aussehen als wären sie vom iPad.
Wie dem auch sei, was passiert theoretisch (ich habe es nicht getestet), wenn ich kein Stylebook auf meiner Form habe?

Harry Stahl 10. Jun 2014 23:25

AW: Firemonkey in XE6 - Zwischenbericht
 
Zitat:

Zitat von greenmile (Beitrag 1261842)
Echt? Wie füllt ihr TImage? .Bitmap und .Picture gibt es da nicht.

Seit XE5 nennt sich das "MultiResBitmap"

eddie11 11. Jun 2014 07:53

AW: Firemonkey in XE6 - Zwischenbericht
 
Zitat:

Zitat von greenmile (Beitrag 1261870)
Ich kenne einige App's, die unter Android so aussehen als wären sie vom iPad.
Wie dem auch sei, was passiert theoretisch (ich habe es nicht getestet), wenn ich kein Stylebook auf meiner Form habe?

Dann werden Standard-Styles benutzt, und die Apps sehen so aus, wie der Benutzer sie unter dem jeweiligen OS erwartet. Das kannst Du schon in der IDE sehen. Je nach dem welches Ziel-Gerät Du oben rechts im Design-Fenster auswählst wird auch in der IDE schon das Ergebnis angezeigt. Bei iOS-Geräten kannst Du sogar zwischen iOS6 und iOs7 wählen.

Ich benutze übrigens grundsätzlich keine eigenen Styles in mobilen Anwendungen. Wenn dann nämlich iOSnn mit wieder anderem Look and Feel kommt, dann hat Emba das hoffentlich bereits mit XEnn berücksichtigt, und ich muss mich nicht darum kümmern (war jedenfalls bei Einführung von iOS7 so).

greenmile 11. Jun 2014 08:02

AW: Firemonkey in XE6 - Zwischenbericht
 
Zitat:

Zitat von Harry Stahl (Beitrag 1261878)
Zitat:

Zitat von greenmile (Beitrag 1261842)
Echt? Wie füllt ihr TImage? .Bitmap und .Picture gibt es da nicht.

Seit XE5 nennt sich das "MultiResBitmap"

Danke ... Habe ich glatt übersehen.

greenmile 11. Jun 2014 08:03

AW: Firemonkey in XE6 - Zwischenbericht
 
Zitat:

Zitat von eddie11 (Beitrag 1261892)
Zitat:

Zitat von greenmile (Beitrag 1261870)
Ich kenne einige App's, die unter Android so aussehen als wären sie vom iPad.
Wie dem auch sei, was passiert theoretisch (ich habe es nicht getestet), wenn ich kein Stylebook auf meiner Form habe?

Dann werden Standard-Styles benutzt, und die Apps sehen so aus, wie der Benutzer sie unter dem jeweiligen OS erwartet. Das kannst Du schon in der IDE sehen. Je nach dem welches Ziel-Gerät Du oben rechts im Design-Fenster auswählst wird auch in der IDE schon das Ergebnis angezeigt. Bei iOS-Geräten kannst Du sogar zwischen iOS6 und iOs7 wählen.

Ich benutze übrigens grundsätzlich keine eigenen Styles in mobilen Anwendungen. Wenn dann nämlich iOSnn mit wieder anderem Look and Feel kommt, dann hat Emba das hoffentlich bereits mit XEnn berücksichtigt, und ich muss mich nicht darum kümmern (war jedenfalls bei Einführung von iOS7 so).

Danke für die Info, das liest sich super. Sehe ich übrigens genauso, also die Standard Styles.

arnof 11. Jun 2014 13:42

AW: Firemonkey in XE6 - Zwischenbericht
 
Zitat:

Zitat von jfheins (Beitrag 1261869)
Joa, schon. Wenn ich für eine App bezahle, erwarte ich auch, dass die UX stimmt. Und dazu gehören nunmal auch die Design Richtlinien.

Da fällt mir ein, ich muss noch eine zwei-Sterne Bewertung für eine solche App verfassen ... *ab in den Play Store*

Wegen solchen Useren macht Appentwicklung keinen Spass!

Solche Deppen beschweren sich wegen jedem scheiß bei kostenfreien Apps oder 0,89 EUR Apps und erwarten das man tausende Stunden für 10 EUR Umsatz im Monat hinlegt.

Daniel 11. Jun 2014 15:00

AW: Firemonkey in XE6 - Zwischenbericht
 
Es gibt die Anwender, denen die UI-Richtlinien wichtig sind - und es ist deren gutes Recht, so zu empfinden.
Aber wenn wir uns die aktuellen Apps mal so anschauen, dann merken wir, dass diese Richtlinien weit weniger Bedeutung haben als noch vor ein paar Jahren. Sehr erfolgreiche Apps sind ihre eigenen Wege in Sachen UI und Farbgebung gegangen. Jede einzelne von ihnen ist ein lebendiges Beispiel dafür, dass Alternativen auch hervorragend funktionieren können - nur halt nicht für jeden.

MEissing 11. Jun 2014 15:43

AW: Firemonkey in XE6 - Zwischenbericht
 
Zitat:

Zitat von greenmile (Beitrag 1261817)
Glückwunsch, ME und Embar!

Danke. Ich geb's mal weiter.

*Ich* habe damit nix zu tun :shock::cheer:

Harry Stahl 11. Jun 2014 17:16

AW: Firemonkey in XE6 - Zwischenbericht
 
Zitat:

Zitat von greenmile (Beitrag 1261894)
Zitat:

Zitat von Harry Stahl (Beitrag 1261878)
Zitat:

Zitat von greenmile (Beitrag 1261842)
Echt? Wie füllt ihr TImage? .Bitmap und .Picture gibt es da nicht.

Seit XE5 nennt sich das "MultiResBitmap"

Danke ... Habe ich glatt übersehen.

Das kann bei der Geschwindigkeit, mit der sich in FireMonkey was ändert, auch schnell passieren.

In XE4 gab es beim TImage noch die Eigenschaft "Bitmap" und zusätzlich "BitmapHiRes", ab XE5 halt statt dessen nur noch das "MultiResBitmap". Das ist übrigens auch der Grund, warum ich seit XE5 in meinem FireMonkey-Buch immer 2 XE-Versionen abdecke, damit man eben den Wechsel von der einen zur anderen Version besser nachvollziehen kann und direkt sieht, was nicht mehr geht oder nun anders gemacht werden muss. Diese Notwendigkeit bleibt auch bei XE5/XE6 weiterhin bestehen, da auch unter XE6 sich wieder einiges geändert hat...

himitsu 11. Jun 2014 17:40

AW: Firemonkey in XE6 - Zwischenbericht
 
Ich hatte mir ja schon immer gewünscht, wenn Emba in der OH es auch so wie z.B. beim MSDN machen würde.
  • Minimal-Version, bzw. Maximal-Version der IDE mit angeben.
  • Man könnte da eventuell sogar langsam mal das Framework mit angeben, also ob es z.B. nur für Windows, iOS, Android, VCL, FMX gültig ist.
  • Wenn alt, dann das Neue verlinkt, wenn es noch existiert, damit man das gleich findet

Da die OH eh automatisch generiert wird, dann hätte man Neue Dinge automatisch als Neu kennzeichnen können (Min-Versions setzen), bzw. alte Dinge automatisch als alt (Max-Version setzen).

greenmile 11. Jun 2014 18:32

AW: Firemonkey in XE6 - Zwischenbericht
 
Ich möchte ja nicht nur fluchen, sondern muss auch mal loben :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:10 Uhr.

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