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 Generierung Demo 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 3
Warum Android? 60,00% Smartphone OS Marktanteil pro Quartal (Gartner) 50,00% 40,00% 30,00% 20,00% 10,00% 0,00% Q2/2009 Q3/2009 Q4/2009 Q1/2010 Q2/2010 Q3/2010 Q4/2010 Q1/2011 Android Symbian ios RIM Microsoft Other 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 4
Android Architektur Applications Application Framework Contacts Phone Activity Manager Content Provider Libraries Android Runtime Libc Webkit SSL Linux Kernel OS Treiber 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 5
Android SDK Entwicklung mit Java-Notation Java 5 (Scala, JRuby) Java 5 SE APIs teilweise vorhanden Java Bytecode wird in Dalvik Executables (DEX) umgewandelt Ausführung in der Dalvik Virtual Machine IDE-Unterstützung: Android Development Tools (ADT) für Eclipse Debugger UI Editor Device Emulator 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 6
Activities Einstieg in Android Applikation Screen zur Interaktion mit dem Nutzer Activity Lifecycle wird durch Android OS kontrolliert 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 7
Agenda Android Quickstart Datenhaltung Generierung Demo 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 8
Datenhaltung in Android Varianten der Datenhaltung unter Android Shared Preferences (Key-Value Paare) Internal Storage (Device Memory) External Storage (SD Card) SQLite Database Network Connection Mobil: Nicht immer eine Internetverbindung Schneller Zugriff auf Daten 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 9
SQLite Database Für den Embedded Einsatz entworfen Wird vom Android System angeboten Datenbank an eine Applikation gebunden 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 10
Content Providers Speichern und Laden von Daten Applikation und Daten in Sandbox gekapselt Kein direkter Zugriff auf andere Applikationen und deren Daten Content Provider als Möglichkeit zum Datenaustausch über Applikationsgrenzen Wird für spezifische Android Funktionen benötigt Automatische Synchronisation, 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 11
Content Provider im Close-Up Fassade für den Datenzugriff CRUD-Operationen Zugriff auf Daten über Content Provider URIs Ähnlich wie REST-Prinzip Interagiert mit einer SQLite Datenbank 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 12
Was brauche ich alles? Modell Content Resolver Content Provider Datenbank Management Datenbank POJOs Domänenspezifische Objekte Zugriff Schnittstelle CRUD Operationen Über URI erreichbar SQL Statements Schemas SQLite 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 13
Was brauche ich alles? Modell Content Resolver Content Provider Datenbank Management Wir! Android System Datenbank 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 14
Agenda Android Quickstart Datenhaltung Generierung Demo 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 15
Lohnt sich generieren? Max Mustermann Person 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 16
Wir haben eine Modell Generierung von Code und anderen Artefakten 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 17
Generator Workflow 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 18
Eclipse Modeling Project Modeling Workflow Engine (MWE) XPand Xtend Integrierbar in Eclipse IDE Arbeitet auf EMF/Ecore (Meta-) Modellen 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 19
Xpand (Beispiel) 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 20
Benefits durch Generierung Separierung von technischen Aspekten und domänenspezifischen Aspekten Konzepte stabiler als Technologie Sicherer Invest Automatisierung durch Generierung Reduzierte Kosten, erhöhte Produktivität Verbesserte Software-Qualität Reduzierte Wartungskosten Bessere Wiederverwendung Reduzierte Entwicklungskosten 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 21
Benefits durch Generierung Last but not least. Bewältigung des gesteigerten Time to Market Drucks bei Mobile-Projekten 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 22
Umsetzung Eclipse Plugin UI Einbindung Generierung 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 23
Umsetzung Generierung mit XPAND Templates 4 Templates Content Provider Template Database Template Model Template Manifest Template Model Workflow Engine Ablauf: Lesen, Aufräumen, Generieren 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 24
Umsetzung Generierung mit XPAND Templates 4 Templates Content Provider Template Database Template Model Template Manifest Template Model Workflow Engine Ablauf: Lesen, Aufräumen, Generieren 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 25
Agenda Android Quickstart Datenhaltung Generierung Demo 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 26
Demo 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 27
Features Eclipse Plugin Einfache Integration in die Entwicklungsumgebung Features: Modellierung mit Hilfe eines Domänenmodell Integration in ein bereits vorhandenes Android Projekt Generierung des Android Content Providers Erstellen des Datenbank Managements Generierung der Modell Klassen Erzeugen der XML Elemente für Android.manifest 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 28
Constraints Relationen 1:n und 1:1 derzeit möglich n:m aktuell nicht möglich Datenhierarchie Nur flache Hierarchien Verknüpfung der Datensätze über Fremdschlüssel Kein Object Tree Usability 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 29
Mögliche Erweiterungen O/R-Mapper Kein Parsing Objekt Orientiertes Arbeiten wird erleichtert Automatische Datenverschlüsselung für die Persistenz und Datenübertragung Unabhängig vom Transportprotokoll oder Persistenz Format 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 30
Links Give it a try. http://code.google.com/p/mdsd-android-content-provider/ 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 31
Vielen Dank für Ihre Aufmerksamkeit! Fragen? 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 32
Frederik Götz frederik.goetz@gmail.com https://www.xing.com/profile/frederik_goetz2 https://twitter.com/gfred_ Johannes Tysiak johannes.tysiak@arconsis.com https://www.xing.com/profile/johannes_tysiak https://twitter.com/johannestysiak 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 33