Implementierung einer Visualisierungsanwendung für Apples ios

Größe: px
Ab Seite anzeigen:

Download "Implementierung einer Visualisierungsanwendung für Apples ios"

Transkript

1 Masterarbeit im Rahmen des Studiengangs Technomathematik Fachhochschule Aachen, Standort Jülich Fachbereich 9 Medizintechnik und Technomathematik Implementierung einer Visualisierungsanwendung für Apples ios Jülich, 9. August 2011 Christian Felder Peter Grünberg Institut und Jülich Centre for Neutron Science Technische und Administrative Infrastruktur Wissenschaftliche IT-Systeme Diese Arbeit wurde betreut von: Prof. Dr.-Ing. Dipl. Phys. Rainer Simonis Josef Heinen

2

3 Erklärung Diese Arbeit wurde im Peter Grünberg Institut - Jülich Centre for Neutron Science - Technische und Administrative Infrastruktur der Forschungszentrum Jülich GmbH konzipiert. Sie ist von mir selbstständig angefertigt und verfasst. Es sind keine anderen als die angegebenen Quellen und Hilfsmittel benutzt worden. Unterschrift Diese Arbeit wurde betreut von: Prof. Dr.-Ing. Dipl. Phys. Rainer Simonis Josef Heinen

4

5 Am Peter Grünberg Institut sowie am Jülich Centre for Neutron Science (JCNS) des Forschungszentrums Jülich ist schon seit Jahren eine standardisierte Grafikbibliothek im Einsatz, die auf einer Implementierung des grafischen Kernsystems (GKS) basiert. Zahlreiche Anwendungen und Programmschnittstellen aus dem Bereich der Instrumentierungs-, Simulations- und Auswertesoftware wurden auf der Basis dieser Bibliothek entwickelt, die sowohl von höheren Programmiersprachen als auch gängigen Interpretern angesprochen werden können. Die Anforderungen an die Grafiksoftware im wissenschaftlichtechnischen Umfeld sind in den letzten Jahren gestiegen, insbesondere der Bereich der Client-/Server basierten Visualisierungslösungen hat an Bedeutung gewonnen. Ziel dieser Arbeit ist es, die oben genannte Bibliothek auf mobilen Endgeräten der Firma Apple nutzbar zu machen. Auf der Basis der OpenGL ES Anwendungsschnittstelle des ios Betriebssystems sind erweiterte Funktionen zu implementieren, die den gewachsenen Ansprüchen an Interaktivität, Performance und Qualität gerecht werden. Dazu zählen spezielle Eingabegesten für die Transformation von dreidimensionalen Grafiken sowie der Aufbau einer effizienten Kommunikationsmethode für Livedaten. Hierzu ist ein Plugin zu entwickeln, das als eigenständige ios Anwendung eine komfortable mobile Schnittstelle zu vorhandenen Anwendungen bietet.

6

7 Inhaltsverzeichnis 1. Mobiles Visualisierungssystem 1 2. Beschreibung der Entwicklungsumgebung Voraussetzungen ios Developer Program ios Dev Center ios Provisioning Portal Objective-C ios Software Development Kit Verwendete Frameworks Bibliotheken und Frameworks von Drittherstellern Xcode Interface Builder ios Simulator Instruments Organizer Programmbeschreibung GR Schnittstelle Client-/Server basierte Kommunikation Asynchrone Netzwerkkommunikation Grand Central Dispatch (GCD) Visualisierung mit OpenGL ES Unterschiede zu OpenGL OpenGL ES Framework Klassenübersicht, verwendete Datenstrukturen Model View Controller Design Pattern Protokolle Koordinatensystem Oberflächen Farblegende Gesten Picking I

8 II Inhaltsverzeichnis 4. Verteilung der Anwendung - Rollout Ad Hoc Distribution ios Distribution Profile Anpassung der Build Settings Erzeugen des GLGr App Archivs itunes - Ad Hoc Installation des App Archivs Ausblick / Einsatz des Systems 42 Abbildungsverzeichnis 44 Literaturverzeichnis 45 A. Anhang 47 B. Die asynchrone Netzwerkschnittstelle NetworkController 48 II Christian Felder

9 1. Mobiles Visualisierungssystem Das Peter Grünberg Institut und das nach der Stilllegung des Jülicher Forschungsreaktors 2006 gegründete Jülich Centre for Neutron Science (JCNS) sind im Rahmen des Helmholtz-Programms Großgeräteforschung mit Photonen, Neutronen und Ionen (PNI) besonders im Bereich der Forschung mit Neutronen aktiv. An den modernsten und leistungsfähigsten Quellen weltweit, der nationalen Quelle FRM-II in München, am flussstärksten Forschungsreaktor ILL in Grenoble und an der MW Spallationsquelle SNS in Oak Ridge, USA, werden beim Instrumentbetrieb in Neutronenleiterhallen wissenschaftliche Daten durch Messungen gewonnen. Bei der Ansteuerung und Datenaufnahme kommen innovative Softwaretechnologien und standardisierte Hardwarekomponenten zum Einsatz. Neuentwicklungen wie zwei-dimensionale Detektoren und die damit einhergehenden Datenraten stellen große Herausforderungen an die Einrichtungen und Anwender. Aus diesem Grunde wurde 2010 die High Data Rate Processing and Analysis Initiative (PNI-HDRI) für das PNI Programm gegründet. Durch die gemeinsame, koordinierte Entwicklung und Bereitstellung geeigneter Infrastruktur (Hardund Software) sollen die hohen Datenraten effizient verarbeitet werden. Zur Zeit greifen speziell an die Experimente angepasste Programme über die GR 1 Schnittstelle auf die diskreten Messdaten zurück und visualisieren diese. Sowohl in der Aufbauphase als auch im späteren Produktionsbetrieb ist eine Online-Visualisierung notwendig, um Messergebnisse validieren und gegebenenfalls durch Steering 2 in die Messung eingreifen zu können. Im Rahmen dieser Masterarbeit habe ich hierzu eine Visualisierungsanwendung für Apples ios implementiert, die mit der GR Schnittstelle, welche auf einer Implementierung des standardisierten grafischen Kernsystems (GKS) basiert, zusammenarbeitet. Die Dokumentation der Entwicklungsumgebung, des Programms und des Rollouts bilden den Einstiegspunkt für spätere Weiterentwicklungen. Zukünftig ist es so möglich, sich mit ios fähigen Geräten von Apple Inc., wie beispielsweise dem ipad, Online-Visualisierungen in den Neutronenleiterhallen anzeigen zu lassen. In diesem Einsatzgebiet eignen sie sich insbesondere durch ihre kompakten Abmessungen und ihrer intuitiven Bedienung. Die abschließende Visualisierung am Arbeitsplatzrechner zur Auswertung und Erstellung von Präsentationsgrafiken bleibt hiervon unberührt. 1 GR - Graphics Schnittstelle 2 Veränderung/Steuerung von Parametern im laufenden Betrieb

10 2. Beschreibung der Entwicklungsumgebung 2.1. Voraussetzungen Die Entwicklung eigener Apps für Apples ios stellt einige Anforderungen an Hardware, Software und den Entwickler. So muss ein Mac mit Intel Prozessor und mindestens der Betriebssystemversion Mac OS X 10.6 Snow Leopard vorhanden sein, um die integrierte Entwicklungsumgebung (IDE) Xcode 4 von Apple Inc. installieren und nutzen zu können. Diese kann über das ios Dev Center [AIDEV] als registrierter Apple Developer bezogen werden. Die aktuellen Software Development Kits (SDKs) für das ios und Mac OS X Betriebssystem sind in dieser Version bereits enthalten. Für die Installation eigener Apps auf ios Geräten wird außerdem ein Team Provisioning Profile benötigt. Hierzu ist die Teilnahme am kostenpflichtigen ios Developer Program notwendig ios Developer Program Durch die Teilnahme am ios Developer Program erhält man Zugriff auf sämtliche Informationen und Ressourcen des ios Dev Centers. Ferner können ios Geräte für die Installation eigener Apps im ios Provisioning Portal vorbereitet werden. Mittels itunes Connect, einer Sammlung web-basierter Tools, ist es dem Entwickler möglich die Vermarktung seiner Anwendung im App Store zu managen. Dies wird im Rahmen dieser Arbeit nicht weiter behandelt, da es sich um eine In House App handelt, welche nicht über den App Store verteilt wird ios Dev Center Das ios Dev Center stellt die letzten Builds der aktuellen ios SDKs und der IDE Xcode, deren beta Versionen, sowie beta Versionen des ios Betriebssystems (ios 5 beta) zur Verfügung. Die vollständige Dokumentation der SDKs und Codebeispiele werden in der ios Developer Library [AI*] zur Verfügung gestellt, auch für nicht registrierte Benutzer. Das ios Dev Center bildet somit die Basis für jeden ios Developer.

