Cross-Platform Model-Driven Development of Mobile Applications with MD 2

Größe: px
Ab Seite anzeigen:

Download "Cross-Platform Model-Driven Development of Mobile Applications with MD 2"

Transkript

1 Cross-Platform Model-Driven Development of Mobile Applications with MD 2 Henning Heitkötter 1, Tim A. Majchrzak 1 und Herbert Kuchen 1 zusammengefasst von Franziska Kowalke 2 1 University of Münster 2 Beuth Hochschule für Technik Berlin 1 Einleitung Als der US-amerikanische Konzern Apple im Jahre 2007 sein IPhone auf den Markt brachte und den App Store als neue online Verkaufsplattform für den Vertrieb von Applikationen einführte, stieg der Verkauf für Smartphones rapide an. Gleichzeitig nahm der Bedarf an mobile Apps zu. Seither werden neben IOS von Apple, Applikationen für das Betriebssystem Android und jüngst für das Windows Phone entwickelt. Das bedeutet, dass die gleiche App für mehrere Betriebssysteme entwickelt wird. Die Entwickler sind gezwungen für jede Plattform, die Anwendung erneut zu implementieren, da die Zielsprachen unterschiedlich sind und somit der Programmcode nicht wiederverwendet werden kann. Für die Unternehmen ist das ein aufwendiges und somit teures Unterfangen. Eine mögliche Lösung ist die Entwicklung von Cross-Platform Applikationen. Das Ziel der Cross-Platform Entwicklung ist es, einen Quellcode zu schreiben, der auf verschiedenen Mobilplattformen ausgeführt werden kann. Vier Ansätze zur Entwicklung von Cross-Platform Application können unterschieden werden [1]. Mobil Web Applikation ist ein Ansatz. Diese werden grundlegend in HTML, CSS und JavaScript implementiert. Sie verwenden Widget Bibliotheken um das Aussehen von nativen Schaltflächen nachzubilden. Eine weitere Möglichkeit sind Hybrid-Apps. Hier werden Webanwendungen mit nativen Komponenten entwickelt, wodurch der Zugriff auf Gerätefunktionen ermöglicht wird. Mobile Web Applikationen und Hybrid-Apps sehen aus und verhalten sich wie eine Webseite und daher sind sie nicht vergleichbar mit echten nativen Apps. Ein dritter Ansatz sind seperate Laufzeitumgebungen, wie Titanium [2] es anbietet. Auf jede Zielplattform wird ein Interpreter geschrieben, welcher zur Laufzeit den Quellcode der App interpretiert. Es wurde festgestellt das bei diesem Ansatz Features fehlen und Leistungsprobleme auftreten [1]. Der generative Ansatz schafft, im Vergleich zu den vorigen, vollständige native Apps aus einer gemeinsamen Code-Basis zu erzeugen. Der Cross-Compiler XMLVM [3] wandelt Android Apps, geschrieben in Java, in Object-C um. Die Umwandlung erfolgt in einem sehr frühen Stadium und hat eine niedrige Abstraktionsebene. Java in Object-C zu übersetzen ist ebenso mit J2ObjC [4] möglich. Plattformspezische Funktionalität oder das UserInterface werden nicht übernommen. Nur die Geschäftlogik kann zwischen Android un ios genutzt werden.

2 Ein ganz anderer Ansatz ist die modellgetriebene Entwicklung. Diese bietet passende Werkzeuge um das Problem der Cross Plattform Entwicklung weiter zu vereinfachen. Applikationen werden in einer plattformunabhängige Sprache beschrieben und für die jeweilige Zielplattform übersetzt. In dieser Arbeit wird das MD 2 Framework vorgestellt, welches eine modellgetriebene Entwicklung für ios und Android ermöglicht. 2 Grundlagen 2.1 Modellgetriebene Mobileentwicklung Bei der modellgetriebenen Softwareentwicklung (MDSD), werden Anwendungen in einem Modell beschrieben, woraus automatisiert ein ausführbarer Programmcode generiert werden kann. Daraus ergeben sich verschiedenen Vorteile für die Softwareentwicklung. Zum einem ist der Entwickler in der Lage auf einer hohen Abstraktionsebene zu entwickeln. Das heißt die Gesamtkomplexität wird reduziert durch die Trennung der fachlichen und technischen Ebenen. Zum anderem ergibt sich ein weiterer Vorteil aus der Wiederverwendbarkeit. Soll ein Softwareprodukt auf verschiedene Zielplattformen laufen, so kann jeweils das selbe Modell genutzt werden. Nur der Generator muss für die Zielplattform angepasst werden. Eine Zielplattform beschreibt die Umgebung für die der Programmcode generiert wird. Die Modellgetriebe Entwicklung erfolgt in drei Phasen: 1. Modellierung der Anwendung in einer Domain Specific Language (DSL) 2. Beschreibung der Abbildung des Modells auf Zielsprache unter Verwendung einer Transformationssprache 3. Generierung des Codes für eine oder mehrere Zielplattformen Das Framework MD 2 implementiert diesen Ansatz. Das Framework ist für die Entwicklung von Business-Apps gedacht, speziell datengetriebene Applikationen. Mit Unterstützung verschiedener Partner aus der Industrie wurden typische Anforderung ausgearbeitet. Definition von Datentypen und die CRUD-Funktionalitäten Implementation einer Userinterface(UI) mit verschieden Layouts Steuern der Reihenfolge der Views Definition von Datenbindungen und Überprüfung der Eingabe Reaktion auf Events und Zustandsänderungen Nutzung von Gerätefunktionalitäten, wie GPS 2.2 MD 2 Framework Die Entwicklung einer App mit MD 2 verläuft in drei Phasen. Nur die ersten beiden Phasen werden durch das Framework unterstützt. In der ersten Phase wird die App als formales Modell, in einer selbst definierten DSL beschrieben. Diese DSL ist der Kern von MD 2. Die Spezifikation der

3 Sprache definiert das Konzept, welches die Entwickler zur Modellierung ihrer App nutzen, um anschließend plattfomspezifischen Programmcode zu generieren. Eines der wichtigsten Kriterien beim Entwurf der DSL war es, möglichst viele verschiedenen datengesteuerte Apps beschreiben zu können. Weiterhin soll eine schnelle prototypische Implementierung von Apps mit standardisierten Anforderungen ermöglicht werden. Trotzdem sollte die Sprache mächtig genug sein um komplexe UserInterfaces und Interaktionsszenarien zu beschreiben. Zudem müssen alle Anforderungen aus dem Kapitel 2.2 Umsetzbar sein. Im Großen und Ganzen wird das durch vier wesentliche Entwurfsprinzipien erreicht: 1. Trennung der MVC-Komponenten Die MD 2 Sprache und die darin beschriebenen Apps beruhen auf der Model-View-Controller Architektur, kurz MVC. Wie in der Architektur vorgesehen, wird das Modell der App auf drei Pakete, Model, View und Controller, verteilt. Die Aufteilung nach MVC-Kompenten geschieht auf der ersten Ebene anhand von funktionalen Kriterien. Auf der zweiten Ebene jeder Komponente weiter strukturell unterteilt werden. Zum Beispiel kann in dem Paket für die View-Komponente für jede UI eine Datei angelegt werden. Dies ermöglicht eine klare Trennung der Bereiche und flexible Strukturierung. 2. Deklarativer Sprachstil Bei dem deklarative Sprachstil spezifizieren die Entwickler WAS die App leisten soll ohne das WIE in Form eines Algorithmus beschreiben zu müssen [5]. Zum Beispiel wird in der View-Komponente das Aussehen beschrieben. Die Implementierung soll nicht Aufgabe des Entwicklers sein. 3. Konvention vor Konfiguration Ein drittes Ziel ist die Konvention vor der Konfiguration. Die Komplexität der Konfiguration soll vor dem Entwickler durch wohldefinierte Standardparameter verborgen werden. Ein Beispiel ist die automatische Generierung von UI-Feldern einer Entity, welche nur bei Abweichung des Standards angepasst werden müssen. 4. Modularität Das letzte Ziel ist die Modularität. Wiederkehrende Aspekte können einmalig definiert und anschließend mehrfach verwendet werden. Module sind lose miteinander gekoppelt und können daher ebenfalls besser ausgetauscht werden. Die abstrakte Syntax und die textuelle Notation der MD 2 DSL wurden in XText definiert und implementiert. Xtext ist ein Framework unter anderem zur Entwicklung von Domänenspezifische Sprachen und Teil des Eclipse-Modeling- Framework Projekts. Das Text Framework generiert sowohl einen Editor als auch einen Parser für die DSL. Sobald der Entwickler das formale Modell speichert, erfolgt erfolgt automatisch die Generierung des Codes in der plattformspezifischen Zielsprache z.b. Java unter Android. Hierbei erstellt der Parser die abstrakte Syntax des Modells und stellt den Satz von Elementen und dessen Beziehungen für die nächsten Schritte der Generierung bereit.vor dem Aufruf der Generatoren wird das Modell vor-verarbeitet um nachfolgende Generierungen zu vereinfachen. Anschließend

4 erstellen die Code-Generatoren den Quellcode jeweils für Android und ios. Daneben wird durch einen weiteren Generator ein Server-Backend erzeugt. Dieser basiert auf das Datenmodell der App. Das Backend kann auf einem JavaEE Anwendungsserver laufen. Die Generatoren wurden mit XTend [6] realisiert. XTend ist eine Java ähnliche Programmiersprache mit einer modernen Syntax und zusätzlichen Funktionen, wie Lambda- und Template-Ausdrücke. Letzteres erleichtert das Arbeiten mit mehrzeiligen und der sehr dynamischen Strings unter Beibehaltung der Formatierung. Wichtig bei der Codegenerierung ist die Erstellung einer ECHTEN nativen App, welche sofort Installierbar und Lauffähig ist. Die Entwicklung der Generatoren erfolgte auf Basis einer Referenzimplementierung, die aus prototypischen Apps für Android und ios bestand. Es wurde sich auf Funktionalitäten konzentriert, die sich nicht zwischen unterschiedlichen Apps ändern. Hierzu wurden statisch, generische Teile identifiziert, welche identisch für alle Apps einer Plattform sind, unabhängig von dem Modell. Die Menge der statischen Teile einer App für ein Handybetriebssystem sind Teil der Zielplattform. Sie beinhaltet das Betriebssystem und dessen Schnittstellen, sowie externe Bibliotheken und den statischen Inhalt von MD 2. Das Gegenteil sind dynamische Inhalte. Diese hängen stark von der App und seinem MD 2 -Modell ab. Durch Instanziierung oder Vererbung greift der dynamische Inhalt auf die Elemente der Zielplattform zu und nutzt die plattfomspezifischen Funktionalitäten über dessen Schnittstellen. Wenn der Generator für eine Zielplattform erst einmal erzeugt wurde, können weitere Apps ohne großen Aufwand ebenfalls für diese Plattform generiert werden. Jeder Generator muss die Besonderheiten der jeweiligen Handyplattform berücksichtigen und die Konzepte der MD 2 Sprache unterstützen. Das Konzept für den deklarativen Sprachstil wird explizit durch die Ausdrücke ihrer Semantik mittels der Zielplattform erreicht. Das wären hauptsächlich die objektorientierte und die imperativen Programmiersprachen, die von den Handyplattform unterstützt werden. Schwierig wird es bei Konzepten die nicht zwischen Android und ios übereinstimmen. Ist der Unterschied zu groß muss der Code-Generator die Lücke auf eine grundlegende Ebene überbrückt werden, ohne das Look & Feel der Handyplattformen zu verändern. Beispiel wäre das Konzept des Lebenszyklus in Android oder eine Tab-Navigation in ios. 3 Konzeption einer App mit dem MD 2 Framework Folgendes Kapitel erläutert die Konzeption einer Beispiel-App in der eine Ausleihe von Büchern ermöglicht wird. 3.1 Model Das Model (Datenmodell) der Beispiel-App ist im folgendem Listing 1.1 zu sehen: 1 package org. example. l i b r a r y. models 2 3 e n t i t y Book { 4 t i t l e : s t r i n g

5 5 author : s t r i n g ( o p t i o n a l ) 6 i s b n : s t r i n g { name ISBN } 7 } 8 e n t i t y LoanRequest { 9 bookrequested : Book 10 e mail : s t r i n g 11 } Listing 1.1. : Model (Datenmodell) einer Beispiel-App in MD 2 Entitäten gelten als wichtiges Element der Sprache, wobei jede Entität mit einem Namen versehen wird. Die Beispiel-App besitzt zwei Entitäten mit dem Namen Book und LoanRequest (Listing 1.1: Zeile 3, 8). Eine Entität kann vordefinierte Typen wie String, Integer und Date enthalten. Referenzierungen zu anderen Entität werden ebenfalls ermöglicht. Die Entität Book besitzt einen Titel, einen Autor und eine ISBN-Nummer, jeweils von dem Typ String (Listing 1.1: Zeile 4-6). In der Entität LoanRequest wird auf die Entität Book referenziert und sie enthält eine -Adresse vom Typ String (Listing 1.1: Zeile 9-10). Attribute und Referenzen können mit einem Namen versehen werden. Standardmäßig ist der Name gleich seiner Kennung. Die Angabe eines Namen für das Attribut isbn, setzt den Text seines Labels auf ISBN (Listing 1.1: Zeile 6). Soll ein Attribut kein Pflichtfeld in der UI sein, wird die Eigenschaft optional gesetzt. Für die Entität Book gilt der Autor nicht als Pflichtfeld (Listing 1.1: Zeile 5). Der Einsatz von typspezifischen Parametern ermöglicht einen Bereich, mit zulässigen Werten, zu beschränken. Enumerataionen werden von MD 2 ebenfalls unterstützt. 3.2 View Die View (Präsentation) der Beispiel-App ist im folgendem Listing 1.2 zu sehen: 1 package org. example. l i b r a r y. views 2 3 FlowLayoutPane MainView ( v e r t i c a l ) { 4 Label bookheader { t e x t Book } 5 AutoGenerator bookinfopart { 6 contentprovider bookprovider } 7 Button loadbookbtn ( Load book from ISBN ) 8 Label loanheader { t e x t Request Loan } 9 TextInput loan { l a b e l address 10 t o o l t i p P l e a s e p r o v i d e your e m a i l... } 11 Button loanbtn ( Loan t h i s book ) } 12 FlowLayoutPane InfoView ( v e r t i c a l ) { 13 Label i n f o ( I n f o. ) } 14 TabbedPane TabbedView { 15 MainView > Main 16 InfoView ( t a b T i t l e I n f o ) } Listing 1.2. : View einer Beispiel-App in MD 2 In der View-Komponente wird das User Interface (UI) der App definiert. Unterstützt werden zwei Arten von View-Elementen: Einzelne Inhalte und Container. Inhalts-Elemente können Labels, Buttons oder Texteingabefelder sein (Zeile 3-13). Diese werden in Pane Container-Komponenten gruppiert und sind einem Layout zugeordnet. Die Elemente werden abhängig vom Layout angeordnet. Die View der Beispiel-App besteht aus zwei Panes, die MainView und die InfoView. Beide nutzen das FlowLayout (Listing 1.2: Zeile 3, 12). Container

6 können verschachtelt werden. In Business-Apps werden gerne Panes mit Tabs eingesetzt. Jedes der Kind-Container wird als eigenständiger Tab in einer plattformspezifischen Tableiste angezeigt. Werden View-Elemente definiert, können sie durch andere View-Elemente referenziert werden. Auf diese Weise ergibt sich eine bessere Modularität und zugleich steigert es die Wiederverwendbarkeit. Die View der Beispiel-App nutzt ebenfalls eine Pane für eine Tableiste (Listing 1.2: Zeile 14). In dem Pane-Container wird auf die zuvor definierte MainView und InfoView referenziert, um diese über eine Tableiste aufzurufen(listing 1.2: Zeile 15-16). Die meisten View-Elemente können parametrisiert werden, um ein gewünschtes Aussehen zu erreichen. Zum Beispiel können Labels einem Style zugeordnet werden. MD 2 ermöglicht die Erstellung einer standardisierten Ansicht für eine Entität. Hierzu wird ein AutoGenerator, mit Angabe der Entität via ContentProviders, eingefügt. ContentProvider werden in der Controller-Komponente definiert und im Kapitel Controller näher erläutert. Nach der Generierung wird eine standardisierte Ansicht erstellt, welche Labels und Texteingabefelder für alle Attribute der Entität enthält. Zugleich schafft es eine Datenbindung zwischen den View-Elementen und den Daten. In der Beispiel-App wird eine standardisierte Ansicht für die Entität Book definiert(listing 1.2: Zeile 5-6). 3.3 Controller Der Controller (Programmsteuerung) der Beispiel-App ist im folgendem Listing 1.3 zu sehen: 1 package org. example. l i b r a r y. c o n t r o l l e r s 2 main{ 3 appname Library Applicat ion 4 appversion modelversion startview TabbedView. Main 7 o n I n i t i a l i z e d i n i t 8 defaultconnection someserver } 9 a c t i o n CombinedAction i n i t { 10 a c t i o n s bindevents mapfields } 11 a c t i o n CustomAction bindevents { 12 bind a c t i o n loadbook 13 on MainView. loadbookbtn. ontouch 14 bind a c t i o n sendloanrequest 15 on MainView. loanbtn. ontouch} 16 a c t i o n CustomAction mapfields { 17 map MainView. loan to loanprovider. 18 bind v a l i d a t o r RegExValidator 19 // s i m p l i f i e d and e r r o n e o u s r e g e x 20 ( regex [ a z a z ] + \ \. [ a z ]+ ) 21 on MainView. loan } 22 a c t i o n CustomAction loadbook { 23 c a l l DataAction ( load bookprovider ) 24 c a l l NewObjectAction ( loanprovider ) } 25 a c t i o n CustomAction sendloanrequest { 26 c a l l AssignObjectAction ( use bookprovider f o r loanprovider. bookrequested ) 27 c a l l DataAction ( save loanprovider ) } 28 c o n t e n t P r o v i d e r Book bookprovider { 29 providertype someserver 30 f i l t e r f i r s t where Book. i s b n e q u a l s 31 MainView. b ookinfopart [ Book. i s b n ]

7 32 } 33 contentprovider LoanRequest loanprovider { 34 providertype someserver } 35 remoteconnection someserver { 36 u r i http : / /... } Listing 1.3. : Controller einer Beispiel-App in MD 2 Der Controller verbindet die View- und die Model-Komponente miteinander. Weiterhin beschreibt es das Verhalten der App und spezifiziert Standardeinstellungen. Beispiele sind die Anzeige der Views oder Aktionen die beim Start ausgeführt werden sollen. Bezogen auf die Beispiel-App, die MainView wird die Startansicht, die definierte Aktion init wird beim Start ausgeführt und die Standardverbindung wird auf einem definierten Server gesetzt(listing 1.3: Zeile 6-8). Aktionen sind ein zentrales Element des Controllers. Benutzerdefinierte Aktionen (Zeile 7-19) führen andere Aktionen aus. Parameter steuern das Verhalten der spezifischen Instanz, bei der Instanziierung des Actionstyps. Beispiele sind die Ereignisbindung, die CRUD-Operatoren, das Datenmapping, die Navigation innerhalb der UI und der Zugriff auf Gerätefunktionen, wie das GPS. Das Konzept der Actions folgt als einzige nicht dem deklarativen Sprachstil, da es das Verhalten der App beschreibt. Actions können an Ereignisse gebunden werden. Es gibt drei Arten von Ereignissen. Zum einem können Ereignisse direkt aus der Benutzerinteraktion aus der GUI auftreten. Beispiel ist das Betätigen eines Buttons oder das Wischen auf dem Gerät. Daneben gibt es globale Ereignisse, die bei einer Änderung des Zustands der App auftreten. Zum Beispiel bei einer Trennung zum Remote-Server. Als drittes gibt es bedingte Ereignisse, welche den inneren Zustand prüfen und bei Bedingungen die Wahr sind auftreten. Ein Beispiel wäre ein Fehler bei der Überprüfung oder komplexe Ausdruck-Kombinationen von mehreren Modellen und/oder der View-Elemente. Für diesen Zweck hält MD 2 eine präzise Sprache mit booleschen Ausdrücken vor. Eine datengesteuerte Arbeitsweise ist ein zentrales Element des Frameworks. Content Provider bieten die Möglichkeit die App auf lokalen und über auf Remote Daten zugreifen zu lassen(zeile 21-27). Lokal wird auf eine Datenbank auf dem Gerät zugegriffen. Der Zugriff über Remote erfolgt durch eine definierte Schnittstelle. Content Provider spezifizieren die Typen der Daten die zur Verfügung gestellt werden (Zeile 21). Diese Typen können Entitäten in einem Datenmodell oder primitive Typen sein, die mehrere Werte enthalten können. Filter ermöglichen es durch Definition von String-Abfragen auf Objekte zuzugreifen die bestimmte Kriterien erfüllen. Zusätzlich bietet die Sprache verschieden Aktionstypen zum Aufruf von CRUD-Operatoren für die Content Provider an. Der Controller vereint das Model und die View durch die Datenbindung. Die Bindung erfolgt von einem Element aus der View auf ein Attribut eines Content Providers (Zeile 15). Auf diese Weise wird zwischen einem GUI Feld und dem vom Content Provider verwalteten Objekt eine Zwei-Wege Bindung ermöglicht. Eingabefeldern denen Datenelemente zugeordnet sind, können so validiert werden. Standardmäßig gelten für die Validierung die im Datenmodell definierten Datentypen und zusätzliche Angaben. Wenn ein Attribut zum Beispiel nicht optional ist, wird das zugehörige Eingabefeld auf Nicht-Null überprüft. Darüber

8 hinaus können Entwickler die Eigenschaften von Validatoren ergänzen oder ersetzen. Das Controller Model definiert ebenfalls Navigationspfade durch die App und Beschränkungen für die Benutzernavigation. Dies ist besonders wichtig wenn die GUI größtenteils aus TABs besteht, in den die Benutzer versuchen die Tabs zu jedem Zeitpunkt zu ändern. Das MD2 Workflow Konzept ermöglicht die Verwaltung solch komplexer Navigationszenarien. Einfache Aktionen zum Wechseln von Views sind ebenfalls Teil der Sprache.Ein Workflow wird in mehrere Abschnitte unterteilt die jeweils mit einem Container Element der View verbunden sind. Diese Container Elemente werden angezeigt sobald eine Stufe aktiv ist. Zusätzlich definiert eine Stufe Bedingungen die erfüllt werden müssen, bevor es dem Benutzer gestattet ist einen Schritt vorwärts oder rückwärts zu gehen. Beispielsweise kann eine App die Eingabe einer validen Adresse erfordern bevor ein Tab verlassen werden kann. Die Sprache unterstützt eine Vielzahl von Aktionen die in einem Workflow zur Navigation verwendet werden können, wie zum Beispiel das Wischen nach Links. 4 Generierung einer App mit MD Android Generator Die MD 2 -Bibliothek für Android implementiert zentrale Teile der Gesamtarchitektur, wie den Eventbus, das Workflowmanagement und das Datenmapping. Das Verhalten der jewiligen Teile wird durch definierte zentrale Klassen in der Bibliothek gesteuert. Dazu kommen Basisklassen, wie Entity, Cusom und Content- Provider. Diese Klassen werden durch anwendungsspezifischen Klassen erweitert, um die Spezifikation des Modells zu reflektieren. Daneben werden Bibliotheken für zusätzliche GUI-Elemente integriert, welche nicht Teil der standard Android Widgets sind. Der Android Generator unterstützt Android 3.0 Honeycombünd höher Versionen. Nach dem Starten des Code-Generators wird das Modell wie im folgenden Absatz beschrieben auf Android Java Code abgebildet. Der Code-Generator wandelt die Modell-Komponenten in Plain Old Java Objekte, kurz POJOs, um. Diese enthalten Annotationen um eine Serialisierung in JSON zu steuern. JSON wird wird verwenden um die Daten lokal zu speichern und für die Kommunikation im Backend zu ermöglichen. Für die View-Komponenten werden Android typische XML-Dateien generiert. Der Generator hält sich an die Android Design Richtlinien um ein nativen Look & Feel zu gewährleisten [7]. Viele Elemente aus der View können mit den UI Komponenten von Android realisiert werden. Komplexe Elemente werden aus Standardkomponenten von Android zusammengebaut. Das in MD 2 definierte FlowLayout wird mit dem in Android enthaltenen LinearLayout realisiert. Das Android TableLayout wird genutzt um das MD 2 Gridlayout umzusetzen. Das TabLayout wird über das Konzept der Aktionsleisten von Android realisiert. Die implementierten individuellen Tabs werden als Fragmente in die Ak-

9 tionsleiste eingefügt. Jeder Hauptcontainer der View wird als einzelne Aktivität implementiert. Für jedes Fragment und jede Aktivität wird eine Controller Klasse generiert, die auf den Android Lebenszyklus reagiert. Diese sind für die Initialisierung der View und die Registrierung von Ereignis-Listener am zentralen Ereignis-Bus verantwortlich. Eine Klasse innerhalb der Anwendung steuert die Initialisierungen der ganzen App und führt Aktionen bezüglich des Start-up aus. Der generierte Controller-Code enthält Unterklassen für jede definierte Aktion im Modell und definiert Anweisungen zur Erfüllung von Aufgaben durch Aktionen. Dazu rufen sie andere generierte Aktionen oder von der Bibliothek bereitgestellte Aktionen auf. Andere Klassen der Controller-Komponente befassen sich mit dem Workflow und den ContentProvidern. Der Zugriff auf Funktionalitäten der MD 2 Bibliothek für Android ermöglicht eine Umsetzung des Daten-Mappings und der Validierung durch Bezugnahme entsprechender Aktionen der Bibliothek. Neben den generierten XML und Java Daten für die verschiedenen MVC- Komponente, kopiert der Generator den statischen Inhalt und erstellt ein Eclipse Projekt. Dieses Projekt kann mit den Android Entwicklungstools kompiliert werden. Das Ergebnis der Beispiel-App ist in Abbildung 1 zu sehen. Abb. 1. Android 4.2 ios Generator Die MD 2 Bibliothek für ios ähnelt der Android Bibliothek in Funktionsumgang und Design. Eine Besonderheit von Object-C im Vergleich zu Java ist die Trennung von Deklaration und Implementierung in Header- und Implementierungsdateien in denen die Klassen aufgeteilt werden. Der Generator unterstützt ios ab Version 5.1. Da Apps in ios den MVC-Ansatz folgen, wird die Implementierung vereinfacht. Für die Umsetzung der Model-Komponente wird das Core Data Framework [8] von Apple benutzt. Dazu werden Object-C Klassen für die Entities und XML Dateien für deren Beziehungen erstellt.

10 Jedes Element eines Haupt- oder Tabulator Container(s) verwandelt sich in einer View-Klasse von Object-C, welche die jeweilige Benutzerschnittstelle aufbaut. Dies geschieht auf Basis des UIKit Framework von dem ios Cocoa Touch [9]. Alle UIKit Elemente werden in Widget verpackt um die Funktionalitäten zu verbessern. Weiterhin kapseln sie häufig benötigte Funktionen ein um die Generierung von UI-Klaseen zu verbessern. Diese Widget-Klassen und Layout- Klassen werden von der MD 2 Bibliothek für ios berücksichtigt. Die Controller-Logik erfodert keine Unterscheidung zwischen Tabs und anderen Views. Jede generierte View wird durch den entsprechenden Controller begleitet, welcher die View und die Daten initialisiert. Die Basisklasse für den Controller bietet die meisten Funktionen, sodass der View spezifische Controller klein gehalten werde kann. Ein Controller für die Tab-Leiste verwaltet die tablastigen Anwendungen um das Look & Feel von ios zu simulieren. Wie unter Android gibt es ein Intialisierungsklasse für die Steuerung des Start-Ups. Diese Klasse verbindet den Controller mit der View, bereitet die Content Provider vor und konfiguriert die App. Zuletzt wird die Kontrolle an die initialen Aktionen übergeben, welche im Modell definiert sind. Benutzerdefinierte Aktionen sind ähnlich wie unter Android definiert. Eine Liste von Anweisungen übernimmt alle Aufgaben die Teil einer Aktion sind. Dazu erzeugt sie die entsprechende Aktion oder nutzt die Aktion, welche von der Bibliothek bereitgestellt wird. ContentProvider, Ereignisverarbeitung, Workflow-Management und die Validierung sind in der MD 2 Bibliothek für ios implementiert und müssen nur durch den generierten Code instanziiert und konfiguriert werden. Der Generator erzeugt eine Projektdatei in dem spezifischen Format für XCode. Diese Umsetzung erfordert viel Mühe. Das liegt an der nicht standardisierten Syntax von XCode, ihr komplexes Format und es müssen alle darin liegenden Dateien aufgelistet und logisch in Verzeichnissen gruppiert werden. Das Ergebnis für die Beispiel-App ist in Abbildung 2 zu sehen. Abb. 2. ios

11 4.3 Backend Generator Dieser Generator interagiert nur mit der Modell Komponente, da im Backend nur Daten gespeichert und gelesen werden. Der Generator erzeugt eine Java EE 6 Anwendung, die auf jedem Anwendungsserver ausgeführt werden kann. Es wird ein Web-Service mit REST basierter Schnittstelle bereitgestellt. Das Backend definiert eine API über die Remote ContentProvider Zugang auf den Server und die dort bereitgestellten Daten bekommen. Jeder Server der in der API definiert ist, kann von Remote Providern angesprochen werden. Der Backend-Server kann als Ausgangspunkt zur Implementierung eines Servers dienen, ist aber voll funktionsfähig in Bezug auf alle CRUD-Operatoren. Die Implementierung der Model- Komponente geschieht auf Basis der Java Persistence API (JPA). Der Zugriff und die Manipulation der entsprechenden Datenbank wird mit Enterprise Java Beans (EJB) realisiert. Die Web-Service Schicht verwendet für die Angabe und die Umsetzung der Schnittstelle die Java-Api für RESTful Web Service (Jax-RS). Das Abrufen von Daten wird über HTTP-Get, Erstellung und Aktualisierung über PUT und das Löschen mit DELETE ermöglicht. Der Elementname ist Teil des Request-Pfads und Abfragen für den Filter werden im Abfragebereich des Pfads angegeben. Die Daten werden mittels des JSON-Formats übertragen. Für eine schnelle Bereitstellung der Anwendung, erstellt der Generator eine Eclipse Projekt Datei mit mehrere Java EE Konfigurationsdateien in XML. 5 Zusammenfassung und Ausblick Mit Hilfe des MD 2 Framework wird in dieser Arbeit die modellgetriebene Cross- Plattform-App-Entwicklung beschrieben. Hierzu wurde der Hintergrund der Arbeit und die bisherigen Ansätze für die mobile Cross-Plattform Entwicklung dargelegt. Dann wurde die modellgetriebene Mobileentwicklung vorgestellt und die Anforderungen für die Entwicklung von Business-Apps. Der Aufbau des Framework wird detailliert Beschrieben. Das MD 2 Framework wird stufenweise Erweitert mit dem Ziel mehr Anwendungen, die auf standardisierte Interface-Elemente basieren, zu unterstützen. Die theoretische Beurteilung und Bewertung mit Unternehmenspartnern soll die Qualität steigern. Die Integration nicht-lineare Workflows und das Generation Gap Pattern soll erweiterte Aktionen, Bedingungen, etc. ermöglichen. Das erlaubt die Modifikation an generierte Apps, ohne das diese durch eine Neugenerierung verloren gehen. Ein weiteres Ziel ist die Spezifikation der Geschäftslogik im Modell. Literatur 1. Henning Heitkötter, Sebastian Hanschke, and Tim A. Majchrzak. Comparing crossplatform development approaches for mobile applications. In Karl-Heinz Krempels and José Cordeiro, editors, WEBIST, pages SciTePress, Appcelerator Inc. Enterprise mobile application development platform,

12 3. XMLVM, J2ObjC, https://code.google.com/p/j2objc/. 5. John W. Lloyd. Practical advtanages of declarative programming. In María Alpuente, Roberto Barbuti, and Isidro Ramos, editors, GULP-PRODE (1), pages 18 30, XTend, Android Open Source Project. Design android developers, https://developer.android.com/design/index.html. 8. Apple Inc. Data management in ios, https://developer.apple.com/technologies/ios/data-management.html. 9. Apple Inc. Cocoa touch frameworks, https://developer.apple.com/technologies/ios/cocoa-touch.html.

PLATTFORMÜBERGREIFENDE ENTWICKLUNG VON APPS

PLATTFORMÜBERGREIFENDE ENTWICKLUNG VON APPS PLATTFORMÜBERGREIFENDE ENTWICKLUNG VON APPS DIPL.-WIRT.INFORM. HENNING HEITKÖTTER PRAKTISCHE INFORMATIK, UNIVERSITÄT MÜNSTER 1 GEGENÜBERSTELLUNG NATIVE VS. PLATTFORMÜBERGREIFENDE ENTWICKLUNG 2 ENTWICKLUNGSANSÄTZE

Mehr

Mobile Apps mit DSLs. und entfernter Codegenerierung. Codierst Du noch oder generierst Du schon? Powered by

Mobile Apps mit DSLs. und entfernter Codegenerierung. Codierst Du noch oder generierst Du schon? Powered by Mobile Apps mit DSLs C1 und entfernter Codegenerierung Codierst Du noch oder generierst Du schon? Generative Software GmbH Freiburg Inhalt Plattformabhängige Entwicklung JavaScript Firefox OS Java Android

Mehr

Entwicklung und Integration mobiler Anwendungen. Oracle Deutschland B.V. & Co. KG

Entwicklung und Integration mobiler Anwendungen. <Speaker> Oracle Deutschland B.V. & Co. KG Entwicklung und Integration mobiler Anwendungen Oracle Deutschland B.V. & Co. KG Global Users (Millions) Der Trend ist eindeutig. Trend zu mobilen Endgeräten Wachstum des mobilen Datenverkehrs

Mehr

MD 2 -DSL eine domänenspezifische Sprache zur Beschreibung und Generierung mobiler Anwendungen

MD 2 -DSL eine domänenspezifische Sprache zur Beschreibung und Generierung mobiler Anwendungen MD 2 -DSL eine domänenspezifische Sprache zur Beschreibung und Generierung mobiler Anwendungen Henning Heitkötter,Tim A. Majchrzak, Herbert Kuchen Institut für Wirtschaftsinformatik Universität Münster

Mehr

MD 2 -DSL eine domänenspezifische Sprache zur Beschreibung und Generierung mobiler Anwendungen

MD 2 -DSL eine domänenspezifische Sprache zur Beschreibung und Generierung mobiler Anwendungen MD 2 -DSL eine domänenspezifische Sprache zur Beschreibung und Generierung mobiler Anwendungen Henning Heitkötter, Tim A. Majchrzak, Herbert Kuchen Institut für Wirtschaftsinformatik Universität Münster

Mehr

PLATTFORMÜBERGREIFENDE ENTWICKLUNG MITHILFE MODELLGETRIEBENER METHODEN UND TECHNOLOGIEN

