© DrHitch/Shutterstock.com
Shortcuts
Xtend beyond Java

2 Beschleunigte Entwicklung von C++- und Qt-basierten Anwendungen - Teil 1

Wer einmal MDSD (Model-driven Software Development) erfolgreich in Projekten eingesetzt hat, mag es nicht mehr missen. Vor mehr als zehn Jahren habe ich mit oAW (openArchitectureWare) [1] gearbeitet, und über einen langen Zeitraum war es elementarer Bestandteil meiner Lösungen. In den letzten Jahren hat sich aber mein Fokus hin zu mobilen Businessanwendungen für BlackBerry verschoben. Die IDE ist immer noch Eclipse (Eclipse Momentics) [2], programmiert wird aber in C, C++, Qt, QML - und ich weiß nicht, wie oft ich mir während der Entwicklung einen generativen Ansatz zurückgewünscht habe. Jetzt gibt es Licht am Ende des Tunnels: „ekkes DSL 4 Cascades“ ist ein erster Start. Was damit bereits möglich ist, zeigt dieses Kapitel auf.

Shortcut Autorenteam


Florian Pirchner und Klemens Edler beschreiben in ihrem Kapitel „DSLs mit Xtext, Sirius und Vaadin“ sehr gut die Qualen eines Entwicklers von Businesssoftware. Vieles davon trifft auch auf die Entwicklung mobiler Business-Apps zu – unabhängig vom OS (Android, BlackBerry10, iOS, Windows). Vorweg: Ich spreche hier von anspruchsvollen, komplexen und nativen Apps. Handelt es sich um webbasierte Apps, dann kann das Szenario ähnlich wie bei Florian und Klemens beschrieben auch mit Vaadin und Co. gelöst werden. Es gibt viele Apps, für die der Webansatz (HTML5, CSS, JS) richtig ist, und es ist sicherlich oft eine Erleichterung, mobile Apps plattformübergreifend schreiben zu können. Meine Anwendungen mit komplexen Workflows, tiefer Integration in das Betriebssystem, Zugriff auf alle Sensoren und Events des darunter liegenden OS bei gleichzeitig intuitivem UI mit cooler UX sind derzeit aber nur durch eine native Umsetzung zu lösen. In diesem Kapitel beziehen sich alle Lösungen auf Anwendungen für BlackBerry 10 im Enterprise-Umfeld. Geplant ist eine entsprechende Version für Swift/iOS gegen Ende des Jahres.Daten, Persistenz und CachingDie Daten einer mobilen App werden in den meisten Fällen per Web Service (REST, SOAP) zur Verfügung gestellt. Um offline arbeiten zu können, benötigt man eine lokale Caching-Strategie, wobei sich das direkte Speichern von JSON oder der Einsatz einer SQLite-Datenbank bewährt haben. Geänderte oder neu erfasste Daten sind wieder an den Server zu senden, wobei der Einsatz einer Queue sinnvoll ist, um auch offline arbeiten zu können.Am Gerät befindliche Daten werden im UI unterschiedlich dargestellt, sei es in einem List-Datenmodell oder in einer Detailseite. Änderungen an einzelnen Feldern (Properties) sollen sich sofort in anderen Fenstern oder Feldern auswirken oder dafür sorgen, dass sich ein Icon oder eine Textfarbe ändert. Dazu werden Events genutzt – im Falle von BlackBerry 10 ist das elegant und flexibel mit Qt Signals und Slots gelöst.Das Problem ist aber, dass es eine Menge an Code „drumherum“ gibt, der kodiert werden muss, um all die genannten Anforderungen zu implementieren. Hier setzt meine DSL an: Der Entwickler soll dadurch entlastet werden, indem „langweiliger“ Code generiert wird. Die gesamte App-Entwicklung wird dadurch nicht nur beschleunigt. Der Entwickler kann dann auch Dinge nutzen, die sonst aufwändig zu programmieren sind. Allerdings ist die DSL kein App-Generator. Der Entwickler muss also immer noch wissen, was er...