11 KAPITEL 2. BESCHREIBUNG DER ENTWICKLUNGSUMGEBUNG ios Provisioning Portal Zertifikate Das ios Provisioning Portal unterstützt Developer bei der Verwaltung ihrer Zertifikate, den Team Provisioning Profiles. Bis zu 100 Geräte können im Jahr für Entwicklungsund Testzwecke mit einem Zertifikat registriert werden. Auf diesen können dann durch den Developer signierte Apps installiert und ausgeführt werden. Während der Installation wird überprüft, ob die Signatur der Anwendung zu einem der installierten Zertifikate von Apple oder der/des Entwickler/s (Team Provisioning Profiles) passt und bei Nichtübereinstimmung die Installation verweigert. Durch das sogenannte Provisioning verhindert Apple die Verbreitung und Installation nicht autorisierter Anwendungen auf Systemen mit ios Firmware. Abbildung 2.1.: Übersicht über das Entwicklerzertifikat im ios Provisioning Portal Die obere Abbildung zeigt eine Übersicht über die Zertifikate im ios Provisioning Portal. Über den Tab Distribution gelangt man außerdem zum Distribution Zertifikat. Dieses ist notwendig für die Verteilung der Anwendung. Die Zertifikate werden bei Teilnahme am ios Developer Program durch Apple ausgestellt und können über die entsprechenden Webseiten heruntergeladen werden, um Apps auf dem Entwicklungsrechner zu signieren. Hierzu können die Zertifikate in die Entwicklungsumgebung Xcode (wie unter Einbindung der Entwicklerzertifikate beschrieben) eingebunden werden. Registrierung der ios Devices Um die signierten Apps auf ein ios Device zu übertragen, muss dieses im Provisioning Portal registriert werden. Pro Jahr können bis zu 100 Geräte für Entwicklungs- und Testzwecke registriert werden. Das Hinzufügen eines Devices führt immer dazu, dass sich die verbleibende Anzahl registrierbarer Devices reduziert. Das Löschen eines oder mehrerer Devices erhöht diese Anzahl nicht. In Abbildung 2.2 sieht man eine Übersicht bereits registrierter ios Devices. Christian Felder 3

12 4 KAPITEL 2. BESCHREIBUNG DER ENTWICKLUNGSUMGEBUNG Abbildung 2.2.: Übersicht der registrierten Devices im ios Provisioning Portal Über die Schaltflächen Add Devices und Upload Devices können neue Geräte hinzugefügt werden. Die zweite Schaltfläche erlaubt es, eine ganze Liste in Form einer Datei auf einmal hinzuzufügen. Hierzu muss eine Eingabedatei mit dem ios Configuration Utility mit der Endung.deviceid oder manuell eine Textdatei (.txt) im folgenden Format erstellt werden. devices.txt # comment l i n e 79 add05387f d d13a01cf4336 f e l d e r s iphone b6138f2e8a18cac4d4c1635ae201d124aaae8bea ipad Die erste Zeile wird ignoriert und kann als Kommentarzeile genutzt werden. Danach werden zeilenweise die Device Einträge angegeben. In jeder Zeile wird hierbei zuerst der UDID 1 und daraufhin, durch Tabulator getrennt, der Device Name notiert. Neben der Registrierung über das Webinterface des ios Provisioning Portals können ios Geräte auch direkt in der Entwicklungsumgebung Xcode (wie unter beschrieben) registriert werden. Unique Device Identifier (UDID) eines ios Gerätes ermitteln Der Unique Device Identifier (UDID) eines ios Gerätes kann mit der Software itunes ermittelt werden. Hierzu muss das entsprechende Gerät per USB 2 -Kabel mit dem itunes Rechner verbunden werden. Das entsprechende Gerät ist anschließend aus den gelisteten Devices auszuwählen. Durch Auswahl des Summary Tabs werden die zum Gerät zugehörigen Informationen angezeigt. Statt des UDIDs wird häufig nur die Seriennummer des Gerätes angezeigt. Mit einem Klick auf die Seriennummer kann zwischen der Anzeige des Identifiers und der Seriennummer umgeschaltet werden. 1 UDID - Unique Device Identifier 2 USB - Universal Serial Bus, Schnittstelle des Computers 4 Christian Felder

13 KAPITEL 2. BESCHREIBUNG DER ENTWICKLUNGSUMGEBUNG 5 Abbildung 2.3.: Unique Device Identifier (UDID) eines ios Gerätes in itunes anzeigen In Abbildung 2.3 wird der UDID mit der Software itunes ermittelt. Alternativ kann dieser mit dem Organizer der Entwicklungsumgebung Xcode (wie unter beschrieben) ermittelt werden Objective-C Historie In den 70er Jahren wurde von einem Entwickler Team, u. a. Alan Kay, welcher später zu Apple wechselte, und Dan Ingalls vom Xerox Palo Alto Research Center (Xerox PARC), die objektorientierte Programmiersprache Smalltalk entwickelt. Brad Cox und Tom Love griffen in den 80er Jahren die objektorientierten Konzepte von Smalltalk auf und erweiterten die hardwarenahe prozedurale Programmiersprache C zu Objective-C. Die von Steve Jobs 1986 neu gegründete Firma NeXT lizenzierte Objective-C und entwickelte darauf basierend ein neues Betriebssystem, NeXTstep genannt. In Zusammenarbeit mit Sun Microsystems wurden dessen Schnittstellen in der Spezifikation OPENstep standardisiert. Eine freie Implementierung dieser Spezifikation ist das GNUstep Projekt wurde NeXT durch Apple aufgekauft. NeXTstep bildete die Grundlage für das heute bekannte Mac OS X und später das ios Betriebssystem, welches eine Variante des Mach Kernels von Mac OS X verwendet. [LSNOE] Christian Felder 5

14 6 KAPITEL 2. BESCHREIBUNG DER ENTWICKLUNGSUMGEBUNG Eigenschaften Objective-C erweitert die prozedurale Programmiersprache C um objektorientierte Aspekte und bildet somit funktional eine Obermenge von C. Sie unterscheidet sich von anderen objektorientierten Programmiersprachen, wie beispielsweise der zur gleichen Zeit entstandenen Sprache C++, durch das dynamische/späte Binden. Die Klassenzugehörigkeit eines Objekts wird beim dynamic dispatch erst zur Laufzeit ermittelt. Es ist somit nicht mehr erforderlich, dass die aufrufende Instanz die Klassenzugehörigkeit eines Objektes oder deren Basis kennt. Sie muss lediglich den richtigen selector (Methodennamen) auf dem Objekt aufrufen. Es ist sogar möglich zur Laufzeit mit der Methode respondstoselector: zu überprüfen, ob ein Objekt die entsprechende Methode implementiert (Runtime Type Information / RTTI ) und diese anschließend mit dem Aufruf performselector: unter Angabe des Selectors auszuführen. In diesem Zusammenhang können stark- (strongly typed variables) als auch schwach typisierte Variablen (weakly typed variables) vom Typ id verwendet werden und erhöhen damit die Dynamik der Programmiersprache. In C++ hingegen muss bereits zur Compilezeit die Klassenzugehörigkeit einer Objektinstanz sichergestellt sein. Um die Vererbung, das Ableiten von anderen Klassen, zu unterstützen, müssen die entsprechenden Methoden in C++ als virtual deklariert werden. Auch hier wird erst zur Laufzeit, bei Aufruf der Methode, durch das dynamic dispatching die entsprechende Einsprungadresse im Code bestimmt. Diese Adressen werden vom Compiler in einer virtuellen Tabelle verwaltet. Zu den weiteren sprachlichen Mitteln von Objective-C gehören Properties, durch deren Deklaration im header file der Compiler dazu angewiesen wird, die entsprechenden accessor (getter- und setter-) Methoden automatisch zu generieren, Protocols, die es erlauben optionale- als auch verpflichtende Methoden zu deklarieren, die von den entsprechenden Klassen, die zu diesem Protokoll konform sind, implementiert werden und Categories, durch die eine Klasse mit Methoden erweitert werden kann ohne diese abzuleiten, auch wenn diese nicht von einem selbst implementiert wurde. Durch Kategorien können außerdem Methoden überladen werden; es wird allerdings nicht empfohlen, da dies zu ungewollten Seiteneffekten führen kann. Ferner ist es nicht möglich, neue Instanzvariablen zu einer bestehenden Klasse hinzuzufügen, wie es beim Subclassing möglich ist. Viele weitere Eigenschaften sind nicht durch die Sprachdefinition selbst, sondern durch die verwendeten Frameworks festgelegt. Die in dieser Arbeit verwendeten Frameworks sind im ios Software Development Kit enthalten. Die von Apple herausgegebenen Frameworks sind speziell auf ios beziehungsweise Mac OS X Betriebssysteme (Mac SDK ) zugeschnitten und können nicht für andere Plattformen verwendet werden. Mit den unter GNUstep veröffentlichten Frameworks steht eine frei verfügbare Version, auch für andere Plattformen, zur Verfügung. 6 Christian Felder

