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 IT- Infrastruktur und erlauben Kunden und Mitarbeitern, ihre Dienste mobil zu nutzen. Die Smartphonelandschaft ist wesentlich heterogener als die Welt der Desktop- Applikationen. [1] netmarketshare - Desktop Operating System Market Share - http://bit.ly/r9rcgi [2] Reed, Brad - Android tops U.S. smartphone OS market with 39% share; Apple No. 1 overall vendor - http://bit.ly/rwhjph 2
Warum Multi- Plattform- Architekturen? Problematik. Betriebssysteme Sprachen Tools ios - Apple Objective- C X- Code Android Java Eclipse Windows Phone 7 C#, Visual Basic Visual Studio 3 App- Ökosysteme = 3 Betriebssysteme = 3 Programmiersprachen = 3 Entwicklungs- Tools = 3 Entwicklungs- Projekte = 3 Entwicklungs- Budgets = 3 Wartungs- Budgets = 3 Teams 3
Multi- Plattform- Architekturen Übersicht der Systeme. [3] Architekturen mobiler Multiplattform- Apps, Felix Willnecker, Damir Ismailović und Wolfgang Maison, SMART MOBILE APPS, http://bit.ly/tl9dav 4
Web Apps Grundlagen. Als Web Apps oder Web Applications werden alle Anwendungen bezeichnet, die einen Browser zur Ausführung benötigen. [4] Der Multiplattformansatz wird durch die Vielzahl verfügbarer Browser einge- schränkt. Gerade bei der Interpretation des HTML 5 de- facto Standards divergieren die unter- schiedlichen Browser stark. [4] Apps und WebApps - Definition, App Entwickler Verzeichnis, http://bit.ly/ndl7k4 5
Web Apps HTML als universelle Applikationssprache. 6
Web Apps HTML als universelle Applikationssprache. Frameworks wie Sencha Touch und JQuery Mobile abstrahieren die unterschiedlichen Bibliotheken, um das Web App Konzept wieder näher an die Plattformunabhängigkeit zu bringen. 7
Web Apps Vor- und Nachteile + Einsatz der bekannten Sprachen (HTML, JS, CSS) aus der Webseiten- Entwicklung + Erweiterbarkeit mit Hilfe von JS Bibliotheken + Hochverfügbare, standardisierte und skalierbare Infrastruktur + Keine Bindung an vorgegebenes Geschäftsmodell - Kaum offline verfügbar, AJAX Marktanteile verschwinded gering [5] - Hohe Tansferkosten, ca 80-90% Overhead (HTML Beschreibung) - Keine native Benutzeroberfläche, Animationen sehr teuer - Anwendung und Daten sind häufig fest verdrahtet - Wenige Unterstützung für Hardwarefunktionen - Kein einheitlicher Distributionskanal [5] Ajax Survey Results: What is happening in the Ajax market?, Jep Castelein, Jep s Blog, http://bit.ly/s6aukp 8
Hybrid Apps Grundlagen. Hybrid Apps kombinieren Web Apps mit nativen Apps, wobei Apps in Web- Sprachen beschrieben und in einem Web- Container als App ausgeliefert werden. Hybrid Apps binden Web- Quelldateien als Ressourcen in eine App ein, die nur auf den Standardbrowser der jeweiligen Plattform zugreift. Über eigene Bibliotheken wird hier der Zugriff auf einen Teil der Hardware- Schnittstellen ermöglicht. 9
Hybrid Apps HTML Container. 10
Hybrid Apps Vor- und Nachteile. + Einsatz von aus der Webseiten- Entwicklung bekannte Sprachen (HTML, JS, CSS) + AppStores als Distributionskanal + Offline verfügbare Applikation - Schwer erweiterbar - Verlust der Webinfrastruktur - Kompromisse bei der Benutzeroberfläche Teilweise policy Probleme (Apples AppStore) 11
Cross Compiled Apps Grundlagen. Cross Compiled Apps nutzen andere Entwicklungssprachen und - umgebungen (z.b. Microsoft.NET), um diese in Mobile Apps zu übersetzen. Es findet ein Transfer zwischen zwei oder mehr Sprachen statt. Es ist notwendig, die Bibliotheken der Zielarchitekturen in der Quellarchitektur nachzubilden. 12
Cross Compiled Apps Vor- und Nachteile. + Einsatz der vorherrschenden Sprachen (C#, Java) + AppStores als Distributionskanal + Offline verfügbare Applikation - Verlust der Webinfrastruktur - Kompromisse bei der Benutzeroberfläche Teilweise policy Probleme (Apples AppStore) Teilweise erweiterbar 13
Applikationsbeschreibungssprachen Grundlagen. Applikationsbeschreibungssprachen (ADLs) beschreiben Applikationen in einer domänen- spezifischen Sprache. Statt Dokumentenbeschreibungs- sprachen wie HTML kommen hier angepasste Modelle zum Einsatz. ADL- basierte Apps generieren die eigentliche Applikation erst zur Laufzeit (ähnlich wie HTML). Komponenten können so speziell für Apps entwickelt werden (Multi- Touch, Animationen, Foto-, Kalender-, Adressbuchzugriffe) ADL- Apps sind nativ und toolgestützt. Programmierkenntnisse sind weniger notwendig. 14
Applikationsbeschreibungssprachen Vor- und Nachteile. + Entwickelt für den Einsatz in der Post- PC Welt + AppStores als Distributionskanal + Offline verfügbare Applikation, Trennung von Daten und App per default + Hochverfügbare, standardisierte und skalierbare Infrastruktur + Hohe Wiederverwendung von entwickelten Komponenten - Kompromisse bei der Benutzeroberfläche - Kein fertiges Produkt verfügbar Teilweise erweiterbar 15
Multi- Plattform- Architekturen Anwendungsgebiete. Keins der vorgestellten Systeme ist in der Lage das Problem der Heterogenität in der Post- PC Welt vollständig zu lösen. Je nach Anwendungsfall eignet sich der Einsatz eine dieser Techniken: Web Apps eignen sich in erster Linie für die Darstellung von Inhalten - wie denen von Newsportalen, Blogs, CMS Inhalten etc., die ohnehin ständig aktualisiert werden und daher offline Verfügbarkeit nur eine untergeordnete Rolle spielt. Hybrid Apps eigenen sich für Apps, die backendseitig einer einfachen Logik folgen, wie z.b. ToDo- Listen. Cross- Compiled Apps sind interessant für die Spiele- Entwicklung (Bedrock) und für Entwickler aus dem.net Umfeld. ApplikationsBeschreibungsSprachen eigenen sich bevorzugt als Konzept für eigene Framework- Entwicklung oder als Branchenlösung, die hohe Anpassbarkeit erfordert. 16
Vielen Dank für Ihre Aufmerksamkeit! Dr. Wolfgang Maison w.maison@weptun.de (089) 178 06 141 (0171) 770 36 07 Felix Willnecker f.willnecker@weptun.de (089) 178 06 141 (0171) 786 69 19 Weptun GmbH kontakt@weptun.de (089) 178 52 01 Lierstraße 20a 80639 München 17