PLATTFORMÜBERGREIFENDE ENTWICKLUNG MITHILFE MODELLGETRIEBENER METHODEN UND TECHNOLOGIEN PLATTFORMÜBERGREIFENDE ENTWICKLUNG MITHILFE MODELLGETRIEBENER METHODEN UND TECHNOLOGIEN Mathias Slawik, WI (M), 3. FS Aktuelle Themen der Wirtschaftsinformatik, HTW Berlin, WS 10/11 Gliederung 2 Methode

Mehr

ANDROID. Analyse der Android Plattform. Andre Rein, Johannes Florian Tietje. 28. Oktober 2010. FH-Gieÿen-Friedberg Android Praktikum

ANDROID. Analyse der Android Plattform. Andre Rein, Johannes Florian Tietje. 28. Oktober 2010. FH-Gieÿen-Friedberg Android Praktikum Analyse der Android Plattform Andre Rein, Johannes Florian Tietje FH-Gieÿen-Friedberg Android Praktikum 28. Oktober 2010 Topics 1 Übersicht Android Plattform Application Framework Activities und Services

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

3.9 Grundelemente einer Benutzeroberfläche

3.9 Grundelemente einer Benutzeroberfläche 92 3 Grundlagen einer ios-anwendung 3.8.4 Target-Actions Einer der häufigsten Anwendungsfälle bei einer Oberfläche ist das Betätigen einer Schaltfläche durch einen Anwender, woraufhin eine bestimmte Aktion

Mehr

Entwicklung von Web-Anwendungen auf JAVA EE Basis

Entwicklung von Web-Anwendungen auf JAVA EE Basis Entwicklung von Web-Anwendungen auf JAVA EE Basis Java Enterprise Edition - Überblick Prof. Dr. Bernhard Schiefer Inhalt der Veranstaltung Überblick Java EE JDBC, JPA, JNDI Servlets, Java Server Pages

Mehr

Softwareentwicklung mit Enterprise JAVA Beans

Softwareentwicklung mit Enterprise JAVA Beans Softwareentwicklung mit Enterprise JAVA Beans Java Enterprise Edition - Überblick Was ist J2EE Java EE? Zunächst mal: Eine Menge von Spezifikationen und Regeln. April 1997: SUN initiiert die Entwicklung

Mehr

Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap

Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap Proseminar Objektorientiertes Programmieren mit.net und C# Florian Schulz Institut für Informatik Software & Systems Engineering Einführung Was hat Cross-Plattform

Mehr

Erste Erfahrungen mit Android

Erste Erfahrungen mit Android Java User Group München, 22. 9. 2008 Erste Erfahrungen mit Android 1 Was ist Android? Die erste vollständige, offene und freie Plattform für mobile Telefone Entwickelt von der Open Handset Alliance (Telecoms,

Mehr

Graphischer Editor für die technologieunabhängige User Interface Modellierung

Graphischer Editor für die technologieunabhängige User Interface Modellierung Universität Augsburg Lehrstuhl für Softwaretechnik und Programmiersprachen Prof. Dr. Bernhard Bauer Praktikum Modellgetriebene Softwareentwicklung SS 2008 Graphischer Editor für die technologieunabhängige

Mehr

Modellgetriebene Softwareentwicklung bei der IBYKUS AG

Modellgetriebene Softwareentwicklung bei der IBYKUS AG Modellgetriebene Softwareentwicklung bei der IBYKUS AG Theorie Teil 4: Domänenspezifische Sprachen Dr. Steffen Skatulla IBYKUS AG 1 Inhalt Teil 4: Domänenspezifische Sprachen Nutzung vorhandener Sprachen

Mehr

- Entwurfsphase: Entwurfsbeschreibung Gesamtsystem - Version: 1.0

- Entwurfsphase: Entwurfsbeschreibung Gesamtsystem - Version: 1.0 Projektbezeichnung Projektleiter Verantwortlich - Entwurfsphase: Entwurfsbeschreibung Gesamtsystem - Version: 1.0 MSP-13 - Integration eines Semantischen Tagging Systems in Microsoft Sharepoint Martin

Mehr

OpenCms jbpm Workflow Engine. OpenCms und jbpm Workflow Engine

OpenCms jbpm Workflow Engine. OpenCms und jbpm Workflow Engine OpenCms und jbpm Workflow Engine Geschäftliche Abläufe in einem Unternehmen folgen zu einem großen Prozentsatz beschreibbaren Prozessen, den so genannten Geschäftsprozessen. Diese Erkenntnis führte zum

Mehr

Android Kurs Online Kurs Entwicklung auf Android-Handys

Android Kurs Online Kurs Entwicklung auf Android-Handys Android Kurs Online Kurs Entwicklung auf Android-Handys Akademie Domani info@akademiedomani.de Allgemeines Programm des Kurses Modul Eins - Programmierung J2ee 1) Grundlegende Java - Programmierung : Grundlegende

Mehr

Web-Anwendungsentwicklung mit dem Delivery Server

Web-Anwendungsentwicklung mit dem Delivery Server Web-Anwendungsentwicklung mit dem Delivery Server Java-Framework auf Basis der Open API Bernfried Howe, Webertise Consulting GmbH WEBertise Consulting Dipl. Informatiker (Wirtschaftsinformatik) 2001-2010

Mehr

Einführung in die Cross-Plattform Entwicklung Das Intel XDK

Einführung in die Cross-Plattform Entwicklung Das Intel XDK Einführung in die Cross-Plattform Entwicklung Das Intel XDK Einführung Dieses Hands-on-Lab (HOL) macht den Leser mit dem Intel XDK vertraut. Es wird Schritt für Schritt die erste eigene Hybrid-App entwickelt

Mehr

Rechnernetze Projekt SS 2015

Rechnernetze Projekt SS 2015 30/03/15 Seite 1 Aspektorientierte Programmierung logische Aspekte (Concerns) im Programm separieren Crosscutting Concerns (Ziel: generische Funktionalitäten über mehrere Klassen hinweg zu verwenden -

Mehr

Individuelle Erweiterung des generierten Codes. 16. Januar 2013

Individuelle Erweiterung des generierten Codes. 16. Januar 2013 Individuelle Erweiterung des generierten Codes 16. Januar 2013 Überblick Welche Möglichkeiten zur individuellen Erweiterung von generiertem Code gibt es? Innerhalb eines Moduls (Klasse) Auf Modulebene

Mehr

Übungsaufgabe Transaktion als Middleware

Übungsaufgabe Transaktion als Middleware Übungsaufgabe Transaktion als Middleware und Java Persistence API Client/Server Abstraktes Komponentenmodell Entscheidende Punkte Erweiterung der Invoke-Methode Context-Verwaltung Transaktionsbehandlung

Mehr

Innovator 2007. Anbindung an openarchitectureware. Connect. Klaus Weber. www.mid.de

Innovator 2007. Anbindung an openarchitectureware. Connect. Klaus Weber. www.mid.de Innovator 2007 Anbindung an openarchitectureware Klaus Weber Connect www.mid.de Anbindung an openarchitectureware (oaw) Wozu dient die Anbindung an openarchitectureware? Für Innovator Object excellence

Mehr

ZenQuery - Enterprise Backend as a Service Single Page Applications mit AngularJS und Spring MVC. - Björn Wilmsmann -

ZenQuery - Enterprise Backend as a Service Single Page Applications mit AngularJS und Spring MVC. - Björn Wilmsmann - ZenQuery - Enterprise Backend as a Service Single Page Applications mit AngularJS und Spring MVC - Björn Wilmsmann - ZenQuery Enterprise Backend as a Service Unternehmen horten Daten in Silos ZenQuery

Mehr

G s e a s m a t m ar a ch c i h tek e tur u I und IoC

G s e a s m a t m ar a ch c i h tek e tur u I und IoC Gesamtarchitektur I und IoC Schichten einer Web-Anwendung Initiiert durch J2EE und Spring: Strukturierte Sicht auf UI und Fachlogik (Domäne) Ergibt 5 Schichten: Man unterscheidet Präsentations- und Domänenmodell!

Mehr

Projekt AGB-10 Fremdprojektanalyse

Projekt AGB-10 Fremdprojektanalyse Projekt AGB-10 Fremdprojektanalyse 17. Mai 2010 1 Inhaltsverzeichnis 1 Allgemeines 3 2 Produktübersicht 3 3 Grundsätzliche Struktur und Entwurfsprinzipien für das Gesamtsystem 3 3.1 Die Prefuse Library...............................

Mehr

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java Präsentation zur Diplomarbeit von Übersicht Java 2 Enterprise Edition Java Servlets JavaServer Pages Enterprise JavaBeans Framework

Mehr

Integrating Architecture Apps for the Enterprise

Integrating Architecture Apps for the Enterprise Integrating Architecture Apps for the Enterprise Ein einheitliches Modulsystem für verteilte Unternehmensanwendungen Motivation und Grundkonzept Inhalt Problem Ursache Herausforderung Grundgedanke Architektur

Mehr

Glossar. Launching auf.

Glossar. Launching auf. 243 Ad Hoc Distribution Die Ad Hoc Distribution ist eine Möglichkeit, um Ihre entwickelte Anwendung auf anderen Endgeräten zu verteilen. Diese Art der Verteilung erfolgt ohne den App Store. Die Anzahl

Mehr

Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH

Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme Tillmann Schall, anaptecs GmbH : Agenda Grundlagen modellgetriebener Entwicklungsprozesse Schritte zur Einführung Erfahrungen

Mehr

Christian Kurz SWT Projekt WS 07/08

Christian Kurz SWT Projekt WS 07/08 Christian Kurz SWT Projekt WS 07/08 1. Allgemeine Aspekte der generativen GUI- Entwicklung 2. Entwicklung mit Hilfe von GUI-Designern 3. Entwicklung mit Hilfe deklarativer GUI- Sprachen 4. Modellgetriebene

Mehr

Einführung in die Cross-Plattform Entwicklung Das Intel App Framework

Einführung in die Cross-Plattform Entwicklung Das Intel App Framework Einführung in die Cross-Plattform Entwicklung Das Intel App Framework Einführung Dieses Hands-on-Lab (HOL) macht den Leser mit dem Intel App Framework vom Intel XDK vertraut. Es wird Schritt für Schritt

Mehr

Agenda. Clients aus drei verschiedenen Perspektiven: Was ist ein Dialog? Komponentenarchitektur innerhalb eines Dialoges

Agenda. Clients aus drei verschiedenen Perspektiven: Was ist ein Dialog? Komponentenarchitektur innerhalb eines Dialoges Komponentenbasierte Client-Architektur Hamburg, 16.11.2007 Bernd Olleck IT-Beratung Olleck Agenda Clients aus drei verschiedenen Perspektiven: Technische Infrastruktur Fachliche Sicht Aufgaben eines Clients

Mehr

Codegeneratoren mit Xtend2. 11.04.2012, A. Arnold

Codegeneratoren mit Xtend2. 11.04.2012, A. Arnold Codegeneratoren mit Xtend2 11.04.2012, A. Arnold Copyright 2012 anderscore GmbH Inhalt 1. Was ist Xtend2? 2. Xtend2 Konzepte 3. Hands On! 3 4 8 20 2 Was ist Xtend2? Funktionale, objektorientierte Sprache

Mehr

Architekturen mobiler Multi Plattform Apps

Architekturen mobiler Multi Plattform Apps Architekturen mobiler Multi Plattform Apps Wolfgang Maison & Felix Willnecker 06. Dezember 2011 1 Warum Multi- Plattform- Architekturen? Markt. Apps für Smartphones gehören zum Standardinventar jeder guten

Mehr

Ein mobiler Electronic Program Guide für Android

Ein mobiler Electronic Program Guide für Android Whitepaper Telekommunikation Ein mobiler Electronic Program Guide für Android Prototyp für Android Apps 2011 SYRACOM AG 1 Einleitung Apps Anwendungen für mobile Geräte sind derzeit in aller Munde. Durch

Mehr

Mobile Agenten am Beispiel JADE (Java Agent DEvelopment Framework) Vorstellung in der Übung zu Konzepte Verteilter Systeme

Mobile Agenten am Beispiel JADE (Java Agent DEvelopment Framework) Vorstellung in der Übung zu Konzepte Verteilter Systeme Mobile Agenten am Beispiel JADE (Java Agent DEvelopment Framework) Vorstellung in der Übung zu Konzepte Verteilter Systeme Agenda Mobile Agenten allgemein JADE - Java Agent DEvelopment Framework Anwendungsfall

Mehr

Einführung in Betriebssysteme

Einführung in Betriebssysteme Einführung in Betriebssysteme APPLE ios Entwicklung von ios Entwickelt auf der Basis von MacOS X UNIX Vorgestellt am 9.1.2007 Zusammen mit iphone Markenname von Cisco Internetwork Operating System Für

Mehr

App-Entwicklung mit Titanium

App-Entwicklung mit Titanium Masterstudienarbeit Betreuung Prof. Dr. M. von Schwerin 1 Gliederung 1.Motivation 2.Aufgabenstellung 3.Projektbeschreibung 4.Projektstatusbericht 5.Fazit und Ausblick 2 1.Motivation Verbreitung von Smartphones

Mehr

Technische Beschreibung: EPOD Server

Technische Beschreibung: EPOD Server EPOD Encrypted Private Online Disc Technische Beschreibung: EPOD Server Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee JKU Linz Institut für

Mehr

SAP Mobile Platform MÜNSTER 10.04.2013. best practice consulting Aktiengesellschaft Raboisen 32 20095 Hamburg T +49 40 303752-0 F +49 40 303752-77

SAP Mobile Platform MÜNSTER 10.04.2013. best practice consulting Aktiengesellschaft Raboisen 32 20095 Hamburg T +49 40 303752-0 F +49 40 303752-77 MÜNSTER 10.04.2013 SAP Mobile Platform best practice consulting Aktiengesellschaft Raboisen 32 20095 Hamburg T +49 40 303752-0 F +49 40 303752-77 E info@bpc.ag W www.bpc.ag Seite 1 18.04.2013 Agenda Einleitung

Mehr

Integration mobiler Endgeräte in Medizinprodukte und Medizintechnik-nahe Produkte

Integration mobiler Endgeräte in Medizinprodukte und Medizintechnik-nahe Produkte Integration mobiler Endgeräte in Medizinprodukte und Medizintechnik-nahe Produkte Agenda Problemstellung Medizinprodukt App Grundlagen Szenarien (Problemstellungen und Lösungsansätze) 03.06.2013 2 Innovationen

Mehr

Datenhaltung für Android Model First. 30.03.2011 Christian Ingenhaag, Frederik Götz, Carl Steeg

Datenhaltung für Android Model First. 30.03.2011 Christian Ingenhaag, Frederik Götz, Carl Steeg Datenhaltung für Android Model First 30.03.2011 Christian Ingenhaag, Frederik Götz, Carl Steeg Agenda Datenhaltung in Android Motivation / Projektziele Projekt Umsetzung Stand der Entwicklung Fazit 2 Datenhaltung

Mehr

1 Entwickeln mit PhoneGap

1 Entwickeln mit PhoneGap 1 1.1 Das Cross-Plattform-Problem Bevor ich mit Ihnen in die praktische Entwicklung einsteige, möchte ich Ihnen von einem kurzen Gespräch berichten, das sich vor einiger Zeit in der IT-Abteilung eines

Mehr

Das Interceptor Muster

Das Interceptor Muster Das Interceptor Muster Implementierung des Interceptor Musters basierend auf OSGi and Friends Benjamin Friedrich Hochschule für Technik und Wirtschaft des Saarlandes Praktische Informatik - Entwurfsmuster

Mehr

Appery.io Mobile Apps schnell und einfach entwickeln

Appery.io Mobile Apps schnell und einfach entwickeln Appery.io Mobile Apps schnell und einfach entwickeln Cloud-basierte Entwicklungsumgebung, keine lokale Installation von Entwicklungsumgebung nötig. Technologie: HTML5. JQuery Mobile, Apache Cordova. Plattformen:

Mehr

Einführung in Android. 9. Dezember 2014

Einführung in Android. 9. Dezember 2014 Einführung in Android 9. Dezember 2014 Was ist Android? Software für mobile Geräte: Betriebssystem Middleware Kernanwendungen Android SDK: Tools und APIs zur Entwicklung von Anwendungen auf der Android-Plattform

Mehr

Android Context Twitter. Software Engineering Projekt WS 09/10

Android Context Twitter. Software Engineering Projekt WS 09/10 Software Engineering Projekt WS 09/10 Gliederung Motivation Zielsetzung Grundlagen Implementation Komponentenüberblick Komponentenkommunikation Serverkomponenten (ACT) Ergebnisse / Zusammenfassung 2 Motivation

Mehr

Modellgetriebene Softwareentwicklung von mobilen Anwendungen. Gabriele Taentzer WS 2014/15 Philipps-Universität Marburg

Modellgetriebene Softwareentwicklung von mobilen Anwendungen. Gabriele Taentzer WS 2014/15 Philipps-Universität Marburg Modellgetriebene Softwareentwicklung von mobilen Anwendungen WS 2014/15 Philipps-Universität Marburg Organisation der LV Umfang: 6 SWS, 9 ECTS Punkte Veranstalter:, Daniel Strüber, Steffen Vaupel Kontakt:

Mehr

Benutzerdokumentation Web-Portal

Benutzerdokumentation Web-Portal GRUPP: SWT0822 Benutzerdokumentation Web-Portal Yet Another Reversi Game Martin Gielow, Stephan Mennicke, Daniel Moos, Christine Schröder, Christine Stüve, Christian Sura 05. Mai 2009 Inhalt 1. Einleitung...3

Mehr

Programmierung von Client/Server- Anwendungen

Programmierung von Client/Server- Anwendungen Programmierung von Client/Server- Anwendungen Komponenten des Web-Containers (Java EE) SoSe2015 Prof. Dr. Andreas Schmietendorf 1 Übersicht zur Vorlesung Entwicklung der Java Enterprise Edition Servlets,

Mehr

Mobile Applications. Adrian Nägeli, CTO bitforge AG

Mobile Applications. Adrian Nägeli, CTO bitforge AG Mobile Applications Adrian Nägeli, CTO bitforge AG Inhalt Vorstellung Marktübersicht Entwicklung Adrian Nägeli Dipl. Inf.-Ing FH Seit 2005 bei bitforge bitforge AG Standort Rapperswil-Jona Gründung 2004

Mehr

3 Anwendungsarchitektur und Entwicklungsumgebung

3 Anwendungsarchitektur und Entwicklungsumgebung 21 3 Anwendungsarchitektur und Bei den Entwicklern von Web-basierten Dialogsystemen hat sich im Laufe der Zeit eine Vorgehensweise im Design von Anwendungen entwickelt, dies es ermöglicht, flexible Web-Dialoge

Mehr

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2010 Gerald.Ehmayer@borland.com

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2010 Gerald.Ehmayer@borland.com Web Services Java Praktikum SS 2010 Gerald.Ehmayer@borland.com 1 Web Services Einführung Definition, Eigenschaften, Anwendungen... JAX-RPC Überblick, Architektur... JAX Übersicht, Architektur Java Praktikum

Mehr

Mobile Anwendungen im SAP-Umfeld

Mobile Anwendungen im SAP-Umfeld Erstes Symposium für neue IT in Leipzig 27. September 2013 Michael Rentzsch Informatik DV GmbH michael.rentzsch@informatik-dv.com +49.341.462586920 IT-Trend: Mobile Mobile might be one of the most interesting

Mehr

09.06.2003 André Maurer andre@maurer.name www.andre.maurer.name Wirtschaftsinformatik FH 3.5 Fachhochschule Solothurn, Olten

09.06.2003 André Maurer andre@maurer.name www.andre.maurer.name Wirtschaftsinformatik FH 3.5 Fachhochschule Solothurn, Olten Aktuelle Themen der Wirtschaftsinformatik Zusammenfassung 09.06.2003 André Maurer andre@maurer.name www.andre.maurer.name Wirtschaftsinformatik FH 3.5 Fachhochschule Solothurn, Olten 1 Serverseitige Webprogrammierung

Mehr

Leichtgewichtige Web 2.0-Architektur für komplexe Business-Anwendungen Nicolas Moser PRODYNA AG

Leichtgewichtige Web 2.0-Architektur für komplexe Business-Anwendungen Nicolas Moser PRODYNA AG 05.07.2012 Leichtgewichtige Web 2.0-Architektur für komplexe Business-Anwendungen Nicolas Moser PRODYNA AG Agenda 01 Einführung 02 Architektur 03 Lösungen 04 Zusammenfassung 2 2 Agenda 01 Einführung 02

Mehr

Mobile App Development. - Einführung -

Mobile App Development. - Einführung - Mobile App Development - Einführung - Inhalt Organisatorisches Vorlesungsinhalt Mobile Geräte Android Architektur App Aufbau Praktikum Organisatorisches 4 SWS, 5 ECTS 2 Vorlesung / 2 Praktikum ca. 10 Wochen

Mehr

Lieferung 7.1 Plattformspezifische Generatortemplates für Code-Gerüst, Test, Konfiguration der Qualitätswerkzeuge

Lieferung 7.1 Plattformspezifische Generatortemplates für Code-Gerüst, Test, Konfiguration der Qualitätswerkzeuge Lieferung 7.1 Plattformspezifische Generatortemplates für Code-Gerüst, Test, Konfiguration der Qualitätswerkzeuge für das BMBF-Projekt Modellgetriebene agile Entwicklung für mobile Anwendungen (ModAgile

Mehr

Datenhaltung für Android. Model First

Datenhaltung für Android. Model First Datenhaltung für Android Model First Frederik Götz, Johannes Tysiak 26.05.2011 Unser Ziel! 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 2 Agenda Android Quickstart Datenhaltung

Mehr

Praktikum ios-entwicklung im Sommersemester 2015 Übungsblatt 3

Praktikum ios-entwicklung im Sommersemester 2015 Übungsblatt 3 Ludwig-Maximilians-Universität München Institut für Informatik Lehrstuhl für Mobile und Verteilte Systeme Prof. Dr. Claudia Linnhoff-Popien Praktikum ios-entwicklung im Sommersemester 2015 Übungsblatt

Mehr

17 Komponentenbasiertes Software-Engineering

17 Komponentenbasiertes Software-Engineering 17 Komponentenbasiertes Software-Engineering 17.0 Einführung Lernziele Grundlagen, Prinzipien und Probleme des CBSE 17.1 Komponenten und Komponentenmodelle Komponenten und ihre Eigenschaften Komponentenmodelle

Mehr

Version 1.0 Erstellt am 12.12.2014 Zuletzt geändert am 17.12.2014. Gültig für Release 1.0.0.0

Version 1.0 Erstellt am 12.12.2014 Zuletzt geändert am 17.12.2014. Gültig für Release 1.0.0.0 Version 1.0 Erstellt am 12.12.2014 Zuletzt geändert am 17.12.2014 Gültig für Release 1.0.0.0 Inhalt 1 WebPart Site Informationen 3 1.1 Funktionalität 3 1.2 Bereitstellung und Konfiguration 4 2 WebPart

Mehr

7 Plugins einbinden. 7.1 Beispiel»Die Taschenlampe«

7 Plugins einbinden. 7.1 Beispiel»Die Taschenlampe« 201 PhoneGap bringt einen standardisierten Hardwarezugriff für Smartphones mit. Aber was passiert, wenn Sie mehr wollen: Wenn Sie eine Hardware per Bluetooth ansprechen wollen oder Features der jeweiligen

Mehr

App-Entwicklung für Android

App-Entwicklung für Android App-Entwicklung für Android Einleitung - Systemarchitektur Hochschule Darmstadt WS15/16 1 Inhalt Historie Systemarchitektur Sandbox 2 Motivation Kontra Pro Limitierte Größe Begrenzte Ressourcen Kein Standardgerät

Mehr

Vergleichsstudie zur Entwicklung von mobilen Applikationen auf der Basis von Android, ios und HTML5

Vergleichsstudie zur Entwicklung von mobilen Applikationen auf der Basis von Android, ios und HTML5 Vergleichsstudie zur Entwicklung von mobilen Applikationen auf der Basis von Android, ios und HTML5 Impressum Herausgeber: Bader&Jene Software-Ingenieurbüro GmbH Schauenburgerstrasse 116 D-24118 Kiel Tel:

Mehr

Moderne Benutzeroberflächen für SAP Anwendungen

Moderne Benutzeroberflächen für SAP Anwendungen Seite 1 objective partner für SAP Erfahrungen mit dem UI-Development Kit für HTML5 (SAPUI5) - 19.06.2012 Seite 2 Quick Facts objective partner AG Die objective partner AG 1995 gegründet mit Hauptsitz in

Mehr

Mobile Application Development

Mobile Application Development Mobile Application Development Android: Einführung Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Lernziele Der/die Kursbesucher/in kann

Mehr

Enterprise Java Beans Einführung

Enterprise Java Beans Einführung Enterprise Java Beans Einführung Vorlesung 8 Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht EJBs im JEE Umfeld Verschiedene Typen von EJBs Von der Javaklasse

Mehr

UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18

UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18 UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18 Software Testing Automatisiert Manuell 100% 70% 1 Überwiegender Teil der Testing Tools fokusiert auf automatisiertes Testen Microsoft

Mehr

Erweiterung für Premium Auszeichnung

Erweiterung für Premium Auszeichnung Anforderungen Beliebige Inhalte sollen im System als Premium Inhalt gekennzeichnet werden können Premium Inhalte sollen weiterhin für unberechtigte Benutzer sichtbar sein, allerdings nur ein bestimmter

Mehr

Was ist ein Computerprogramm?

Was ist ein Computerprogramm? Was ist ein Computerprogramm? Michael Sonntag Institut für Informationsverarbeitung und Mikroprozessortechnik (FIM) Johannes Kepler Universität Linz, Österreich sonntag@fim.uni-linz.ac.at 1 Problemaufriss

Mehr

Entwicklung einer domänenspezifischen Modellierungssprache. 12. November 2014

Entwicklung einer domänenspezifischen Modellierungssprache. 12. November 2014 Entwicklung einer domänenspezifischen Modellierungssprache 12. November 2014 Überblick Analyse einer Infrastruktur für mobile Anwendungen: Welche Anwendungen sollen generiert werden? Welche Architektur?

Mehr

Ruby on Rails. Florian Ferrano Ralf Heller Markus Nagel

Ruby on Rails. Florian Ferrano Ralf Heller Markus Nagel Ruby on Rails Florian Ferrano Ralf Heller Markus Nagel Überblick Ruby on Rails Ruby Rails Geschichte MVC allgemein MVC in Rails Scaffolding Webserver Installation Beispiele Wo wird Rails verwendet? Ausblick

Mehr

Erfahrungen und Erkenntnisse. Klaus Richarz, HBT GmbH

Erfahrungen und Erkenntnisse. Klaus Richarz, HBT GmbH Erfahrungen und Erkenntnisse Klaus Richarz, HBT GmbH Java Enterprise Edition 5.0 JBoss Seam Konsequenzen für Realisierung Qualitätssicherung Build & Deployment Fazit & Empfehlungen JBoss Seam in Projekten,

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

Mehr

Business Applika-onen schnell entwickeln JVx Framework - Live!

Business Applika-onen schnell entwickeln JVx Framework - Live! Business Applika-onen schnell entwickeln JVx Framework - Live! - Enterprise Applica-on Framework h&p://www.sibvisions.com/jvx JVx ermöglicht in kürzester Zeit mit wenig Source Code hoch performante professionelle

Mehr

Fork Leitfaden. BibApp Android

Fork Leitfaden. BibApp Android Fork Leitfaden BibApp Android letzte Aktualisierung: 24. April 2013 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einleitung 2 2 Eclipse Projekt 2 3 Abhängigkeiten 2 4 Konfiguration 3 4.0.1 Paketname...............................

Mehr

Magento Theming Ein Einstieg Rainer Wollthan

Magento Theming Ein Einstieg Rainer Wollthan Magento Theming Ein Einstieg Rainer Wollthan Überblick Vorbereitung Datei Struktur Adminbereich Layout XML Block Template Magento Theming macht Spaß! Vorbereitung Produkte Marketingmaßnahmen Design Länder

Mehr

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007 Eclipse Equinox als Basis für Smart Client Anwendungen Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007 Übersicht Definition / Architektur Smart Client Smart Client mit RCP / Equinox Gesamtfazit

Mehr

1. Software-Plattform Android Android. Was ist Android? Bibliotheken, Laufzeitumgebung, Application Framework

1. Software-Plattform Android Android. Was ist Android? Bibliotheken, Laufzeitumgebung, Application Framework 1. Software-Plattform Android Android Was ist Android? Plattform und Betriebssystem für mobile Geräte (Smartphones, Mobiltelefone, Netbooks), Open-Source Linux-Kernel 2.6 Managed Code, Angepasste Java

Mehr

XPages Good to know. Benjamin Stein & Pierre Hein Stuttgart 7. Mai 2015

XPages Good to know. Benjamin Stein & Pierre Hein Stuttgart 7. Mai 2015 XPages Good to know Benjamin Stein & Pierre Hein Stuttgart 7. Mai 2015 Agenda 1. Einführung Was sind XPages? 2. Allgemeine Tipps Allgemeine Tipps für die Verwendung von XPages 3. Designer Tipps Tipps für

Mehr

Die nächste Revolution in der modelgetriebenen Entwicklung?

Die nächste Revolution in der modelgetriebenen Entwicklung? Die nächste Revolution in der modelgetriebenen Entwicklung? Me Johannes Kleiber Software Engineer bei FMC Johannes.Kleiber@fmc-ag.com Themen Überblick Window Workflow Foundation Workflows modellieren WF

Mehr

Guten Tag! CampusSource. Die CSE Integration Platform. CampusSource Engine. Christof Pohl Softwareentwicklung Medienzentrum Universität Dortmund

Guten Tag! CampusSource. Die CSE Integration Platform. CampusSource Engine. Christof Pohl Softwareentwicklung Medienzentrum Universität Dortmund Engine Die CSE Integration Platform Guten Tag! Christof Pohl Softwareentwicklung Medienzentrum Universität Dortmund Integriertes Informationsmanagement mit der Engine - A2A vs. EBI Folie 2 Integration

Mehr

Präsentation Von Laura Baake und Janina Schwemer

Präsentation Von Laura Baake und Janina Schwemer Präsentation Von Laura Baake und Janina Schwemer Gliederung Einleitung Verschiedene Betriebssysteme Was ist ein Framework? App-Entwicklung App-Arten Möglichkeiten und Einschränkungen der App-Entwicklung

Mehr

INFOnline SZM Integration Guide Alternativlösung Messung hybrider APPs

INFOnline SZM Integration Guide Alternativlösung Messung hybrider APPs INFOnline SZM Mobile Applications INFOnline SZM Integration Guide Alternativlösung Messung hybrider APPs INFOnline GmbH Forum Bonn Nord Brühler Str. 9 53119 Bonn Tel.: +49 (0) 228 / 410 29-77 Fax: +49

Mehr

Eclipse User Interface Guidelines

Eclipse User Interface Guidelines SS 2009 Softwarequalität 06.05.2009 C. M. Bopda, S. Vaupel {kaymic/vaupel84}@mathematik.uni-marburg.de Motivation (Problem) Motivation (Problem) Eclipse is a universal tool platform - an open, extensible

Mehr

Andreas Lux 16.03.2010. Verknüpfung unterschiedlicher Modellsprachen (BPMN, UML, DSL) zur Anforderungsanalyse

Andreas Lux 16.03.2010. Verknüpfung unterschiedlicher Modellsprachen (BPMN, UML, DSL) zur Anforderungsanalyse Andreas Lux 16.03.2010 Verknüpfung unterschiedlicher Modellsprachen (BPMN, UML, DSL) zur Anforderungsanalyse Warum unterschiedliche Sprachen? Nicht alle Probleme eignen sich, um mit Standardsprachen beschrieben

Mehr

Von SAP R/3 zu mysap ERP und NetWeaver

Von SAP R/3 zu mysap ERP und NetWeaver Von SAP R/3 zu mysap ERP und NetWeaver Bremerhaven 06.05.2006 T4T Bremerhaven 1 Inhaltsverzeichnis 1. Motivation für SAP NetWeaver 2. SAP R/3 mysap ERP und SAP Business Suite 3. Application Platform T4T

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

eclipse - Entwicklungsumgebung und mehr ETIS SS05

eclipse - Entwicklungsumgebung und mehr ETIS SS05 eclipse - Entwicklungsumgebung und mehr ETIS SS05 Gliederung Motivation Geschichte Architektur Platform Runtime Eclipse Platform Java Development Tools (JDE) Plugin Development Environment (PDE) Zusammenfassung

Mehr

TM1 mobile intelligence

TM1 mobile intelligence TM1 mobile intelligence TM1mobile ist eine hochportable, mobile Plattform State of the Art, realisiert als Mobile BI-Plug-In für IBM Cognos TM1 und konzipiert als Framework für die Realisierung anspruchsvoller

Mehr

Ihr IT-Dienstleister aus Bonn

Ihr IT-Dienstleister aus Bonn Ihr IT-Dienstleister aus Bonn Wer wir sind Sie sind auf der Suche nach einem Partner, der Sie bei der technischen Umsetzung Ihrer Online-Projekte zuverlässig und kompetent unterstützt? Wer wir sind Die

Mehr

Aktuelle Kurstermine

Aktuelle Kurstermine Design Patterns 20.07.2015-22.07.2015 3 Tage 1.200,- Lokale Netze - Basiswissen 20.07.2015-24.07.2015 5 Tage 1.830,- Java EE Persistence API Development 27.07.2015-29.07.2015 3 Tage 1.200,- Linux Server

Mehr

Dataport IT Bildungs- und Beratungszentrum. HTML- Grundlagen und CSS... 2. XML Programmierung - Grundlagen... 3. PHP Programmierung - Grundlagen...

Dataport IT Bildungs- und Beratungszentrum. HTML- Grundlagen und CSS... 2. XML Programmierung - Grundlagen... 3. PHP Programmierung - Grundlagen... Inhalt HTML- Grundlagen und CSS... 2 XML Programmierung - Grundlagen... 3 PHP Programmierung - Grundlagen... 4 Java - Grundlagen... 5 Java Aufbau... 6 ASP.NET Programmierung - Grundlagen... 7 1 HTML- Grundlagen

Mehr

Content-Management-Systeme

Content-Management-Systeme Wintersemester 2010/2011 Content-Management-Systeme Dipl.-Inform. Roman Jansen-Winkeln Vorlesung 5: PLONE durch Programmierung erweitern Inhalt und Organisation 2 Skins Page Templates und Skripts Global

Mehr

MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP)

MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP) MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP) Oliver Steinhauer.mobile PROFI Mobile Business Agenda MOBILE ENTERPRISE APPLICATION PLATFORM AGENDA 01 Mobile Enterprise Application Platform 02 PROFI News

Mehr

ESB. Open Source ESB: Mule Flightreservation. Res Gilgen Hochschule Luzern [Wählen Sie das Datum aus]

ESB. Open Source ESB: Mule Flightreservation. Res Gilgen Hochschule Luzern [Wählen Sie das Datum aus] ESB Open Source ESB: Mule Flightreservation Res Gilgen Hochschule Luzern [Wählen Sie das Datum aus] Inhalt 1. Open Source ESB: Mule... 2 1.1. Überblick... 2 1.1.1. Das Beispiel Zeigt:... 2 1.2. Installationsanleitung...

Mehr