15 CHAPTER 1 About ios Development KAPITEL 2. BESCHREIBUNG DER ENTWICKLUNGSUMGEBUNG ios Software Development Kit Das ios SDK enthält zahlreiche Frameworks, die dem Entwickler Schnittstellen zur Entwicklung von ios Applikationen, auf unterschiedlichen Abstraktionslayern, zur Verfügung stellen. Die untersten beiden Layer, Core OS und Core Services, stellen fundamentale ios Schnittstellen zur Verfügung und sind größtenteils in der Programmiersprache C geschrieben. Unter anderem werden low-level Interfaces für den File- und Netzwerk IO zur Verfügung gestellt. Die im upper-layer, Media und Cocoa Touch enthaltenen Frameworks bieten objektorientierte Abstraktionen für low-level Konstrukte und Technologien der unteren beiden Schichten und sind größtenteils in der Programmiersprache Objective-C geschrieben. Durch die Kapselung (Encapsulation) komplexer Features, wie beispielsweise Sockets und Threads, reduziert sich bei deren Verwendung der eigene Programmcode und die Fehleranfälligkeit wird gesenkt. Aus diesem Grunde sind high-level Frameworks bevorzugt zu verwenden. In besonderen Fällen erfordert das benutzerdefinierte Verhalten einer Anwendung jedoch die Verwendung von low-level Schnittstellen, wenn beispielsweise die gewünschte Funktionalität nicht durch die auf dem upper-layer angesiedelten Frameworks abgedeckt ist. Um eine asynchrone Netzwerkkommunikation zu unterstützen, wurden im Rahmen dieser Masterarbeit deshalb BSD Sockets und das Grand Central Dispatch verwendet (siehe 3.2 Client-/Server basierte Kommunikation). Im Rahmen dieser Arbeit wurde das ios SDK in der Version 4.3 verwendet. Note: Even though your application is generally protected from change still need to account for differences between devices in your code. For e camera while others do not. If your application can work with or withou provided by the corresponding framework to determine the availability Applications that require the presence of specific hardware should decla information property list (Info.plist) file. For more information on de Build-Time Configuration Details in ios Application Programming Guide The implementation of ios technologies can be viewed as a set of layer the lower layers of the system are the fundamental services and technol higher-level layers contain more sophisticated services and technologie Figure 1-2 Layers of ios Cocoa Touch Media Core Services Core OS Abbildung 2.4.: Abstraktionslayer des ios Software Development Kits (SDK ) [AITO10] As you write your code, you should prefer the use of higher-level framew whenever possible. The higher-level frameworks are there to provide ob lower-level constructs. These abstractions generally make it much easier the amount of code you have to write and encapsulate potentially comp threads. Although they abstract out lower-level technologies, they do n you. The lower-level frameworks are still available for developers who pr use aspects of those frameworks that are not exposed by the higher lay The technologies and frameworks for each layer are described in later ch Christian Felder 7 What s in the ios SDK?

16 8 KAPITEL 2. BESCHREIBUNG DER ENTWICKLUNGSUMGEBUNG Verwendete Frameworks Foundation Framework Das Foundation Framework bildet den base layer für alle Objective-C Klassen aus dem ios SDK, indem es eine root Objektklasse NSObject, von der alle anderen Klassen abgeleitet sind, und grundlegende Datenstrukturen, wie beispielsweise NSString und NSArray, als Klasse zur Verfügung stellt, die nicht im Sprachumfang von Objective- C enthalten sind. Darüber hinaus stellt es einen festen Satz von Utility Klassen zur Verfügung und führt konsistente Konventionen innerhalb einer Klassenhierarchie ein. So stellt es beispielsweise eine Policy für das Memory Management auf, indem es verbindlich festlegt, wer für das deallozieren eines Objektes (object ownership) verantwortlich ist. Durch seinen portablen Code unterstützt es zudem die Plattformunabhängigkeit aller darauf aufbauenden Frameworks und Codes. UIKit Framework Das UIKit Framework hält alle notwendigen Klassen für die Entwicklung des Graphical User Interfaces bereit und ist speziell für Touch Screen Interfaces optimiert. Die Implementierung des Frameworks reicht von der Konstruktion der Main-Loop, im Application Object, über Windows und Views, sowie deren Drawing Model, bis zum Event handling. OpenGL ES Framework Die zentrale Schnittstelle dieser Masterarbeit wird mit dem OpenGL ES Framework zur Verfügung gestellt. Die vollständige Visualisierung wurde mittels OpenGL ES realisiert. Das Framework implementiert sowohl die OpenGL ES 1.1 als auch die OpenGL ES 2.0 Spezifikation und stellt dem Entwickler eine C-Anwendungsschnittstelle zur Verfügung Bibliotheken und Frameworks von Drittherstellern Im Rahmen dieser Masterarbeit wurden lediglich die im ios SDK enthaltenen Frameworks verwendet. Jedes dieser Frameworks wird über eine dynamisch gebundene Library mit der Dateiendung.dylib nach der Übersetzung hinzugelinkt. Möchte man Bibliotheken und/oder Frameworks von Drittherstellern verwenden, reicht es nicht aus, diese dynamisch zum Programm hinzu zu linken, da sie nicht Teil des SDKs sind und somit nicht auf ios Devices zur Verfügung stehen. Stattdessen muss der gesamte Programmcode der Bibliotheken und/oder Frameworks statisch hinzugelinkt werden. 8 Christian Felder

17 KAPITEL 2. BESCHREIBUNG DER ENTWICKLUNGSUMGEBUNG Xcode Apples integrierte Entwicklungsumgebung (IDE) Xcode 4 enthält alle notwendigen Komponenten, um Apps für ios und Mac OS Systeme zu entwickeln. Apples LLVM 3, in der Version 2.0, implementiert einen vollständigen Compiler Stack, der C, Objective-C und C++ Codes unterstützt und den Source Code für die unterschiedlichen Architekturen der ios Devices optimiert und übersetzt. Es bildet das Backend der Entwicklungsumgebung. Darüber hinaus unterstützt der LLVM Parser den Entwickler bei der Programmierung, indem er dem grafischen Frontend Informationen für das Syntaxhighlighting und die Autocompletion (automatische Vervollständigung von Code) zur Verfügung stellt. Ein zu Subversion- als auch Git Repositories kompatibler Versionseditor, sowie ein grafischer Debugger gehören ebenfalls zum Funktionsumfang der IDE. Der nachfolgend vorgestellte Interface Builder, der ios Simulator und das Tool Instruments zählen zu den wichtigsten Komponenten der Xcode Umgebung. Apple selbst verwendet diese IDE für die Entwicklung ihrer Betriebssysteme, ios und Mac OS, und den dazugehörigen Anwendungen. Abbildung 2.5.: Programmsymbole der Developer Tools, Instruments, Xcode und ios Simulator (von links nach rechts) [AIDTO] Interface Builder Der eingebaute Interface Builder der Entwicklungsumgebung Xcode ermöglicht es, per Drag and Drop Graphical User Interfaces zusammenzustellen und diese über sogenannte IBOutlets mit dem dazugehörigen Quellcode des Programms zu verbinden. Die Objektattribute (z. B. Größe und Position) sowie die Outlet Connections werden in einem Objektgraphen festgehalten und in einem sogenannten nib 4 -File mit der Dateiendung.xib archiviert. Es enthält somit alle Informationen, um das GUI 5 neu zu erzeugen. Der folgende Screenshot zeigt, wie eine Outlet Connection im RootViewController, der im Rahmen dieser Masterarbeit entwickelten mobilen Visualisierungssoftware GLGr, zwischen einem Interface Element und dem dazugehörigen Header File hergestellt wird. 3 LLVM - Low Level Virtual Machine 4 nib - next interface builder 5 GUI - Graphical User Interface Christian Felder 9