Shortcuts
Xtend beyond Java

2 Beschleunigte Entwicklung von C++- und Qt-basierten Anwendungen - Teil 1

Wer einmal MDSD (Model-driven Software Development) erfolgreich in Projekten eingesetzt hat, mag es nicht mehr missen. Vor mehr als zehn Jahren habe ich mit oAW (openArchitectureWare) [1] gearbeitet, und über einen langen Zeitraum war es elementarer Bestandteil meiner Lösungen. In den letzten Jahren hat sich aber mein Fokus hin zu mobilen Businessanwendungen für BlackBerry verschoben. Die IDE ist immer noch Eclipse (Eclipse Momentics) [2], programmiert wird aber in C, C++, Qt, QML - und ich weiß nicht, wie oft ich mir während der Entwicklung einen generativen Ansatz zurückgewünscht habe. Jetzt gibt es Licht am Ende des Tunnels: „ekkes DSL 4 Cascades“ ist ein erster Start. Was damit bereits möglich ist, zeigt dieses Kapitel auf.

Shortcut Autorenteam


Florian Pirchner und Klemens Edler beschreiben in ihrem Kapitel „DSLs mit Xtext, Sirius und Vaadin“ sehr gut die Qualen eines Entwicklers von Businesssoftware. Vieles davon trifft auch auf die Entwicklung mobiler Business-Apps zu – unabhängig vom OS (Android, BlackBerry10, iOS, Windows). Vorweg: Ich spreche hier von anspruchsvollen, komplexen und nativen Apps. Handelt es sich um webbasierte Apps, dann kann das Szenario ähnlich wie bei Florian und Klemens beschrieben auch mit Vaadin und Co. gelöst werden. Es gibt viele Apps, für die der Webansatz (HTML5, CSS, JS) richtig ist, und es ist sicherlich oft eine Erleichterung, mobile Apps plattformübergreifend schreiben zu können. Meine Anwendungen mit komplexen Workflows, tiefer Integration in das Betriebssystem, Zugriff auf alle Sensoren und Events des darunter liegenden OS bei gleichzeitig intuitivem UI mit cooler UX sind derzeit aber nur durch eine native Umsetzung zu lösen. In diesem Kapitel beziehen sich alle Lösungen auf Anwendungen für BlackBerry 10 im Enterprise-Umfeld. Geplant ist eine entsprechende Version für Swift/iOS gegen Ende des Jahres.Daten, Persistenz und CachingDie Daten einer mobilen App werden in den meisten Fällen per Web Service (REST, SOAP) zur Verfügung gestellt. Um offline arbeiten zu können, benötigt man eine lokale Caching-Strategie, wobei sich das direkte Speichern von JSON oder der Einsatz einer SQLite-Datenbank bewährt haben. Geänderte oder neu erfasste Daten sind wieder an den Server zu senden, wobei der Einsatz einer Queue sinnvoll ist, um auch offline arbeiten zu können.Am Gerät befindliche Daten werden im UI unterschiedlich dargestellt, sei es in einem List-Datenmodell oder in einer Detailseite. Änderungen an einzelnen Feldern (Properties) sollen sich sofort in anderen Fenstern oder Feldern auswirken oder dafür sorgen, dass sich ein Icon oder eine Textfarbe ändert. Dazu werden Events genutzt – im Falle von BlackBerry 10 ist das elegant und flexibel mit Qt Signals und Slots gelöst.Das Problem ist aber, dass es eine Menge an Code „drumherum“ gibt, der kodiert werden muss, um all die genannten Anforderungen zu implementieren. Hier setzt meine DSL an: Der Entwickler soll dadurch entlastet werden, indem „langweiliger“ Code generiert wird. Die gesamte App-Entwicklung wird dadurch nicht nur beschleunigt. Der Entwickler kann dann auch Dinge nutzen, die sonst aufwändig zu programmieren sind. Allerdings ist die DSL kein App-Generator. Der Entwickler muss also immer noch wissen, was er...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang