Seit Delphi XE2 besteht die Möglichkeit auch mobile Anwendungen (iOS) zu erzeugen, seit XE4 auch für Android. Schnell hat sich gezeigt, dass die App-Entwicklung mit Firemonkey nicht nur ein bisschen anders ist, sondern auch in vielen Teilen mit sehr viel Recherchen verbunden ist/war. Die offensichtliche Vorgehensweise war also hierfür EINE UNIT zu erzeugen und in diese Unit alles das rein zu packen, was für die mobile App-Entwicklung nötig war.
Da auf den mobilen Geräten immer alle Forms im Vollbildschirm angezeigt werden, musste erstmal eine Art Fenstermanager her. Auch stellt man unter Firemonkey schnell fest, dass die Style nur dann richtig funktionieren und das gilt besonders für Klick-Events, wenn man der UI-Task (Main-Thread) alle Zeit übriglässt, die verfügbar ist. Das bedeutet auch, dass man auf keinen Fall etwas in einen Button-Click-Event einfügen sollte das überhaupt Zeit kostet. Nachdem man also festgestellt hat, dass der User den Button gedrückt hat, muss so schnell wie möglich die Kontrolle wieder an den Main-Thread zurückgegeben werden. Aber wann kann ich dann meine Aktion die der Button auslösen sollte aufrufen? Die Antwort lautet: Entweder mache ich es in einem Thread oder ich warte darauf, dass die Applikation den OnIdle Event auslöst. Dies ist eigentlich schon die Magie der FMX-App-Entwicklung. Hierfür habe ich natürlich einen Entsprechenden Handler programmiert und diese Art des OnClick-Events zu behandeln.
Unzählige Units des FDK beschäftigen sich mit Threading, Erzeugen von Elementen zur Laufzeit, Interface-Wrapper damit man auch unter Windows alles testen kann, denn hier gibt es kein ARC, uvm.
Ein weiteres Thema ist sicherlich eine einfache Verwendung
der SQLite Datenbank, die auf den mobilen Plattformen vorinstalliert ist. Die häufigste
gestellte Frage ist: Wie bekomme ich meine Daten vom mobilen Gerät auf einen
Server? Normalerweise sollte man hierfür einen REST-Service per JSON verwenden,
also lag es nah, hierfür auch entsprechende Routinen zu programmieren.
Zahlreiche Funktionalitäten sind mittlerweile auch nativ in Delphi vorhanden, trotzdem
sind meine Wrapper leichter zu bedienen. Bestes Beispiel ist sicherlich das
Interface um auf der Android-Plattform die „neuen“ Berechtigungen abzufragen.
Der Firemonkey Neuling wird am Anfang sicherlich schnell auf Probleme stoßen, z.B. das die Bildschirmtastatur die Edit-Komponente überlagert. Auch hierfür gibt es im FDK einen Autoscroller.
Alle nötigen Einstellung, Datenbankverbindungen und Autoscroller sowie die Application-Events lassen sich mit einer Zeile erledigen.
Zur Zeit arbeite ich noch an einem MVVM-Plugin für das FDK sowie an einer Delphi-Tauglichen MVVM Stand-Alone Implementation.
Besuchen Sie und auf den diversen Plattformen.