18 10 KAPITEL 2. BESCHREIBUNG DER ENTWICKLUNGSUMGEBUNG Abbildung 2.6.: Xcode, Interface Builder - Outlet Connection eines Interface Elements mit dem dazugehörigen Header File ios Simulator Der ios Simulator stellt eine vollständig simulierte ios Umgebung für den Entwickler bereit und bildet damit eine Testumgebung für ios Applikationen. Durch die Simulation unterschiedlicher Devices (ipad, iphone, ipod) und die Möglichkeit, per Maus und Tastatur mit der App zu interagieren und dabei Device Rotationen, Taps, Swipes und weitere Gesten anzuwenden, können erste Laufzeittests durchgeführt werden. Diese Tests können jedoch den Laufzeittest auf einem echten ios Gerät nicht ersetzen. Durch Unterschiede in der Hardware, wie verfügbaren Arbeitsspeicher oder verwendetem Grafikprozessor, stehen dem ios Simulator andere Ressourcen zur Verfügung, so dass die erreichte Performance nicht vergleichbar ist. Insbesondere die Implementierungen der OpenGL ES Spezifikation 1.1 und 2.0 unterscheiden sich auf dem ios Simulator. So stellt der ios Simulator einen optimierten Software-Rasterisierer zur Verfügung, welcher die Vector Processing Units der darunterliegenden Hardware ausnutzt. Diese stehen auf den PowerVR MBX und PowerVR SGX Chips der ios Geräte nicht zur Verfügung. Ferner werden die für die PowerVR MBX und PowerVR SGX Chips optimierten Extensions nicht simuliert. Die erreichte Performance unter Verwendung von OpenGL ES kann demnach, je nach Anwendung, im ios Simulator oder auch auf dem eigentlichen ios Gerät besser sein. Es können sogar Unterschiede in der Darstellung auftreten, so dass Darstellungsfehler im Simulator nicht sicher erkannt werden. Daher sollte die App immer auch mit der zugrunde liegenden Hardware getestet und für diese optimiert werden. In Abbildung 2.7 ist ein Laufzeittest der GLGr App im ios Simulator abgebildet. 10 Christian Felder

19 KAPITEL 2. BESCHREIBUNG DER ENTWICKLUNGSUMGEBUNG 11 Abbildung 2.7.: Laufzeittest der GLGr Software im ios Simulator Christian Felder 11

20 12 KAPITEL 2. BESCHREIBUNG DER ENTWICKLUNGSUMGEBUNG Instruments Das Tool Instruments unterstützt den Entwickler bei der Analyse des Laufzeitverhaltens seiner Apps. Es ermöglicht das Profiling der Anwendung während der Ausführung im ios Simulator oder auch als native App auf einem ios Gerät. Die gesammelten Daten über Memory-, CPU- 6 und GPU 7 Auslastung, der Leistungsaufnahme, sowie den Zugriffen auf das File System, werden grafisch aufbereitet. Auch Schwachstellen, wie beispielsweise Memory Leaks, können so erkannt und korrigiert werden. Durch ein Profiling bis auf Sourcecode Ebene ist eine Optimierung der App möglich. Abbildung 2.8.: Profiling der Memory-, CPU- und GPU Auslastung mit Xcode Instruments 6 CPU - Central Processing Unit, Hauptprozessor eines Computers 7 GPU - Graphics Processing Unit, Grafikprozessor 12 Christian Felder

21 KAPITEL 2. BESCHREIBUNG DER ENTWICKLUNGSUMGEBUNG Organizer Xcodes Organizer stellt Funktionen für das Software Control Management (SCM ) bereit. Dies umfasst die Verwaltung der Projektordner, deren Subversion- oder Git Repositories, die Verwaltung von App Archiven, sowie das Setup von ios Devices, insbesondere für das Provisioning. Registrierung der ios Devices im Provisioning Portal Über das One-Click Setup des Organizers können, alternativ zur Registrierung über Apples Webschnittstelle (vgl Registrierung der ios Devices), ios Geräte im Provisioning Portal registriert werden. Hierzu muss nach Auswahl des entsprechenden Devices lediglich der Use for Development Button angeklickt und anschließend die Zugangsdaten des Developer Accounts eingegeben werden. Abbildung 2.9.: One-Click Setup eines ios Devices mit Xcodes Organizer Das entsprechende Device wird registriert und das Team Provisioning Profile auf das Gerät heruntergeladen. Darüber hinaus werden die Entwicklerzertifikate automatisch heruntergeladen und in die Entwicklungsumgebung eingebunden, sofern diese nicht bereits vorhanden sind. Christian Felder 13

22 14 KAPITEL 2. BESCHREIBUNG DER ENTWICKLUNGSUMGEBUNG (a) Team Provisioning Profile (b) Entwicklerzertifikate Abbildung 2.10.: Abgeschlossenes One-Click Setup eines ios Devices Nach Abschluss des One-Click Setups wird das Team Provisioning Profile unter den Device Informationen, wie in Abbildung 2.10(a) dargestellt, gelistet. Ferner werden unter dem Menüpunkt Developer Profile das installierte Developer- und Distribution Zertifikat gelistet (siehe Abbildung 2.10(b) Entwicklerzertifikate). Unique Device Identifier (UDID) eines ios Gerätes ermitteln Alternativ zur Ermittlung des UDIDs mit der Software itunes (siehe Kapitel auf Seite 4) kann der Identifier unter den Device Informationen im Xcode Organizer abgelesen werden. Dieser ist u. a. in Abbildung 2.9 in der ersten Abbildung zu erkennen. Einbindung der Entwicklerzertifikate Die Einbindung der Entwicklerzertifikate erfolgt beim zuvor beschriebenen One-Click Setup eines ios Devices automatisch. Selbstverständlich können diese aber auch manuell heruntergeladen (vgl. Kapitel Zertifikate) und anschließend über den Xcode Organizer importiert werden. Hierzu sind lediglich der Menüpunkt Developer Profile auszuwählen und die entsprechenden Dateien nach einem Klick auf den Import Button, am unteren Ende des Fensters, anzugeben. Anschließend werden die Entwicklerzertifikate, wie in Abbildung 2.10(b) dargestellt, gelistet. 14 Christian Felder

23 3. Programmbeschreibung 3.1. GR Schnittstelle Die GRaphics Schnittstelle stellt auf Basis einer Implementierung des in den 80er Jahren nach ISO-Norm (ISO 7942) standardisierten grafischen Kernsystems (GKS) erweiterte Funktionalitäten zur Erzeugung zwei- und dreidimensionaler Grafiken bereit. Dazu zählt unter anderem die Darstellung von Achsen und Gittern, logarithmische und/oder gespiegelte Koordinatensysteme, sowie der Plot mehrdimensionaler Funktionen, als Oberflächendiagramm oder in Höhenliniendarstellung. Das grafische Kernsystem, welches zur Darstellung zweidimensionaler Grafiken entwickelt wurde, stellt hierbei die grafischen Primitiven (Polyline, Polymarker, Fill Area, Cell Array und Generalized Drawing Primitives) zur Verfügung und gibt diese unter Verwendung des entsprechenden Logical Device Drivers auf einem der grafischen Subsysteme (Win32, X11, Qt, Carbon, Cocoa) aus oder speichert die Grafik in einer Datei, in den nach Industriestandard definierten Formaten PS 1 oder PDF 2 ab. Fortran! C / C++! Objective-C! Python! Java!...! GR! Pascal! Fortran! C! GLGr! Grafisches Kernsystem (GKS)! Win32! X11! Qt! Carbon! Cocoa! PS! PDF!...! OpenGL (ES)! Abbildung 3.1.: Kohärenz der Schnittstellen GR, GLGr, GKS und OpenGL (ES) Für den Zugriff auf das GKS stehen Language-Bindings für die drei Programmiersprachen Pascal, Fortran und C zur Verfügung (siehe mittlere Schicht in Abbildung 3.2). So greift die GR Schnittstelle über das C-Binding auf die GKS Funktionen zurück. Für die GR Schnittstelle wiederum stehen verschiedene Language-Bindings, auch in höheren Programmiersprachen (u. a. C++ und Objective-C ), sowie für verschiedene Interpreter (u. a. Python und Java) zur Verfügung. 1 PS - PostScript 2 PDF - Portable Document Format

Programmieren für iphone und ipad

Programmieren für iphone und ipad Markus Stäuble Programmieren für iphone und ipad Einstieg in die App-Entwicklung für das ios 4 3., aktualisierte und erweiterte Auflage dpunkt.verlag 1 Einleitung 1 1.1 Begriffe 2 1.2 Was behandelt dieses

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

iphone developer conference Die Entwickler- und Buiness- Konferenz für iphone, ipad und ipod touch

iphone developer conference Die Entwickler- und Buiness- Konferenz für iphone, ipad und ipod touch iphone developer conference Die Entwickler- und Buiness- Konferenz für iphone, ipad und ipod touch ios - Wo steht es, wie geht es? Markus Stäuble MRM Worldwide GmbH 1 Feedback #ipdc10 #as 2 Agenda 3 Heute:

Mehr

White Paper. Embedded Treiberframework. Einführung

White Paper. Embedded Treiberframework. Einführung Embedded Treiberframework Einführung White Paper Dieses White Paper beschreibt die Architektur einer Laufzeitumgebung für Gerätetreiber im embedded Umfeld. Dieses Treiberframework ist dabei auf jede embedded

Mehr

Mac Desktop Entwicklung

Mac Desktop Entwicklung headquarter Mac Desktop Entwicklung Phillipp Bertram DEVELOPER DAY 20vierzehn http://www.admiralmarkets.com/images/mtmac/metatrader4-for-mac-os.png 2 "There is no reason for any individual to have a computer

Mehr

Apple Train the Trainer 10 App Store Submission. Josef Kolbitsch josef.kolbitsch@tugraz.at http://businesssolutions.tugraz.at/

Apple Train the Trainer 10 App Store Submission. Josef Kolbitsch josef.kolbitsch@tugraz.at http://businesssolutions.tugraz.at/ Apple Train the Trainer 10 App Store Submission Josef Kolbitsch josef.kolbitsch@tugraz.at http://businesssolutions.tugraz.at/ Übersicht Allgemeines Provisioning Profiles Application Binary vorbereiten

Mehr

AK Medientechnologien 09 App Store Submission. Josef Kolbitsch josef.kolbitsch@tugraz.at http://businesssolutions.tugraz.at/

AK Medientechnologien 09 App Store Submission. Josef Kolbitsch josef.kolbitsch@tugraz.at http://businesssolutions.tugraz.at/ AK Medientechnologien 09 App Store Submission Josef Kolbitsch josef.kolbitsch@tugraz.at http://businesssolutions.tugraz.at/ Übersicht Allgemeines Provisioning Profiles Application Binary vorbereiten App

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

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

AVR-Programmierung unter Mac OSX

AVR-Programmierung unter Mac OSX AVR-Programmierung unter Mac OSX im Studiengang BEL3 Lehrveranstaltung Embedded Systems Tutorial ausgeführt von: Jürgen Hausladen A-2460 Bruck/Leitha, Obere Neugasse 6 Wien 01.02.2011 Inhaltsverzeichnis

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

KURZANLEITUNG. Firmware-Upgrade: Wie geht das eigentlich?

KURZANLEITUNG. Firmware-Upgrade: Wie geht das eigentlich? KURZANLEITUNG Firmware-Upgrade: Wie geht das eigentlich? Die Firmware ist eine Software, die auf der IP-Kamera installiert ist und alle Funktionen des Gerätes steuert. Nach dem Firmware-Update stehen Ihnen

Mehr

ReadMe zur Installation der BRICKware for Windows, Version 6.1.2. ReadMe on Installing BRICKware for Windows, Version 6.1.2

ReadMe zur Installation der BRICKware for Windows, Version 6.1.2. ReadMe on Installing BRICKware for Windows, Version 6.1.2 ReadMe zur Installation der BRICKware for Windows, Version 6.1.2 Seiten 2-4 ReadMe on Installing BRICKware for Windows, Version 6.1.2 Pages 5/6 BRICKware for Windows ReadMe 1 1 BRICKware for Windows, Version

Mehr

GmbH, Stettiner Str. 38, D-33106 Paderborn

GmbH, Stettiner Str. 38, D-33106 Paderborn Serial Device Server Der Serial Device Server konvertiert die physikalische Schnittstelle Ethernet 10BaseT zu RS232C und das Protokoll TCP/IP zu dem seriellen V24-Protokoll. Damit können auf einfachste

Mehr

DPS App Zertifikate für ios

DPS App Zertifikate für ios Apple Developer Account Das Apple Developer Center unter http://developer.apple.com Apple Xcode Installation unter https://developer.apple.com/xcode/ ios Dev Center - Login Login in das ios Developer Center

Mehr

Mac OS X Programmierung

Mac OS X Programmierung Mac OS X Programmierung Eine Einführung in Cocoa, Objective-C und Xcode Christina Zeeh Mac User Group Stuttgart 17.08.2004 Überblick Erster Teil Softwareentwicklung für Mac OS X - ein Überblick Objektorientierung

Mehr

Smartphone Entwicklung mit Android und Java

Smartphone Entwicklung mit Android und Java Smartphone Entwicklung mit Android und Java predic8 GmbH Moltkestr. 40 53173 Bonn Tel: (0228)5552576-0 www.predic8.de info@predic8.de Was ist Android Offene Plattform für mobile Geräte Software Kompletter

Mehr

5.3.3.6 Übung - Überwachen und Verwalten von Systemressourcen in Windows Vista

5.3.3.6 Übung - Überwachen und Verwalten von Systemressourcen in Windows Vista 5.0 5.3.3.6 Übung - Überwachen und Verwalten von Systemressourcen in Windows Vista Einführung Drucken Sie diese Übung aus und führen Sie sie durch. In dieser Übung verwenden Sie administrative Tools zur

Mehr

p^db=`oj===pìééçêíáåñçêã~íáçå=

p^db=`oj===pìééçêíáåñçêã~íáçå= p^db=`oj===pìééçêíáåñçêã~íáçå= Error: "Could not connect to the SQL Server Instance" or "Failed to open a connection to the database." When you attempt to launch ACT! by Sage or ACT by Sage Premium for

Mehr

E-Mails in einem lokalen Netzwerk senden mit einem WAGO Controller 750-842 Anwendungshinweis

E-Mails in einem lokalen Netzwerk senden mit einem WAGO Controller 750-842 Anwendungshinweis E-Mails in einem lokalen Netzwerk senden mit einem WAGO Controller 750-842, Deutsch Version 1.0.2 ii Allgemeines Copyright 2002 by WAGO Kontakttechnik GmbH Alle Rechte vorbehalten. WAGO Kontakttechnik

Mehr

Parameter-Updatesoftware PF-12 Plus

Parameter-Updatesoftware PF-12 Plus Parameter-Updatesoftware PF-12 Plus Mai / May 2015 Inhalt 1. Durchführung des Parameter-Updates... 2 2. Kontakt... 6 Content 1. Performance of the parameter-update... 4 2. Contact... 6 1. Durchführung

Mehr

Load balancing Router with / mit DMZ

Load balancing Router with / mit DMZ ALL7000 Load balancing Router with / mit DMZ Deutsch Seite 3 English Page 10 ALL7000 Quick Installation Guide / Express Setup ALL7000 Quick Installation Guide / Express Setup - 2 - Hardware Beschreibung

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

AK Medientechnologien 08 App Deployment. Josef Kolbitsch josef.kolbitsch@tugraz.at http://businesssolutions.tugraz.at/

AK Medientechnologien 08 App Deployment. Josef Kolbitsch josef.kolbitsch@tugraz.at http://businesssolutions.tugraz.at/ AK Medientechnologien 08 App Deployment Josef Kolbitsch josef.kolbitsch@tugraz.at http://businesssolutions.tugraz.at/ Übersicht Allgemeines Personen (Zertifikate) Devices Apps Provisioning Profiles Deployment

Mehr

OpenGL. (Open Graphic Library)

OpenGL. (Open Graphic Library) OpenGL (Open Graphic Library) Agenda Was ist OpenGL eigentlich? Geschichte Vor- und Nachteile Arbeitsweise glscene OpenGL per Hand Debugging Trend Was ist OpenGL eigentlich? OpenGL ist eine Spezifikation

Mehr

TomTom WEBFLEET Tachograph

TomTom WEBFLEET Tachograph TomTom WEBFLEET Tachograph Installation TG, 17.06.2013 Terms & Conditions Customers can sign-up for WEBFLEET Tachograph Management using the additional services form. Remote download Price: NAT: 9,90.-/EU:

Mehr

OPC-Server VM OPC. Anleitung. Installation, Konfiguration, Verwendung. Version 1.01

OPC-Server VM OPC. Anleitung. Installation, Konfiguration, Verwendung. Version 1.01 Installation, Konfiguration, Verwendung Version 1.01 Seite 2 von 20 OPC-Server VM OPC Revision Version Erstellt am Versionsnummer Bemerkung 1.00 26.07.2013 Erstellung 1.01 05.11.2013 2.14 - Reiter der

Mehr

Objective-C CheatSheet

Objective-C CheatSheet App-Templates: Erstellt automatisch einen Navigation Controller mit editierbarem UITableView und DetailView, der bei Klick auf einzelne UITableViewCell angezeigt wird. Kreiert einen GLKitViewController

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

Netzwerk Technologien in LabVIEW

Netzwerk Technologien in LabVIEW Netzwerk Technologien in LabVIEW von Dirk Wieprecht NI Germany Hier sind wir: Agenda Agenda Bedeutung des Ethernet für die Messtechnik Ethernet-basierende Technologien in LabVIEW Low Level- TCP/IP Objekt

Mehr

webpdf für VMware SoftVision Development GmbH Kurfürstenstraße 15 36037 Fulda, Deutschland Tel.: +49 (0)661 25100-0 Fax: +49 (0)661 25100-25

webpdf für VMware SoftVision Development GmbH Kurfürstenstraße 15 36037 Fulda, Deutschland Tel.: +49 (0)661 25100-0 Fax: +49 (0)661 25100-25 webpdf für VMware SoftVision Development GmbH Kurfürstenstraße 15 36037 Fulda, Deutschland Tel.: +49 (0)661 25100-0 Fax: +49 (0)661 25100-25 E-Mail: sales@softvision.de Web: www.softvision.de Inhaltsverzeichnis

Mehr

Group and Session Management for Collaborative Applications

Group and Session Management for Collaborative Applications Diss. ETH No. 12075 Group and Session Management for Collaborative Applications A dissertation submitted to the SWISS FEDERAL INSTITUTE OF TECHNOLOGY ZÜRICH for the degree of Doctor of Technical Seiences

Mehr

Algorithms for graph visualization

Algorithms for graph visualization Algorithms for graph visualization Project - Orthogonal Grid Layout with Small Area W INTER SEMESTER 2013/2014 Martin No llenburg KIT Universita t des Landes Baden-Wu rttemberg und nationales Forschungszentrum

Mehr

Installation und Benutzung AD.NAV.ZipTools

Installation und Benutzung AD.NAV.ZipTools Installation und Benutzung AD.NAV.ZipTools Version 1.0.0.0 ALTENBRAND Datentechnik GmbH Am Gelicht 5 35279 Neustadt (Hessen) Tel: 06692/202 290 Fax: 06692/204 741 email: support@altenbrand.de Die Komponente

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

SDK Implementierung & Account- Verknüpfung Stand 02.01.2015

SDK Implementierung & Account- Verknüpfung Stand 02.01.2015 SDK Implementierung & Account- Verknüpfung Stand 02.01.2015 SDK Implementierung... 3 Google Analytics SDK... 3 Google Analytics E-Commerce Tracking... 4 Google Remarketing-TAG für Apps... 4 Google Analytics

Mehr

Praktikum Internetprotokolle - POP3

Praktikum Internetprotokolle - POP3 Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Praktische Informatik und Medieninformatik Fachgebiet Telematik/Rechnernetze 19. Mai 2008 1 Aufgabenstellung Praktikum

Mehr

5.3.3.5 Labor - Überwachung und Verwaltung von Systemressourcen in Windows 7

5.3.3.5 Labor - Überwachung und Verwaltung von Systemressourcen in Windows 7 5.0 5.3.3.5 Labor - Überwachung und Verwaltung von Systemressourcen in Windows 7 Einführung Drucken Sie diese Übung aus und führen Sie sie durch. In dieser Übung verwenden Sie administrative Tools zur

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

Enigma2 Plugin Entwicklung mit Eclipse

Enigma2 Plugin Entwicklung mit Eclipse Enigma2 Plugin Entwicklung mit Eclipse Enigma2 Plugin Entwicklung mit Eclipse 1/15 Inhaltsverzeichnis 1 ÜBER... 3 2 INSTALLATION... 4 2.1 INSTALLATION VON ECLIPSE... 4 2.2 INSTALLATION VON PYDEV... 4 3

Mehr

Design Patterns. 5. Juni 2013

Design Patterns. 5. Juni 2013 Design Patterns 5. Juni 2013 Überblick Was sind Design Patterns? Welche Design Patterns gibt es? Wann sollte man Design Patterns einsetzen? Refactoring und Design Patterns: Welchen Zusammenhang gibt es

Mehr

Entwicklungswerkzeuge & - methoden

Entwicklungswerkzeuge & - methoden Entwicklungswerkzeuge & - methoden Debugging und Logging von mobile Apps Jürgen Menge Sales Consultant, Oracle Deutschland E-Mail: juergen.menge@oracle.com +++ Bitte nutzen Sie die bevorzugte Telefonnummer

Mehr

Rapid I/O Toolkit. http://projects.spamt.net/riot. Alexander Bernauer alex@copton.net 08.12.08

Rapid I/O Toolkit. http://projects.spamt.net/riot. Alexander Bernauer alex@copton.net 08.12.08 Rapid I/O Toolkit http://projects.spamt.net/riot Alexander Bernauer alex@copton.net 08.12.08 Inhalt Motivation Architektur Beispiel I/O Features Ausblick Motivation Problemstellung Vorgaben Datenverarbeitung

Mehr

Availability Manager Overview

Availability Manager Overview DECUS Symposium 2007 Availability Manager Overview Günter Kriebel Senior Consultant OpenVMS guenter.kriebel@hp.com GET CONNECTED People. Training. Technology. 2006 Hewlett-Packard Development Company,

Mehr

BlackBerry Mobile Fusion Universal Device Service. Thomas Dingfelder, Senior Technical Account Manager ubitexx a Subsidiary of Research In Motion

BlackBerry Mobile Fusion Universal Device Service. Thomas Dingfelder, Senior Technical Account Manager ubitexx a Subsidiary of Research In Motion BlackBerry Mobile Fusion Universal Device Service Stefan Mennecke, Director Stefan Mennecke, Director Thomas Dingfelder, Senior Technical Account Manager ubitexx a Subsidiary of Research In Motion RIM

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

Anleitung: Installation von WISO Mein Büro auf einem Mac

Anleitung: Installation von WISO Mein Büro auf einem Mac Anleitung: Installation von WISO Mein Büro auf einem Mac Lieber WISO Mein Büro Anwender, WISO Mein Büro ist bisher eine reine Windows-Anwendung und lässt sich somit leider nicht direkt auf einem Macintosh

Mehr

Dynamische Plug-ins mit Eclipse 3. Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org)

Dynamische Plug-ins mit Eclipse 3. Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org) Dynamische Plug-ins mit Eclipse 3 Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org) Überblick Die Ausgangslage Dynamische Plug-ins Warum? Eclipse 3 Die OSGi-basierte

Mehr

Effizienz im Vor-Ort-Service

Effizienz im Vor-Ort-Service Installation: Anleitung SatWork Integrierte Auftragsabwicklung & -Disposition Februar 2012 Disposition & Auftragsabwicklung Effizienz im Vor-Ort-Service Disclaimer Vertraulichkeit Der Inhalt dieses Dokuments

Mehr

Managed VPSv3 Was ist neu?

Managed VPSv3 Was ist neu? Managed VPSv3 Was ist neu? Copyright 2006 VERIO Europe Seite 1 1 EINFÜHRUNG 3 1.1 Inhalt 3 2 WAS IST NEU? 4 2.1 Speicherplatz 4 2.2 Betriebssystem 4 2.3 Dateisystem 4 2.4 Wichtige Services 5 2.5 Programme

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

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

Whitepaper 428-01 VCI - Virtual CAN Interface Einbindung in LabWindows/CVI

Whitepaper 428-01 VCI - Virtual CAN Interface Einbindung in LabWindows/CVI Whitepaper 428-01 VCI - Virtual CAN Interface Einbindung in LabWindows/CVI The expert for industrial and automotive communication IXXAT Hauptsitz Geschäftsbereich USA IXXAT Automation GmbH IXXAT Inc. Leibnizstr.

Mehr

Smalltalk vs. Java c Chris Burkert 2002. Smalltalk versus Java

Smalltalk vs. Java c Chris Burkert 2002. Smalltalk versus Java Smalltalk versus Java Gliederung Einführung Geschichte sprachliche Aspekte technische Aspekte theoretische Aspekte praktische Aspekte Fazit Einführung - Merkmale Objektorientierung Einführung - Merkmale

Mehr

Von Keerthikan T. & Siyar Kolusari 10.12.2012

Von Keerthikan T. & Siyar Kolusari 10.12.2012 M226 OBJECT ORIENTIERT PROGRAMMIEREN Project Checkers An online multi-player Java Game Von Keerthikan T. & Siyar Kolusari 10.12.2012 Inhaltsverzeichnis 1. Projektbeschreibung 3 1.1. Inhalt 3 2. Ziele

Mehr

Embedded Linux. Embedded Linux. Daniel Buchheim daniel.buchheim@informatik.tu-cottbus.de. Seminar "Eingebettete drahtlose Systeme"

Embedded Linux. Embedded Linux. Daniel Buchheim daniel.buchheim@informatik.tu-cottbus.de. Seminar Eingebettete drahtlose Systeme Daniel Buchheim daniel.buchheim@informatik.tu-cottbus.de Embedded Linux 30.01.2009 Daniel Buchheim Inhalt: Was ist Embedded Linux? Hardwareunterstützung in Eingebetteten Systemen Open Source Aspekte Aufbau

Mehr

German English Firmware translation for T-Sinus 154 Access Point

German English Firmware translation for T-Sinus 154 Access Point German English Firmware translation for T-Sinus 154 Access Point Konfigurationsprogramm Configuration program (english translation italic type) Dieses Programm ermöglicht Ihnen Einstellungen in Ihrem Wireless

Mehr

Software-Entwicklung für Android und ios

Software-Entwicklung für Android und ios Software-Entwicklung für Android und ios Allgemeine Informationen Zur Veranstaltung Wählbar als - Seminar Wirtschaftsinformatik - Wahlpflichtmodul Sondergebiete der Informatik - Zusatzfach Angesetze Termine:

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

ALM mit Visual Studio Online. Philip Gossweiler Noser Engineering AG

ALM mit Visual Studio Online. Philip Gossweiler Noser Engineering AG ALM mit Visual Studio Online Philip Gossweiler Noser Engineering AG Was ist Visual Studio Online? Visual Studio Online hiess bis November 2013 Team Foundation Service Kernstück von Visual Studio Online

Mehr

VB.net Programmierung und Beispielprogramm für GSV

VB.net Programmierung und Beispielprogramm für GSV VB.net Programmierung und Beispielprogramm für GSV Dokumentation Stand vom 26.05.2011 Tel +49 (0)3302 78620 60, Fax +49 (0)3302 78620 69, info@me-systeme.de, www.me-systeme.de 1 Inhaltsverzeichnis Vorwort...2

Mehr

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper Python Programmierung Kontaktdaten Homepage: http://wwwlehre.dhbw-stuttgart.de/~schepper/ Email: Volker. Schepper [A@T] yahoo.de Vorlesung Skriptsprachen Vorlesung: 06.03.2013 13.03.2013 20.03.2013 27.03.2013

Mehr

Apps-Entwicklung mit Netbeans

Apps-Entwicklung mit Netbeans JDroid mit Netbeans Seite 1 Apps-Entwicklung mit Netbeans Version 2.2, 30. April 2013 Vorbereitungen: 1. JDK SE neuste Version installieren, (http://www.oracle.com/technetwork/java/javase/downloads/index.html)

Mehr

Softwareanforderungen für Microsoft Dynamics CRM Server 2015

Softwareanforderungen für Microsoft Dynamics CRM Server 2015 Softwareanforderungen für Microsoft Dynamics CRM Server 2015 https://technet.microsoft.com/de-de/library/hh699671.aspx Windows Server-Betriebssystem Microsoft Dynamics CRM Server 2015 kann nur auf Computern

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

Anleitung zur Schnellinstallation TFM-560X YO.13

Anleitung zur Schnellinstallation TFM-560X YO.13 Anleitung zur Schnellinstallation TFM-560X YO.13 Table of Contents Deutsch 1 1. Bevor Sie anfangen 1 2. Installation 2 Troubleshooting 6 Version 06.08.2011 1. Bevor Sie anfangen Packungsinhalt ŸTFM-560X

Mehr

Apple Train the Trainer 02 iphone OS

Apple Train the Trainer 02 iphone OS Apple Train the Trainer 02 iphone OS Geschichte und Überblick Josef Kolbitsch josef.kolbitsch@tugraz.at http://businesssolutions.tugraz.at/ Übersicht A Very Brief History of Apple, iphone OS, Xcode and

Mehr

DOK. ART GD1. Citrix Portal

DOK. ART GD1. Citrix Portal Status Vorname Name Funktion Erstellt: Datum DD-MMM-YYYY Unterschrift Handwritten signature or electronic signature (time (CET) and name) 1 Zweck Dieses Dokument beschreibt wie das auf einem beliebigem

Mehr

Smartphone - Betriebssysteme. Smartphone - Betriebssysteme

Smartphone - Betriebssysteme. Smartphone - Betriebssysteme Smartphone - Betriebssysteme Peter Rami - Graz, 28.04.2009 Inhalt Smartphone Symbian OS Windows Mobile BlackBerry OS iphone OS Android Marktanteile & Ausblick Smartphone - Betriebssysteme Peter Rami -

Mehr

Embedded-Linux-Seminare. Toolchains

Embedded-Linux-Seminare. Toolchains Embedded-Linux-Seminare Toolchains http://www.embedded-linux-seminare.de Diplom-Physiker Peter Börner Spandauer Weg 4 37085 Göttingen Tel.: 0551-7703465 Mail: info@embedded-linux-seminare.de Kopier-Rechte

Mehr

Spezifikationen und Voraussetzung

Spezifikationen und Voraussetzung Projekt IGH DataExpert Paynet Adapter Spezifikationen Voraussetzungen Datum : 21.07.08 Version : 1.0.0.2 21.07.2008 Seite 1 von 7 Inhaltsverzeichnis 1 Einleitung... 3 2 Architektur... 3 2.1 Grundsätze

Mehr

Starthilfe für C# Inhaltsverzeichnis. Medien- und Kommunikationsinformatik (B.Sc.) Alexander Paharukov. Informatik 3 Praktikum

Starthilfe für C# Inhaltsverzeichnis. Medien- und Kommunikationsinformatik (B.Sc.) Alexander Paharukov. Informatik 3 Praktikum Starthilfe für C# Inhaltsverzeichnis Allgemeines... 2 Bezugsquellen... 2 SharpDevelop... 2.NET Runtime... 2.NET SDK... 2 Installation... 2 Reihenfolge... 2 Vorschlag für eine Ordnerstruktur... 3 Arbeit

Mehr

USB in Embedded Systemen. Referat von Peter Voser Embedded Development GmbH

USB in Embedded Systemen. Referat von Peter Voser Embedded Development GmbH USB in Embedded Systemen Referat von Peter Voser Embedded Development GmbH Embedded Development GmbH Engineering and Development System Engineering Hardware/Software Co-Design Embedded Software Entwicklung

Mehr

White Paper - Integration von PRO Tips Recovery Tools in RiZone

White Paper - Integration von PRO Tips Recovery Tools in RiZone White Paper - Integration von PRO Tips Recovery Tools in RiZone Jörg Tonn (Hönigsberg & Düvel Datentechnik) Thorsten Weller Sarah Dietrich Copyright 2010 All rights reserved. Rittal GmbH & Co. KG Auf dem

Mehr

Marketing Update. Enabler / ENABLER aqua / Maestro II

Marketing Update. Enabler / ENABLER aqua / Maestro II Marketing Update Enabler / ENABLER aqua / Maestro II Quartal 01/2013 1 Kommentar des Herausgebers Liebe Kunden und Partner, dieser Marketing Update gibt Ihnen einen kurzen Überblick über die aktuell verfügbaren

Mehr

Klausur Verteilte Systeme

Klausur Verteilte Systeme Klausur Verteilte Systeme SS 2005 by Prof. Walter Kriha Klausur Verteilte Systeme: SS 2005 by Prof. Walter Kriha Note Bitte ausfüllen (Fill in please): Vorname: Nachname: Matrikelnummer: Studiengang: Table

Mehr

Mobile Backend in der

Mobile Backend in der Mobile Backend in der Cloud Azure Mobile Services / Websites / Active Directory / Kontext Auth Back-Office Mobile Users Push Data Website DevOps Social Networks Logic Others TFS online Windows Azure Mobile

Mehr

Spezifikationen und Voraussetzung

Spezifikationen und Voraussetzung Projekt IGH DataExpert Yellowbill Adapter Spezifikationen Voraussetzungen Datum : 22.08.2013 Version : 1.0.0.2 22.08.2013 Seite 1 von 7 Inhaltsverzeichnis 1 Einleitung...3 2 Architektur...3 2.1 Grundsätze

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

Robotino View Kommunikation mit OPC. Communication with OPC DE/EN 04/08

Robotino View Kommunikation mit OPC. Communication with OPC DE/EN 04/08 Robotino View Kommunikation mit OPC Robotino View Communication with OPC 1 DE/EN 04/08 Stand/Status: 04/2008 Autor/Author: Markus Bellenberg Festo Didactic GmbH & Co. KG, 73770 Denkendorf, Germany, 2008

Mehr

Byte-Taxi. Bedienungsanleitung. Seite 1 von 8

Byte-Taxi. Bedienungsanleitung. Seite 1 von 8 Byte-Taxi Bedienungsanleitung Seite 1 von 8 Inhaltsverzeichnis 1. Beschreibung 3 2. Systemvoraussetzungen 4 3. Installationsanleitung 5 4. Bedienung 6 5. Infos & Kontakt 8 Seite 2 von 8 1. Beschreibung

Mehr

DBUS Interprozess-Kommunikation für Embedded-Plattformen

DBUS Interprozess-Kommunikation für Embedded-Plattformen DBUS Interprozess-Kommunikation für Embedded-Plattformen Andreas Schwarz Neratec Solutions AG Firmenprofil Neratec Solutions AG Produkt-Entwicklungen für kundenspezifische elektronische Produkte Produkte

Mehr

SmartClass Firmware-Update Vorgehensweise

SmartClass Firmware-Update Vorgehensweise Benutzeranweisungen SmartClass Firmware-Update Vorgehensweise 2008.01 (V 1.x.x) Deutsch Please direct all enquiries to your local JDSU sales company. The addresses can be found at: www.jdsu.com/tm-contacts

Mehr

SmartExporter 2013 R1

SmartExporter 2013 R1 Die aktuelle Version wartet mit zahlreichen neuen Features und umfangreichen Erweiterungen auf. So können mit SmartExporter 2013 R1 nun auch archivierte Daten extrahiert und das Herunterladen der Daten

Mehr

re-lounge GmbH MEDIENBÜRO

re-lounge GmbH MEDIENBÜRO re-lounge GmbH MEDIENBÜRO Think mobile: Die Bedeutung des mobilen Web für Unternehmen 26. JANUAR 2013 01 Ansprechpartner Oliver Schmitt // Geschäftsführer der re-lounge GmbH oliver.schmitt@re-lounge.com

Mehr

Security. Stefan Dahler. 6. Zone Defense. 6.1 Einleitung

Security. Stefan Dahler. 6. Zone Defense. 6.1 Einleitung 6. Zone Defense 6.1 Einleitung Im Folgenden wird die Konfiguration von Zone Defense gezeigt. Sie verwenden einen Rechner für die Administration, den anderen für Ihre Tests. In der Firewall können Sie entweder

Mehr

Seminararbeit Ruby Uno Kartenspiel

Seminararbeit Ruby Uno Kartenspiel Seminararbeit Ruby Uno Kartenspiel Autor: Fabian Merki Fabian Merki 05.11.2006 1 von 10 Inhaltsverzeichnis Einleitung... 3 Die Idee... 4 Design und Implementierung in Ruby... 5 Testing... 7 Startbefehle...

Mehr

3. Konzepte der objektorientierten Programmierung

3. Konzepte der objektorientierten Programmierung 3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung

Mehr

Bedienung von BlueJ. Klassenanzeige

Bedienung von BlueJ. Klassenanzeige Im Folgenden werden wichtige Funktionen für den Einsatz von BlueJ im Unterricht beschrieben. Hierbei wird auf den Umgang mit Projekten, Klassen und Objekten eingegangen. Abgeschlossen wird dieses Dokument

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen 1 Kapitel 7 Ziele 2 (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen Benutzung von Vererbung zur Erstellung individueller GUI-Klassen durch Erweiterung

Mehr

Vorbereitung zu Praktikum 3

Vorbereitung zu Praktikum 3 Vorbereitung zu Praktikum 3 Menü-Toolkit und Command Pattern Fallstudie zu Vererbung und Polymorphie: "Menü-Toolkit" Anwenderfreundliche Programme werden mit Menüs gesteuert In objektorientierten Anwendungen

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

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

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

Erstellung eines SharkNet Installers für Windows mit Inno Setup Compiler 5.4.2

Erstellung eines SharkNet Installers für Windows mit Inno Setup Compiler 5.4.2 Erstellung eines SharkNet Installers für Windows mit Inno Setup Compiler 5.4.2 1. Benötigte Software Zur Erstellung des Installers wird folgende Software benötigt. Es wird sich in dieser Dokumentation

Mehr

Rechnernetze. 6. Übung

Rechnernetze. 6. Übung Hochschule für Technik und Wirtschaft Studiengang Kommunikationsinformatik Prof. Dr. Ing. Damian Weber Rechnernetze 6. Übung Aufgabe 1 (TCP Client) Der ECHO Service eines Hosts wird für die Protokolle

Mehr

Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10. computer graphics & visualization

Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10. computer graphics & visualization Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10 Übersicht In den ersten Wochen: Einführung in objektorientierte Programmierung mit C++ Anschließend: Einführung in die programmierbare

Mehr

SanStore: Kurzanleitung / SanStore: Quick reference guide

SanStore: Kurzanleitung / SanStore: Quick reference guide SanStore Rekorder der Serie MM, MMX, HM und HMX Datenwiedergabe und Backup Datenwiedergabe 1. Drücken Sie die Time Search-Taste auf der Fernbedienung. Hinweis: Falls Sie nach einem Administrator-Passwort

Mehr

Holger Hinzberg. iphone Apps programmieren. Praxiseinstieg. mitp

Holger Hinzberg. iphone Apps programmieren. Praxiseinstieg. mitp Holger Hinzberg iphone Apps programmieren Praxiseinstieg mitp View Controller Einleitung 13 1 Grlagen von ObjectiveC 21 1.1 Stilmittel in den Listings 21 1.2 Kommentare 22 1.3 ObjectiveC kann C 23 1.4

Mehr

CORBA. Systemprogrammierung WS 2006-2007

CORBA. Systemprogrammierung WS 2006-2007 CORBA Systemprogrammierung WS 2006-2007 Teilnehmer: Bahareh Akherattalab Babak Akherattalab Inhaltsverzeichnis: Verteilte Systeme Vergleich zwischen lokale und verteilte Systeme Verteilte Anwendungen CORBA

Mehr