7,80. Deutschland. Österreich 9,00 Schweiz 15,80 sfr Luxemburg 9,20. Core Bluetooth ab. Einführung in die BLE-Entwicklung mit ios

Größe: px
Ab Seite anzeigen:

Download "7,80. Deutschland. Österreich 9,00 Schweiz 15,80 sfr Luxemburg 9,20. Core Bluetooth ab. Einführung in die BLE-Entwicklung mit ios"

Transkript

1 Oktober 2013 München Deutschland 7,80 Österreich 9,00 Schweiz 15,80 sfr Luxemburg 9,20 Volume 12 MOBILE TECHNOLOGY Expo: Oktober 2013 Ausgabe 3/2013 KSH R O W R E W PO INTERNATIONAL PHP CONFERENCE 2013 #MVFUPPUI -& t J04 t "OESPJE t #MBDL#FSSZ t 3BTQCFSSZ 1J LI U J. 8 1 S I SPECIAL B OPS FOR FREE Große Infografik: CI mit Git 34 Core Bluetooth ab ios 6 Einführung in die BLE-Entwicklung mit ios istockphoto.com/oktalstudio Java in ios und Android Media-Partner: Präsentiert von: Veranstalter: Mobile Entwicklung mit dem Application Developer Framework BlackBerry Live 2013: BlackBerry wieder in der Offensive App Store Optimization: Alternative App Stores und das Freemium-Modell Odyssee: Mit Sencha Touch und Apache Cordova zur mobilen Applikation Raspberry Pi: Spaß mit Embedded Monetarisierung: zanox SDK für ios und Android Sieben Zwerge: Die beliebtesten Einplatinencomputer im Überblick

2 012 ios Bluetooth LE und ios 6 Einführung in die BLE-Entwicklung mit ios Erste Schritte mit Core Bluetooth ab ios 6 istockphoto.com/oktalstudio Mobile Technology

3 Bluetooth LE und ios 6 ios 013 Core Bluetooth hat für typische Anwendungsfälle aus den Bereichen Healthcare, Heimvernetzung, Entertainment, Security und Sport/ Fitness Einzug in ios 5 gehalten. Selbst Themen wie abstandsabhängige Kommunikation zwischen Geräten werden mit dem relativ neuen Standard adressiert. In diesem Zuge entwickelt sich Bluetooth LE zu einer echten Alternative zu NFC und wird selbst für Szenarien wie mobiles Bezahlen oder die Spieleindustrie interessant. von Wolfgang Frank und Samuel Mellert Mobile Technology

4 014 ios Bluetooth LE und ios 6 Das in ios 5 eingeführte Core-Bluetooth- Framework deckt die meisten Aspekte der Bluetooth-4.0-Low-Energy-(LE-)Spezifikation ab. Konnte man mit ios 5 nur auf Bluetooth-LE-Geräte zugreifen, die Daten bereitstellen, so wurde mit ios 6 das API erweitert, damit sich ios-geräte selbst als Datenlieferant anbieten können. Leider unterstützen nur die neueren ios-geräte und Macs die Bluetooth- LE-(BLE-)Spezifikation. Dazu gehören das iphone 4S, iphone 5, der Mac Mini, das neue ipad, MacBook Air und MacBook Pro. Seit ios 6 gibt es auch eine BLE- Unterstützung des iphone-simulators, die allerdings in der Praxis aufgrund der verschiedenen BLE Dongles recht problematisch ausfällt. Apple wird den Support des Simulators voraussichtlich in nächsten ios-versionen wieder einstellen. Alternativ zu echten ios-devices gibt es auch diverse Bluetooth-LE-Development-Kits, die Sensordaten wie Gyroscope, Temperatur, Accelerometer und Ähnliches anbieten. Am Bekanntesten ist momentan vermutlich das Sensor-Tag von Texas Instruments, das man für nur 25 US-Dollar erwerben kann. Das Tüfteln mit diesen externen Sensoren macht wirklich viel Spaß und beflügelt manch eine Idee im Kontext des Internet of Things und der Machine Listing 1: BizCardServer.m #import "BizCardServer.h" #import <CoreBluetooth/CoreBluetooth.h> #define NOTIFY_MTU BizCardServer () (nonatomic, strong) CBPeripheralManager (nonatomic, strong) CBMutableService (nonatomic, strong) CBMutableCharacteristic (strong, nonatomic) NSData (nonatomic, readwrite) NSInteger Listing 2: BizCardServer.m: init // First create the peripheral manager to act as server (manager) for data -(id)init if (self = [super init]) _peripheralmanager = [[CBPeripheralManager alloc] initwithdelegate:self queue:dispatch_queue_create("ble_queue", nil)]; return self; to Machine -Vernetzung. Es liegt durchaus nahe, dass BLE ebenfalls die Grundlage für die viel spekulierte iwatch bilden wird. Im Gegensatz zu WLAN oder dem klassischen Bluetooth ist Bluetooth LE nicht besonders gut geeignet, um große Datenmengen wie Bilder, Videos oder Dokumente zu übertragen, da sich nur geringe Transferraten realisieren lassen. Die Stärken von BLE liegen in der geringeren Sendeleistung so kann ein BLE-Gerät, ausgestattet mit einer kleinen Knopfbatterie, leicht über mehrere Monate betrieben werden. Das wäre mit herkömmlichem Bluetooth oder WLAN undenkbar. Weiter ist es möglich, BLE-Geräte ad hoc miteinander zu verbinden, ohne mühselige Pairing-Orgien durchzuführen. Ein explizites Pairing ist nur für verschlüsselte Übertragungen notwendig. Bluetooth LE verlangt keine Konformität zu MFI (Made for iphone), sondern man kann auch ohne Zertifizierung eigene Peripherals erstellen, bzw. verwenden. Die wichtigsten Frameworkklassen Schauen wir uns die wichtigsten Klassen aus dem Core- Bluetooth-(CB-)Framework genauer an. Grundsätzlich wird zwischen Central und Peripheral unterschieden. Das gesamte Framework dreht sich um diese beiden Komponenten und regelt anhand von Delegate Callbacks den Austausch von Informationen und Daten zwischen ihnen. Eine Analogie findet man in Client-/ Serverarchitekturen, bzw. im Provider-/Subscriber- Muster. Das Central übernimmt dabei die Rolle des Clients/Subscriber, der Daten abfragt bzw. benötigt. Das Peripheral enthält Daten, die angeboten werden, und spielt somit die Rolle eines Servers/Provider. Wie bereits erwähnt, kann ab ios 6 ein Gerät sowohl Central als auch Peripheral sein, jedoch leider nicht beides zur selben Zeit! Die Central-Komponente wird durch die CBCentralManager-Klasse und die Peripheral- Komponente durch die CBPeripheralManager-Klasse repräsentiert. CBCentralManager-Objekte werden verwendet, um entdeckte oder verbundene Peripherals, die durch CBPeripheral-Objekte repräsentiert werden, zu verwalten. Der CBCentralManager dient insbesondere dazu, nach Peripherals zu scannen, diese zu entdecken und sich mit ihnen zu verbinden. Anders herum wird auf der Seite eines Peripherals durch ein CBCentral- Objekt der Client repräsentiert, der sich mit dem Peripheral verbunden hat. Man kann sich das so vorstellen, dass ein Peripheral nach außen hin über Broadcasts bekannt gibt, Daten anzubieten. In diesem Angebot können so genannte Services enthalten sein. Auf der Gegenseite scannt ein Central die Umgebung nach vorhandenen Services. Sobald ein gesuchter Service gefunden wird, kann der Central eine Verbindung zum Peripheral aufbauen. Ist diese Verbindung erfolgreich aufgebaut, können die beiden Geräte Daten untereinander austauschen. Die Daten für den Austausch sind in Services organisiert, die wiederum aus verschiedenen so genannten Characteristics bestehen. Eine Characteristic ist im Grunde ein definierter Attributtyp, der einen logischen Mobile Technology

5 Bluetooth LE und ios 6 ios 015 Wert enthält. Zahlreiche Services und Characteristics sind mittlerweile standardisiert, sodass auch herstellerunabhängig beispielsweise ein Heartrate-Monitor durch einen gleichen Service oder zumindest gleiche Characteristics seine Daten anbietet. Auf der Central- Seite wird ein Service durch eine CBService-Klasse repräsentiert. Jeder dieser Services enthält eine Liste von Characteristics, jeweils repräsentiert durch eine CBCharacteristics-Klasse. Auf gleiche Weise werden Services und Characteristics auf Seiten des Peripherals durch ihre erzeugbaren, bzw. veränderbaren Pendants, CBMutableService und CBMutableCharacteristic umgesetzt. Sowohl ein Service als auch eine Characteristic müssen eindeutig durch eine UUID identifizierbar sein. Das Core-Bluetooth-Framework stellt hierfür die Hilfsklasse CBUUID bereit. In Abbildung 1 wird der Zusammenhang der Kernkomponenten nochmals illustriert. Im Folgenden werden anhand eines einfachen Beispiels die grundlegenden Mechanismen von Core Bluetooth in der Anwendung vorgestellt. Dazu erstellen wir ein Peripheral, das einen Service anbietet, sowie ein Central, das sich ab einer bestimmten räumlichen Nähe zum Peripheral verbindet und die bereitgestellten Daten abruft. Idealerweise probiert man das Beispiel mit zwei BLE-fähigen ios-geräten aus. In diesem Beispiel kapseln wir die Client-, bzw. Serverfunktionalität in zwei eigene Klassen (BizCardServer => Peripheral und Biz- CardClient => Central). Ein eigenes Peripheral bauen Die im Folgenden aufgeführten Schritte sind notwendig, um ein Peripheral zu erstellen: Einen CBPeripheralManager erzeugen und starten Einen CBMutableService mit CBMutableCharacteristic erzeugen Service bekanntgeben (advertise) Mit der Central verbinden und Daten austauschen Im Xcode-Projekt muss als Allererstes das CoreBluetooth.framework unter LINKED FRAMEWORK AND LIBRARIES eingebunden werden In unserem BizCardServer (Listing 1) importieren wir die Core-Bluetooth-Framework-Header (<CoreBluetooth/CoreBluetooth.h>). Damit wir auf die Callbacks in der Rolle als Peripheral reagieren können, müssen wir das entsprechende CBPeripheralManagerDelegate- Protokoll implementieren. Zusätzlich legen wir Properties für den Peripheral-Manager, den zu erstellenden Service und die beinhaltende Characteristic an. Ebenso benötigen wir für das Beispiel ein datatosend-property, das die anzubietenden Daten in einem NSData Object hält, sowie eine senddataindex als Hilfszähler, um auch Datenmengen versenden zu können, die nicht in einem einzigen Chunk übertragen werden können, sondern auf mehrere Datenpakete aufgeteilt werden müssen. Abb. 1: Die wichtigsten Kernkomponenten in Core Bluetooth In der init-methode initialisieren wir den Peripheral- Manager. Das erste Argument setzt das delegate (in unserem Fall self). Im zweiten Argument kann eine Queue angegeben werden, falls zum Beispiel der Peripheral- Manager nicht im Main Thread laufen soll. Wir erzeugen in unserem Beispiel eine eigene BLE_Queue-Queue mittels Grand Central Dispatch und übergeben diese als Argument (Listing 2). Sobald der Peripheral-Manager initialisiert wurde, müssen wir seinen Zustand überprüfen (Listing 3). Dies ist notwendig, um sicherzustellen, dass unsere App auch tatsächlich auf einem Bluetooth-LE-fähigen Gerät läuft. Dazu implementieren wir die Delegate-Methode peripheralmanagerdidupdatestate:. Hier können wir auch ggf. passende Infomeldungen an den User weitergeben, Listing 3: BizCardServer.m: Status BLE prüfen // Check if Bluetooth LE is available and setup service - (void)peripheralmanagerdidupdatestate:(cbperipheralmanager *)peripheral switch (peripheral.state) case CBPeripheralManagerStatePoweredOn: [self setupservice]; break; default: Manager did update state"); UIAlertView *alert = [[UIAlertView alloc] Info" LE is not available or activated" delegate:nil otherbuttontitles:nil, nil]; [alert show]; break; Mobile Technology

6 016 ios Bluetooth LE und ios 6 falls Bluetooth im System nicht aktiviert wurde oder nicht verfügbar ist. Im Falle des Status CBPeripheralManagerState- PoweredOn wissen wir, dass BLE verfügbar ist, und wir können unseren anzubietenden Service erzeugen ([self setupservice], Listing 4). Die weiteren validen States findet man in der Core-Bluetooth-Framework-Referenzdokumentation. Jeder Service und jede Characteristic wird durch eine 16- bzw. 128-Bit-UUID identifiziert. Im Falle von eigenen Anwendungen muss man eine 128-Bit-UUID verwenden und sollte dafür sorgen, dass es keine Kollisionen mit anderen UUIDs von anderen Services bzw. Characteristics gibt. Die 16-Bit-UUIDs werden durch die Bluetooth-SIG vergeben. Als Hilfe kann man im OSX-Terminal einfach das Kommando uuidgen aufrufen, um eigene eindeutige Identifier zu erzeugen. Listing 4: BizCardServer.m: Service und Characteristic erzeugen // Construct a new service and publish it - (void)setupservice // Create characteristic self.cardcharacteristic = [[CBMutableCharacteristic alloc] nitwithtype:[cbuuid UUIDWithString:kCardCharacteristicUUID] properties:cbcharacteristicpropertynotiy value:nil permissions:cbattributepermissionsreadable]; // Create service and add characteristic self.cardservice = [[CBMutableService alloc] initwithtype: [CBUUID UUIDWithString:kCardServiceUUID] primary:yes]; // Set the characteristic for service self.cardservice.characteristics // Publish service [self.peripheralmanager addservice:self.cardservice]; Listing 5: BizCardService.h: UUIDs für Service und Characteristic #ifndef BizCardService_h #define BizCardService_h #define #define #endif In unserem Fall benötigen wir zwei UUIDs: eine für den Service und eine für die Characteristic (Listing 5). In Listing 4 sieht man die Erzeugung eines Service. Als Erstes wird jedoch eine Characteristic erzeugt und die CBUUID, die unserer selbst generierten UUID entspricht, als ersten Parameter der initwithtype:proper ties:value:permissions-methode übergeben. Als drittes Argument wird nil übergeben, was so viel bedeutet, wie dass sich der Wert für diese Characteristic dynamisch ergibt und nicht schon statisch feststeht. Das entspricht dem generellen Vorgehen beim Erzeugen von dynamischen Daten. Falls der Wert jedoch sowieso immer konstant bleibt, spricht natürlich auch nichts dagegen, diesen hier fest anzugeben. Der zweite Parameter der init-methode bestimmt, in welcher Form der Wert verwendet werden soll. Ein paar der wichtigsten Möglichkeiten sind im Folgenden aufgelistet: CBCharacteristicPropertyBroadcast: Erlaubt den Broadcast eines Characteristic-Werts durch Verwendung des characteristic configuration descriptor. CBCharacteristicPropertyRead: Erlaubt das Lesen des Characteristic-Werts. CBCharacteristicPropertyWriteWithoutResponse: Ermöglicht das Schreiben des Characteristic-Werts, jedoch ohne Antwort. CBCharacteristicPropertyWrite: Ermöglicht das Schreiben des Characteristic-Werts. CBCharacteristicPropertyNotify: Ermöglicht die Benachrichtigung bei Änderungen des Characteristic- Werts ohne Antwort. Des Weiteren sind Konstanten, bzw. Parameter für Verschlüsselung und Signierung von Characteristic- Wertänderungen verfügbar. Für diese weiterführenden Themen findet man die Details in der Core-Bluetooth- Developer-Dokumentation. Das letzte Argument der init-methode sind die Lese-, Schreibe- und Verschlüsselungsrestriktionen für Attribute. Mögliche Werte sind: CBAttributePermissionsReadable CBAttributePermissionsWriteable CBAttributePermissionsReadEncryptionRequired CBAttributePermissionsWriteEncryptionRequired Nachdem die Characteristic erzeugt wurde, wird der Service erstellt. Auch dieser erhält eine CBUUID, die wir zuvor selbst generiert haben. Diesem Service fügen wir eine Liste der Characteristics hinzu, um die hierarchische Struktur aufzubauen (Abb. 2). Am Ende der Methode sagen wir dem Peripheral-Manager, dass dieser Service dem Peripheral hinzugefügt werden soll. Durch das Hinzufügen des Service zum Peripheral- Manager wird der nächste Delegate Callback peripher almanager:didaddservice:error ausgelöst. Oft wird an dieser Stelle das Bekanntmachen (Advertising) des Service gestartet. In unserem Beispiel wollen wir das expli- Mobile Technology

7 Bluetooth LE und ios 6 ios 017 zit durch eine Nutzeraktion starten können und haben dazu eine eigene Methode startadvertisingbizcardservice und stopadvertisingbizcardservice erzeugt, die unsere BizCardServer-Klasse auch im Header File publik macht (in Listing 6 nicht explizit gezeigt). Das Advertising erfolgt durch periodische Broadcasts des Peripherals. Um die initiale Erkennung zu beschleunigen, aber auch gleichzeitig die Batterie zu schonen, werden nach dem Starten des Advertisings die Pakete in kurzen Zeitabständen versendet und nach einiger Zeit werden diese Intervalle automatisch vergrößert. Das gleiche Vorgehen trifft auf das Scanning nach Devices durch das Central zu. Befindet sich die App im Vordergrund, erfolgt das Advertising des Peripherals sowie das Scanning auf Central-Seite mit höherer Intensität, als wenn sich die App im Hintergrund befindet. Man sollte also beachten, dass sich die Zeiträume für das Entdecken und Verbinden von BLE- Geräten im Background verlängern. Core Bluetooth verfügt über ein Caching der Characteristics (nicht der Werte), um das Entdecken und Analysieren der Services zu beschleunigen. Das Advertise-Paket, das maximal 31 Bytes an Daten/Informationen enthalten kann, liefert neben der Service-UUID auch eine Information zur Signalstärke (RSSI), die verwendet werden kann, um die Distanz zwischen den Geräten zu bestimmen. Es handelt sich dabei um einen ungenauen Wert, der lediglich helfen kann, zwischen nah, mittelweit und ganz weit zu unterscheiden, wobei die Grenzen je nach Geräten und Wetterlage und Umgebungsparametern (z. B. Luftfeuchtigkeit, Temperatur, elektromagnetische Störquellen) schwanken können. Nachdem der Peripheral-Manager begonnen hat, den Service bekannt zu machen (Advertising), empfängt er über seine Delegate-Methoden die Nachricht peripheral- Manager:didStartAdvertising:. Sobald sich ein Central mit dem Peripheral verbunden hat, bekommt man den centraldidconnect-callback des CBPeripheralManagerDelegate. Üblicherweise gefolgt von Read Requests für den Wert einer Characteristic, die durch den Callback didreceivereadrequest signalisiert werden. Der CBPeripheralManager antwortet in der Regel mit respondtorequest auf die Anfragen und liefert somit die gewünschten Daten, bis der Central die Verbindung beendet, was durch einen Aufruf des centraldiddisconnect aus dem Delegate-Protokoll auf Seiten des Peripherals sichtbar wird. Eine andere, oftmals bessere Möglichkeit, ist es, den sog. Subscription/Notify-Mechanismus zu verwenden, bei dem ein Central über angebotene Daten und deren Änderungen automatisch benachrichtigt wird. Hat sich ein Central für einen Service, bzw. für eine Characteristic subscribed (siehe BizCardClient), wird dies über einen Callback der peripheralmanager:cent ral:didsubscribetocharacteristic: Delegate-Methode bekannt gemacht. An dieser Stelle kann dann der dynamische Inhalt erstellt und per updatevalue:forcha Abb. 2: Struktur von Services und Characteristics Listing 6: BizCardServer.m: Advertise starten // When service is added start advertising it via Bluetooth LE - (void)peripheralmanager:(cbperipheralmanager *)peripheral didaddservice:(cbservice *)service error:(nserror *)error if (error == nil) Setup (not advertised yet!)"); else adding service: [error localizeddescription]); // Public method - (void)startadvertisingbizcardservice // Start advertising service [self.peripheralmanager startadvertising: CBAdvertisementDataServiceUUIDsKey UUIDWithString:kCardServiceUUID] ] ]; // Public method - (void)stopadvertisingbizcardservice // Stop advertising service [self.peripheralmanager stopadvertising]; Mobile Technology

8 018 ios Bluetooth LE und ios 6 Listing 7: BizCardServer.m: Daten senden // Recognize when the central unsubscribes - (void)peripheralmanager:(cbperipheralmanager *)peripheral central:(cbcentral *)central didunsubscribefromcharacteristic:(cbcharacteristic *)characteristic unsubscribed from characteristic"); // Catch when someone subscribes to our characteristic, then start sending // them data - (void)peripheralmanager:(cbperipheralmanager *)peripheral central:(cbcentral *)central didsubscribetocharacteristic:(cbcharacteristic *)characteristic if ([characteristic.uuid isequal:[cbuuid UUIDWithString:kCardCharacteristicUUID]]) subscribed to kcardcharacteristicuuid"); // Create some sampel data --> could be provided dynamically! self.datatosend = : 'Peter', 'lastname' : 'Pan','organization' : 'New kids on the block', 'location' : 'Neverland','contact' : datausingencoding:nsutf8stringencoding]; // Reset index self.senddataindex = 0; // Start sending data [self senddata]; // Sends the next amount of data to the connected central - (void)senddata // First up, check if we're meant to be sending an EOM static BOOL sendingeom = NO; if (sendingeom) // send EOM if ([self.peripheralmanager updatevalue: datausingencoding:nsutf8stringencoding] forcharacteristic:self.cardcharacteristic onsubscribedcentrals:nil]) // Mark it as sent sendingeom = NO; EOM"); else // It didn't send, so we'll exit and wait for // peripheralmanagerisreadytoupdatesubscribers to call senddata again // We're not sending an EOM, so we're sending data // Data left to send? if (self.senddataindex >= self.datatosend.length) // No data left. Do nothing // There's data left, so send until the callback fails, or we're done. BOOL didsend = YES; // Make the next chunk while (didsend) // How big should chunk be NSInteger amounttosend = self.datatosend.length - self.senddataindex; // Can't be longer than 20 bytes if (amounttosend > NOTIFY_MTU) amounttosend = NOTIFY_MTU; // Copy out the data we want NSData *chunk = [NSData datawithbytes: self.datatosend.bytes+self.senddataindex length:amounttosend]; // Send next chunk of data if ( [self.peripheralmanager updatevalue: chunk forcharacteristic:self.cardcharacteristic onsubscribedcentrals:nil] ) NSString *stringfromdata = [[NSString alloc] initwithdata: chunk encoding:nsutf8stringencoding]; stringfromdata); // Update our index self.senddataindex += amounttosend; // Was it the last one? if (self.senddataindex >= self.datatosend.length) // It was - send an EOM // Set this so if the send fails, we'll send it next time sendingeom = YES; // Send EOM if ([self.peripheralmanager updatevalue: datausingencoding:nsutf8stringencoding] forcharacteristic:self.cardcharacteristic onsubscribedcentrals:nil]) // we're all done sendingeom = NO; EOM"); else else // Didn't work - drop out and wait for the callback // This callback comes in when the PeripheralManager is ready to send the next // chunk of data. This is to ensure that packets will arrive in the order they are sent. - (void)peripheralmanagerisreadytoupdatesubscribers: (CBPeripheralManager *)peripheral // Start sending again [self senddata]; Mobile Technology

9 Bluetooth LE und ios 6 ios 019 racteristic:onsubscribedcentrals: versendet werden. Sollte die Größe der Daten 20 Bytes überschreiten (NO- TIFY_MTU), können diese nicht mit einem Mal übertragen werden und der Datenstrom muss in Häppchen ( Chunk ) übertragen werden. In unserem Beispiel wird ein EOM als Signal für das Ende einer Nachricht gesendet (Listing 7). Das Zerteilen der Nachricht entspricht weitestgehend dem BTLE-Beispielprojekt von Apple, wobei es hier natürlich auch schönere Wege gibt, um diesen Mechanismus zu realisieren. Die Interaktion zwischen Central und Peripheral sowie der Datenaustausch können auch mit entsprechenden BackgroundModes in der info.plist im Hintergrund durchgeführt werden. Apple empfiehlt jedoch, die Apps so zu gestalten, dass das Scannen und Verbinden über ein Start/Stop-Konzept für einen Nutzer aktiv und sichtbar umgesetzt wird, da ansonsten durch die Hintergrundtätigkeiten der Anwendung der Energie- und Datenbedarf des Geräts schnell sehr hoch ausfallen kann, was wiederum zu einer schlechten User Experience führt. Ein Central bauen Nachdem wir mit unserem Peripheral als Server Daten anbieten, müssen wir noch ein Central als Client erstellen, der diese Daten konsumiert. Dazu implementieren Die Interaktion zwischen Central und Peripheral sowie der Datenaustausch können auch im Hintergrund ausgeführt werden. wir in unserem Central (gekapselt durch BizCardClient) das CBCentralManagerDelegate- sowie das CB- PeripheralDelegate-Protokoll, um die entsprechenden Callbacks für das Set-up des Centrals, den Verbindungsaufbau und die Interaktion mit dem Peripheral zu erhalten. Als Properties merken wir uns einen CBCentralManager sowie das verbundene CBPeripheral und ebenfalls ein NSMutableData-Property, das die empfangenen Daten aufnimmt. Analog zum Peripheral zuvor wird in der init-methode der Central-Manager erzeugt, self als Delegate gesetzt und eine GCD-Queue angegeben, in der das Central ablaufen soll, da ansonsten bei nil die Main Queue verwendet wird. Sobald der Central- Manager initialisiert ist, kann sein Status überprüft werden, um ebenso sicherzustellen, dass das Gerät BLE Anzeige Wissen, wie s geht.

10 020 ios Bluetooth LE und ios 6 unterstützt. Wie beim Peripheral erfolgt dies durch die Implementierung einer Delegate-Methode centralmanagerdidupdatestatus: (Listing 8). Oft wird hier bereits der Scan nach Peripherals gestartet. In unserem Beispiel haben wir diesen Schritt, um den Scan zu starten, Listing 8: BizCardClient.m: Initialisierung des Centrals #import "BizCardClient.h" #import <CoreBluetooth/CoreBluetooth.h> #define kupperproximityrssilimit -15 #define klowerproximityrssilimit BizCardClient () <CBCentralManagerDelegate, (nonatomic, strong) CBCentralManager (nonatomic, strong) CBPeripheral (nonatomic, strong) BizCardClient // First create the central manager to act as client (manager) for data -(id)init if (self = [super init]) _centralmanager = [[CBCentralManager alloc] initwithdelegate:self queue:dispatch_queue_create("ble_queue", nil)]; _data = [[NSMutableData alloc] init]; return self; - (void)centralmanagerdidupdatestate:(cbcentralmanager *)central switch (central.state) case CBCentralManagerStatePoweredOn: //[self scan]; // We'll make the scanning startable by the user Manager ready to scan for services"); break; default: Manager did change state"); break; - (void)scan [self.centralmanager [CBUUID UUIDWithString:kCardServiceUUID] ] ]; in eine eigene public-methode verlagert, um den Scan durch den User direkt start- und stopbar zu machen. Die scanforperipheralswithservices:options-methode wird verwendet, um das Scanning nach Advertisements des Peripherals zu starten. Als Argument kann eine Liste der spezifischen Services (UUIDs) mitgegeben werden, um die Suche einzuschränken. Wenn ein Peripheral entdeckt wird, erfolgt ein Aufruf des Delegates central:diddiscoverperipheral:advertism entdata:rssi: mit den Advertisement-Daten und dem RSSI-Signalstärkewert (Received Signal Strength Indicator). Letzterer kann verwendet werden, um sich nur mit einem Gerät zu verbinden, das sich in einem gewünschten Abstand befindet (Listing 9). Hat man ein passendes Peripheral gefunden, wird eine Verbindung über die Central-Manager-Methode connectperipheral:options: hergestellt. Mit dem Optionsparameter kann gesteuert werden, ob das Connect und Disconnect mit einem Peripheral zu weiteren Notifications/Alerts führen soll. Dieser Connect-Aufruf mündet in einen Delegate Callback didconnectperipheral:. Ist eine Verbindung zu dem Peripheral hergestellt, wird dieses mittels discoverservices: mit optionaler Liste der Service-UUIDs als Parameter gefragt, die zum Peripheral gehörenden Services zu finden (Listing 9). Analog zum Entdecken des Peripherals wird ein gefundener Service durch einen asynchronen Delegate Callback peripheral:diddiscoverservice: und eine gefundene Characteristic durch den Delegate Callback peripheral: diddiscovercharacteristics: signalisiert. In letzterem Fall sieht man im Beispielcode (Listing 10), dass die von uns gewünschte (und vom Peripheral bereitgestellte) Characteristic durch setnotifyvalue:forcharacteristic: subscribed wird. Dadurch erfolgt bei Änderungen des Werts auf Seiten des Peripherals in unserem Central ein Callback der Delegate-Methode peripheral:didupdatenotification- StateForCharacteristic:error: sowie ein Aufruf von peri pheral:didupdatevalueforcharacteristic:error:, der die empfangenen Chunks für die subscribed Characteristic entgegennimmt und in unserem Beispiel zu einem gesamten NSData-Objekt zusammenfügt, bis das EOM als Terminierungssignal empfangen wird (Listing 11). Im Beispiel trennen wir danach auch die Verbindung zum Peripheral mittels cancelperipheralconnection: und unsubscriben uns von der Characteristic. Damit haben wir auch schon alle Schritte durchgeführt, um Daten zwischen zwei BLE-Geräten abhängig von der Distanz zueinander auszutauschen. Wie man sieht... Wie man sieht, macht es das Core-Bluetooth-Framework einem Entwickler sehr einfach, die Funktionalität in eigene Apps zu integrieren und auch verschiedenste bereits vorhandene BLE-Endgeräte anzubinden, oder vielleicht sogar auch als Bastler mit z. B. Raspberry Pi und Bluetooth LE Dongle eigene externe Sensoren und Steuer-/Regelmechanismen zu entwerfen. Die zahl- Mobile Technology

11 Bluetooth LE und ios 6 ios 021 Listing 9: BizCardClient.m: Initialisierung des Centrals - (void)centralmanager:(cbcentralmanager *)central diddiscoverperipheral:(cbperipheral *)peripheral advertisementdata:(nsdictionary *)advertisementdata RSSI:(NSNumber *)RSSI // Reject any where the value is above reasonable range // Reject if the signal strength is too low to be close enough (Close is // around -22dB) if (RSSI.integerValue > kupperproximityrssilimit RSSI.integerValue < klowerproximityrssilimit) far or too close RSSI: RSSI); // Stops scanning for peripheral if close enough [self.centralmanager stopscan]; if (self.connectedperipheral!= peripheral) self.connectedperipheral = peripheral; to peripheral peripheral); Data : [advertisementdata objectforkey:cbadvertisementdatalocalnamekey], [advertisementdata objectforkey:cbadvertisementdataserviceuuidskey]); RSSI); // Connects to the discovered peripheral [self.centralmanager connectperipheral:peripheral options:nil]; - (void)centralmanager:(cbcentralmanager *)central didconnectperipheral:(cbperipheral *)peripheral // Clears the data [self.data setlength:0]; // Set peripheral delegate peripheral.delegate = self; // Asks peripheral to discover service [peripheral [CBUUID UUIDWithString:kCardServiceUUID] ]]; - (void)centralmanager:(cbcentralmanager *)central didfailtoconnectperipheral:(cbperipheral *)peripheral error:(nserror *)error if (error) connecting to peripheral: [error localizeddescription]); [self cleanup]; - (void)centralmanager:(cbcentralmanager *)central diddisconnectperipheral:(cbperipheral *)peripheral error:(nserror *)error if (error) disconnecting peripheral: [error localizeddescription]); [self cleanup]; self.connectedperipheral = nil; // Disconnected ==> start scanning again //[self scan]; Listing 10: BizCardClient.m: Services und Characteristics entdecken - (void)peripheral:(cbperipheral *)peripheral diddiscoverservices:(nserror *)error if (error) discovering service: [error localizeddescription]); [self cleanup]; for (CBService *service in peripheral.services) found with UUID: service.uuid); // Discovers the characteristics for a given service if ([service.uuid isequal:[cbuuid UUIDWithString:kCardServiceUUID]]) [peripheral UUIDWithString:kCardCharacteristicUUID]] forservice:service]; - (void)peripheral:(cbperipheral *)peripheral diddiscovercharacteristicsforservice:(cbservice *)service error:(nserror *)error if (error) discovering characteristic: [error localizeddescription]); [self cleanup]; if ([service.uuid isequal:[cbuuid UUIDWithString:kCardServiceUUID]]) for (CBCharacteristic *characteristic in service.characteristics) if ([characteristic.uuid isequal:[cbuuid UUIDWithString:kCardCharacteristicUUID]]) // Subscribe to characteristic [peripheral setnotifyvalue:yes forcharacteristic:characteristic]; Mobile Technology

12 022 ios Bluetooth LE und ios 6 reichen Kaskaden über die diversen Delegate-Aufrufe durchzuführen, macht den Code leider nicht sehr übersichtlich, aber hier gibt es bereits erste Frameworks, die versuchen, durch Block-APIs zu verbessern. Die Bluetooth-LE-Technologie und Core Bluetooth als Framework stehen gemessen an den Möglichkeiten sicher noch ganz am Anfang und haben ein enormes Potenzial für weitere fantasievolle Anwendungsfälle. Unserer Meinung nach handelt es sich dabei um ein Zukunftsthema, dass man als ios-entwickler auf jeden Fall auf dem Radar behalten sollte. Wolfgang Frank ist Geschäftsführer der arconsis IT-Solutions GmbH aus Karlsruhe. Er beschäftigt sich seit mehreren Jahren hauptsächlich mit der Android- und ios-entwicklung. Als Agile Coach und Softwarearchitekt für komplexe Enterprise-Systeme unterstützt er Kunden beim Bau von Mobile Gateways zur Anbindung an die mobile Welt. Er schreibt für diverse Magazine Fachartikel und hält regelmäßig Vorträge auf Fachkonferenzen wie der MobileTech Con. Samuel Mellert ist seit 2012 bei der arconsis IT-Solutions GmbH im Bereich Mobile Software Development in der ios-entwicklung tätig. Davor hat er bereits fünf Jahre Berufserfahrung in der Erstellung verteilter skalierbarer Web Services bei einem großen deutschen Internetunternehmen gesammelt. Samuel ist unter anderem als Coach für ios-trainings und -Workshops tätig. Links & Literatur [1] invasivecode-blog: [2] Apple-Core-Bluetooth-Referenz: [3] WWDC 2012 Video Core Bluetooth 101 Session 703 [4] WWDC 2012 Video Advanced Core Bluetooth Session 705 [5] WWDC 2013 Video Core Bluetooth Session 703 [6] WWDC 2013 Video Nearby Networking with Multipeer Connectivity Session 708 [7] WWDC 2013 Video What s New in Core Location Session 307 [8] Beispielcode des Artikels: Listing 11: BizCardClient.m: Empfang von Daten an der Central // This callback lets us know more data has arrived via notification // on the characteristic - (void)peripheral:(cbperipheral *)peripheral didupdatevaluefor Characteristic:(CBCharacteristic *)characteristic error:(nserror *)error if (error) discovering characteristics: [error localizeddescription]); [self cleanup]; NSString *stringfromdata = [[NSString alloc] initwithdata:characteristic. value encoding:nsutf8stringencoding]; // Have we got everything we need? if ([stringfromdata // We have, so show the data NSString *receiveddata = [[NSString alloc] initwithdata:self.data encoding:nsutf8stringencoding]; Data so far: receiveddata); // Cancel our subscription to the characteristic [peripheral setnotifyvalue:no forcharacteristic:characteristic]; // and disconnect from the peripehral [self.centralmanager cancelperipheralconnection:peripheral]; dispatch_async(dispatch_get_main_queue(), ^ UIAlertView *alert = [[UIAlertView alloc] arrived" delegate:nil otherbuttontitles:nil]; [alert show]; ); // Otherwise, just add the data on to what we already have [self.data appenddata:characteristic.value]; // Log it stringfromdata); // The peripheral letting us know whether our subscribe/unsubscribe // happened or not - (void)peripheral:(cbperipheral *)peripheral didupdatenotificationstatefor Characteristic:(CBCharacteristic *)characteristic error:(nserror *)error if (error) changing notification state: error.localizeddescription); // Exit if it's not the transfer characteristic if (![characteristic.uuid isequal:[cbuuid UUIDWithString:kCardCharacteristicUUID]]) // Notification has started if (characteristic.isnotifying) began on characteristic); // Notification has stopped else // so disconnect from the peripheral stopped on Disconnecting", characteristic); [self.centralmanager cancelperipheralconnection:peripheral]; Mobile Technology

Tammo Freese Freiberuflicher Softwareentwickler. CoreBluetooth ios kommunikativ

Tammo Freese Freiberuflicher Softwareentwickler. CoreBluetooth ios kommunikativ Tammo Freese Freiberuflicher Softwareentwickler CoreBluetooth ios kommunikativ CoreBluetooth: ios kommunikativ MobileTechCon 2013 Spring Tammo Freese, FlockOfBirds UG @tammofreese / @FlockOfBirds Was ist

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

Cameraserver mini. commissioning. Ihre Vision ist unsere Aufgabe

Cameraserver mini. commissioning. Ihre Vision ist unsere Aufgabe Cameraserver mini commissioning Page 1 Cameraserver - commissioning Contents 1. Plug IN... 3 2. Turn ON... 3 3. Network configuration... 4 4. Client-Installation... 6 4.1 Desktop Client... 6 4.2 Silverlight

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

There are 10 weeks this summer vacation the weeks beginning: June 23, June 30, July 7, July 14, July 21, Jul 28, Aug 4, Aug 11, Aug 18, Aug 25

There are 10 weeks this summer vacation the weeks beginning: June 23, June 30, July 7, July 14, July 21, Jul 28, Aug 4, Aug 11, Aug 18, Aug 25 Name: AP Deutsch Sommerpaket 2014 The AP German exam is designed to test your language proficiency your ability to use the German language to speak, listen, read and write. All the grammar concepts and

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

Version 1.2.0. smart.finder SDI. What's New?

Version 1.2.0. smart.finder SDI. What's New? Version 1.2.0 smart.finder SDI What's New? 1 Neue Funktionen in Version 1.2.0 3 2 Neue Funktionen in Version 1.1 3 Neue Funktionen in Version 1.2.0 Neue Funktionen Unterstützung von Java 8 Die aktuelle

Mehr

NVR Mobile Viewer for iphone/ipad/ipod Touch

NVR Mobile Viewer for iphone/ipad/ipod Touch NVR Mobile Viewer for iphone/ipad/ipod Touch Quick Installation Guide DN-16111 DN-16112 DN16113 2 DN-16111, DN-16112, DN-16113 for Mobile ios Quick Guide Table of Contents Download and Install the App...

Mehr

Exercise (Part XI) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

Exercise (Part XI) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1 Exercise (Part XI) Notes: The exercise is based on Microsoft Dynamics CRM Online. For all screenshots: Copyright Microsoft Corporation. The sign ## is you personal number to be used in all exercises. All

Mehr

MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP)

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

Mehr

Softwareupdate-Anleitung // AC Porty L Netzteileinschub

Softwareupdate-Anleitung // AC Porty L Netzteileinschub 1 Softwareupdate-Anleitung // AC Porty L Netzteileinschub Softwareupdate-Anleitung // AC Porty L Netzteileinschub HENSEL-VISIT GmbH & Co. KG Robert-Bunsen-Str. 3 D-97076 Würzburg-Lengfeld GERMANY Tel./Phone:

Mehr

1.1 Ethernet - Zusätzliche Virtuelle Schnittstallen

1.1 Ethernet - Zusätzliche Virtuelle Schnittstallen Release Notes System Software 7.9.3 Deutsch Diese Version unserer Systemsoftware ist für folgende Gateways verfügbar: X8500 Folgende Änderungen sind vorgenommen worden: 1.1 Ethernet - Zusätzliche Virtuelle

Mehr

+++ Bitte nutzen Sie die integrierte Audio-Funktion von WebEx (Menü Audio -> Integrated Voice Conference -> Start auswählen), um uns zu hören!!!.

+++ Bitte nutzen Sie die integrierte Audio-Funktion von WebEx (Menü Audio -> Integrated Voice Conference -> Start auswählen), um uns zu hören!!!. +++ Bitte nutzen Sie die integrierte Audio-Funktion von WebEx (Menü Audio -> Integrated Voice Conference -> Start auswählen), um uns zu hören!!!. +++ Oracle Mobile Cloud Service (MCS) MCS SDK & MAF MCS

Mehr

The app the crashes, before the breakpoint is reached: Code to the event:

The app the crashes, before the breakpoint is reached: Code to the event: I have set a breakpoint in an asyc event-handler to ListView.ItenTapped-Event (see screenshot below): I then tap on an ListView-entry on my iphone 5 The app the crashes, before the breakpoint is reached:

Mehr

If you have any issue logging in, please Contact us Haben Sie Probleme bei der Anmeldung, kontaktieren Sie uns bitte 1

If you have any issue logging in, please Contact us Haben Sie Probleme bei der Anmeldung, kontaktieren Sie uns bitte 1 Existing Members Log-in Anmeldung bestehender Mitglieder Enter Email address: E-Mail-Adresse eingeben: Submit Abschicken Enter password: Kennwort eingeben: Remember me on this computer Meine Daten auf

Mehr

Aber genau deshalb möchte ich Ihre Aufmehrsamkeit darauf lenken und Sie dazu animieren, der Eventualität durch geeignete Gegenmaßnahmen zu begegnen.

Aber genau deshalb möchte ich Ihre Aufmehrsamkeit darauf lenken und Sie dazu animieren, der Eventualität durch geeignete Gegenmaßnahmen zu begegnen. NetWorker - Allgemein Tip 618, Seite 1/5 Das Desaster Recovery (mmrecov) ist evtl. nicht mehr möglich, wenn der Boostrap Save Set auf einem AFTD Volume auf einem (Data Domain) CIFS Share gespeichert ist!

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

USB Treiber updaten unter Windows 7/Vista

USB Treiber updaten unter Windows 7/Vista USB Treiber updaten unter Windows 7/Vista Hinweis: Für den Downloader ist momentan keine 64 Bit Version erhältlich. Der Downloader ist nur kompatibel mit 32 Bit Versionen von Windows 7/Vista. Für den Einsatz

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

Softwareschnittstellen

Softwareschnittstellen P4.1. Gliederung Rechnerpraktikum zu Kapitel 4 Softwareschnittstellen Einleitung, Component Object Model (COM) Zugriff auf Microsoft Excel Zugriff auf MATLAB Zugriff auf CATIA Folie 1 P4.2. Einleitung

Mehr

Software-Entwicklung für Android und ios

Software-Entwicklung für Android und ios Software-Entwicklung für Android und ios Teil 5: Sensoren Typen von Sensoren Zweck Beispiele Hardware-Sensoren Ermitteln tatsächliche Werte Accelerometer, Magnetometer, Gyroskop, Barometer, Näherungssensor,

Mehr

BLE als Alternative zu NFC bei Authentisierungsverfahren mit Token oder Karte

BLE als Alternative zu NFC bei Authentisierungsverfahren mit Token oder Karte DISPLAY-TAN BLE als Alternative zu NFC bei Authentisierungsverfahren mit Token oder Karte GLIEDERUNG Übersicht aktuell eingesetzter TAN-Verfahren Display-TAN Überblick Umsetzung»» Metaebene»» Sicherheitsanalyse»»

Mehr

Titelbild1 ANSYS. Customer Portal LogIn

Titelbild1 ANSYS. Customer Portal LogIn Titelbild1 ANSYS Customer Portal LogIn 1 Neuanmeldung Neuanmeldung: Bitte Not yet a member anklicken Adressen-Check Adressdaten eintragen Customer No. ist hier bereits erforderlich HERE - Button Hier nochmal

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

KOBIL SecOVID Token III Manual

KOBIL SecOVID Token III Manual KOBIL SecOVID Token III Manual Einführung Vielen Dank, dass Sie sich für das KOBIL SecOVID Token entschieden haben. Mit dem SecOVID Token haben Sie ein handliches, einfach zu bedienendes Gerät zur universellen

Mehr

Hochschule Life Science

Hochschule Life Science Inhalt 1. Allgemeines... 2 2. Installation... 3 3. Bedienung... 4 3.1 Liste aller Android Geräten in der Umgebung... 5 3.2 Anzeigen der Messdaten... 6 3.3 Fehlermeldung... 7 4. Technische Details... 8

Mehr

https://portal.microsoftonline.com

https://portal.microsoftonline.com Sie haben nun Office über Office365 bezogen. Ihr Account wird in Kürze in dem Office365 Portal angelegt. Anschließend können Sie, wie unten beschrieben, die Software beziehen. Congratulations, you have

Mehr

After sales product list After Sales Geräteliste

After sales product list After Sales Geräteliste GMC-I Service GmbH Thomas-Mann-Str. 20 90471 Nürnberg e-mail:service@gossenmetrawatt.com After sales product list After Sales Geräteliste Ladies and Gentlemen, (deutsche Übersetzung am Ende des Schreibens)

Mehr

1.1 IPSec - Sporadische Panic

1.1 IPSec - Sporadische Panic Read Me System Software 9.1.2 Patch 2 Deutsch Version 9.1.2 Patch 2 unserer Systemsoftware ist für alle aktuellen Geräte der bintec- und elmeg-serien verfügbar. Folgende Änderungen sind vorgenommen worden:

Mehr

FAQ. How does it work? Wie funktioniert es? Es ist einfach.

FAQ. How does it work? Wie funktioniert es? Es ist einfach. FAQ Willkommen zu Visit Connect, der Software, die Ihnen die vollständige Kontrolle über Ihren Verkaufsprozess auf Veranstaltungen verschafft. Die Informationen auf dieser Seite vermitteln Ihnen einen

Mehr

Isabel Arnold CICS Technical Sales Germany Isabel.arnold@de.ibm.com. z/os Explorer. 2014 IBM Corporation

Isabel Arnold CICS Technical Sales Germany Isabel.arnold@de.ibm.com. z/os Explorer. 2014 IBM Corporation Isabel Arnold CICS Technical Sales Germany Isabel.arnold@de.ibm.com z/os Explorer Agenda Introduction and Background Why do you want z/os Explorer? What does z/os Explorer do? z/os Resource Management

Mehr

SENSOREN MOBILER DEVICES

SENSOREN MOBILER DEVICES SENSOREN MOBILER DEVICES Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung AM1 Hauptseminar: Re-usable Content in 3D und Simulationssystemen SS 2013 Prof. Manfred Thaller

Mehr

Digital Rights Management (DRM) Verfahren, die helfen Rechte an virtuellen Waren durchzusetzen. Asset Management in Second Life

Digital Rights Management (DRM) Verfahren, die helfen Rechte an virtuellen Waren durchzusetzen. Asset Management in Second Life Digital Rights Management (DRM) Verfahren, die helfen Rechte an virtuellen Waren durchzusetzen Vorlesung im Sommersemester 2007 an der Technischen Universität Ilmenau von Privatdozent Dr.-Ing. habil. Jürgen

Mehr

Microsoft Azure Fundamentals MOC 10979

Microsoft Azure Fundamentals MOC 10979 Microsoft Azure Fundamentals MOC 10979 In dem Kurs Microsoft Azure Fundamentals (MOC 10979) erhalten Sie praktische Anleitungen und Praxiserfahrung in der Implementierung von Microsoft Azure. Ihnen werden

Mehr

Session 1: Classes and Applets

Session 1: Classes and Applets Session 1: Classes and Applets Literature Sprechen Sie Java, ISBN 3-89864-117-1, dpunkt deutsch Java für Studenten, ISBN 3-8273-7045-0, PearsonStudium deutsch Java in a Nutshell, ISBN: 0-59600-283-1, O'Reilly

Mehr

Kloppe Media smsflatrate.net Ansbacher Str. 85 D-91541 Rothenburg ob der Tauber

Kloppe Media smsflatrate.net Ansbacher Str. 85 D-91541 Rothenburg ob der Tauber Mail2SMS www.smsflatrate.net V e r s i o n 1. 3 / J u n i 2 0 1 5 Mit der Ansteuerung der smsflatrate.net-gateways halten Sie sich an die AGB. Our Terms and Conditions apply. Dieses Dokument unterliegt

Mehr

Konzept zur Push Notification/GCM für das LP System (vormals BDS System)

Konzept zur Push Notification/GCM für das LP System (vormals BDS System) Konzept zur Push Notification/GCM für das LP System (vormals BDS System) Wir Push Autor: Michael Fritzsch Version: 1.0 Stand: 04. Februar 2015 Inhalt 1. Was ist eine Push Notification? 2. Wofür steht GCM?

Mehr

SharePoint 2010 Mobile Access

SharePoint 2010 Mobile Access Erstellung 23.05.2013 SharePoint 2010 Mobile Access von TIMEWARP IT Consulting GmbH Stephan Nassberger Hofmühlgasse 17/1/5 A-1060 Wien Verantwortlich für das Dokument: - Stephan Nassberger (TIMEWARP) 1

Mehr

Objects First With Java A Practical Introduction Using BlueJ. Mehr über Vererbung. Exploring polymorphism 1.0

Objects First With Java A Practical Introduction Using BlueJ. Mehr über Vererbung. Exploring polymorphism 1.0 Objects First With Java A Practical Introduction Using BlueJ Mehr über Vererbung Exploring polymorphism 1.0 Zentrale Konzepte dieses Kapitels Methoden-Polymorphie statischer und dynamischer Typ Überschreiben

Mehr

11: Echtzeitbetriebssystem ucos-ii

11: Echtzeitbetriebssystem ucos-ii 11: Echtzeitbetriebssystem ucos-ii Sie lernen anhand aufeinander aufbauender Übungen, welche Möglichkeiten ein Echtzeitbetriebssystem wie das ucosii bietet und wie sich damit MC-Applikationen realisieren

Mehr

How to use the large-capacity computer Lilli? IMPORTANT: Access only on JKU Campus!! Using Windows:

How to use the large-capacity computer Lilli? IMPORTANT: Access only on JKU Campus!! Using Windows: How to use the large-capacity computer Lilli? IMPORTANT: Access only on JKU Campus!! Using Windows: In order to connect to Lilli you need to install the program PUTTY. The program enables you to create

Mehr

Corporate Digital Learning, How to Get It Right. Learning Café

Corporate Digital Learning, How to Get It Right. Learning Café 0 Corporate Digital Learning, How to Get It Right Learning Café Online Educa Berlin, 3 December 2015 Key Questions 1 1. 1. What is the unique proposition of digital learning? 2. 2. What is the right digital

Mehr

iphone Push bei den VZ Netzwerken

iphone Push bei den VZ Netzwerken iphone Push bei den VZ Netzwerken Max Horváth, Steffen Irrgang 1 Vorstellung der Speaker 2 Was sind Push Notifications?? 3 Was sind Push Notifications? Eine Möglichkeit, eine Nachricht an individuelle

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

Nach Ihrer erstmaligen Anmeldung sollten Sie Ihr Passwort ändern. Dazu klicken Sie bitte auf Ihren Namen.

Nach Ihrer erstmaligen Anmeldung sollten Sie Ihr Passwort ändern. Dazu klicken Sie bitte auf Ihren Namen. 1 Passwort ändern Nach Ihrer erstmaligen Anmeldung sollten Sie Ihr Passwort ändern Dazu klicken Sie bitte auf Ihren Namen Abb 1-1 Erstmaliger Anmeldung Danach erscheint ein PopUp indem Sie Ihr Passwort

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

EtherNet/IP Topology and Engineering MPx06/07/08VRS

EtherNet/IP Topology and Engineering MPx06/07/08VRS EtherNet/IP Topology and Engineering MPx06/07/08VRS 3 1. Engineering via free EtherNet/IPTM-Port of a device on Bus from MPx07V10 2. Engineering via optional Industrial-Ethernet-Switch 3. Engineering via

Mehr

Invitation - Benutzerhandbuch. User Manual. User Manual. I. Deutsch 2. 1. Produktübersicht 2. 1.1. Beschreibung... 2

Invitation - Benutzerhandbuch. User Manual. User Manual. I. Deutsch 2. 1. Produktübersicht 2. 1.1. Beschreibung... 2 Invitation - Inhaltsverzeichnis I. Deutsch 2 1. Produktübersicht 2 1.1. Beschreibung......................................... 2 2. Installation und Konfiguration 2 2.1. Installation...........................................

Mehr

miditech 4merge 4-fach MIDI Merger mit :

miditech 4merge 4-fach MIDI Merger mit : miditech 4merge 4-fach MIDI Merger mit : 4 x MIDI Input Port, 4 LEDs für MIDI In Signale 1 x MIDI Output Port MIDI USB Port, auch für USB Power Adapter Power LED und LOGO LEDs Hochwertiges Aluminium Gehäuse

Mehr

5.3 Verwendung der integrierten Datenbank SQLite

5.3 Verwendung der integrierten Datenbank SQLite 5.3 Verwendung der integrierten Datenbank SQLite 153 5.3 Verwendung der integrierten Datenbank SQLite Ein wichtiges Element des iphone OS ist die integrierte Datenbank SQLite. Damit haben Sie die Möglichkeit,

Mehr

Leseprobe. Jan Tittel, Jochen Baumann. Apps für ios entwickeln. Am Beispiel einer realen App. ISBN (Buch): 978-3-446-43192-8

Leseprobe. Jan Tittel, Jochen Baumann. Apps für ios entwickeln. Am Beispiel einer realen App. ISBN (Buch): 978-3-446-43192-8 Leseprobe Jan Tittel, Jochen Baumann Apps für ios entwickeln Am Beispiel einer realen App ISBN (Buch): 978-3-446-43192-8 ISBN (E-Book): 978-3-446-43314-4 Weitere Informationen oder Bestellungen unter http://www.hanser-fachbuch.de/978-3-446-43192-8

Mehr

UM ALLE DATEN ZU KOPIEREN. ZUNÄCHST die Daten des alten Telefons auf einen Computer kopieren

UM ALLE DATEN ZU KOPIEREN. ZUNÄCHST die Daten des alten Telefons auf einen Computer kopieren LUMIA mit WP8 IPHONE Daten des alten Telefons auf einen Computer kopieren Software von welcomehome.to/nokia auf Ihrem PC oder Mac. verbinden Sie Ihr altes Telefon über 3. Wenn Sie Outlook nutzen, öffnen

Mehr

BLK-2000. Quick Installation Guide. English. Deutsch

BLK-2000. Quick Installation Guide. English. Deutsch BLK-2000 Quick Installation Guide English Deutsch This guide covers only the most common situations. All detail information is described in the user s manual. English BLK-2000 Quick Installation Guide

Mehr

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging Servlet Debugging Markus Völter, voelter@acm.org, www.voelter.de Bei der Arbeit mit Servlets kommt man recht schnell an den Punkt, an dem man Servlets vernünftig testen oder debuggen will. Mit Hilfe des

Mehr

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

Infrastructure as a Service (IaaS) Solutions for Online Game Service Provision

Infrastructure as a Service (IaaS) Solutions for Online Game Service Provision Infrastructure as a Service (IaaS) Solutions for Online Game Service Provision Zielsetzung: System Verwendung von Cloud-Systemen für das Hosting von online Spielen (IaaS) Reservieren/Buchen von Resources

Mehr

OEDIV SSL-VPN Portal Access for externals

OEDIV SSL-VPN Portal Access for externals OEDIV SSL-VPN Portal Access for externals Abteilung Serverbetreuung Andre Landwehr Date 31.07.2013 Version 1.2 Seite 1 von 9 Versionshistorie Version Datum Autor Bemerkung 1.0 06.08.2011 A. Landwehr Initial

Mehr

HIR Method & Tools for Fit Gap analysis

HIR Method & Tools for Fit Gap analysis HIR Method & Tools for Fit Gap analysis Based on a Powermax APML example 1 Base for all: The Processes HIR-Method for Template Checks, Fit Gap-Analysis, Change-, Quality- & Risk- Management etc. Main processes

Mehr

Programmieren II. Timer. Vorlesung 11. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011. Timer. Sockets.

Programmieren II. Timer. Vorlesung 11. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011. Timer. Sockets. Programmieren II Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 26 Timer Sockets SMTP-Client 2 / 26 Timer Mit einem Timer können bestimmte Aktionen periodisch wiederkehrend durchgeführt

Mehr

Beispiel droidremoteppt

Beispiel droidremoteppt Arthur Zaczek Nov 2014 1 Beispiel droidremoteppt 1.1 Beschreibung Powerpoint soll mit ein Android Handy über Bluetooth gesteuert werden Folien wechseln (Vor/Zurück) Folien am Handy darstellen Am Handy

Mehr

Anleitung Command Line Client Demo Client

Anleitung Command Line Client Demo Client Stiftung Auffangeinrichtung BVG Fondation institution supplétive LPP Fondazione istituto collettore LPP Anleitung Command Line Client Demo Client Version 1.1 Inhalt 1. Allgemein... 3 1.1. Installieren

Mehr

Rückblick und nächste Schritte AutoMOT. Telco APG und Marktteilnehmer 26.01.2015

Rückblick und nächste Schritte AutoMOT. Telco APG und Marktteilnehmer 26.01.2015 Rückblick und nächste Schritte AutoMOT Telco APG und Marktteilnehmer 26.01.2015 Agenda TOP 1: Rückblick auf die operative Umsetzung und die betriebliche Erfahrung TOP 2: IT-technische Spezifikation Elemente

Mehr

Mobile Anwendungen Google Cloud Messaging

Mobile Anwendungen Google Cloud Messaging Mobile Anwendungen Google Cloud Messaging 1. Allgemeines zu Google Cloud Messaging (GCM): - 60% der Top 100 Apps nutzen Google Cloud Messagging - 200.000 Messages pro Sekunde = 17 Milliarden Messages pro

Mehr

Technical Support Information No. 123 Revision 2 June 2008

Technical Support Information No. 123 Revision 2 June 2008 I IA Sensors and Communication - Process Analytics - Karlsruhe, Germany Page 6 of 10 Out Baking Of The MicroSAM Analytical Modules Preparatory Works The pre-adjustments and the following operations are

Mehr

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

p^db=`oj===pìééçêíáåñçêã~íáçå= p^db=`oj===pìééçêíáåñçêã~íáçå= How to Disable User Account Control (UAC) in Windows Vista You are attempting to install or uninstall ACT! when Windows does not allow you access to needed files or folders.

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

How to access licensed products from providers who are already operating productively in. General Information... 2. Shibboleth login...

How to access licensed products from providers who are already operating productively in. General Information... 2. Shibboleth login... Shibboleth Tutorial How to access licensed products from providers who are already operating productively in the SWITCHaai federation. General Information... 2 Shibboleth login... 2 Separate registration

Mehr

The English Tenses Die englischen Zeitformen

The English Tenses Die englischen Zeitformen The English Tenses Die englischen Zeitformen Simple Present (Präsens einfache Gegenwart) Handlungen in der Gegenwart die sich regelmäßig wiederholen oder einmalig geschehen I go you go he goes she goes

Mehr

Harry gefangen in der Zeit Begleitmaterialien

Harry gefangen in der Zeit Begleitmaterialien Episode 069 - Please take a number Focus: job hunting, dealing with official agencies, posing questions politely, vocabulary for job searches and unemployment Grammar: indirect interrogative sentences

Mehr

Selbststudium OOP5 21.10.2011 Programmieren 1 - H1103 Felix Rohrer

Selbststudium OOP5 21.10.2011 Programmieren 1 - H1103 Felix Rohrer Kapitel 4.1 bis 4.3 1. zu bearbeitende Aufgaben: 4.1 4.1: done 2. Was verstehen Sie unter einem "Java-Package"? Erweiterungen verschiedener Klassen welche in Java benutzt werden können. 3. Sie möchten

Mehr

www.yellowtools.com E-License - Product Activation E-License - Produktaktivierung

www.yellowtools.com E-License - Product Activation E-License - Produktaktivierung www.yellowtools.com E-License - Product Activation E-License - Produktaktivierung A-1 Yellow Tools E-License Activation Yellow Tools E-License Activation A-2 Dear user, thanks for purchasing one of our

Mehr

Introduction to Azure for Developers MOC 10978

Introduction to Azure for Developers MOC 10978 Introduction to Azure for Developers MOC 10978 In dem MOC Kurs 10978: Introduction to Azure for Developers lernen Sie, wie Sie die Funktionalität einer vorhandenen ASP.NET MVC Applikation so erweitern,

Mehr

Notice: All mentioned inventors have to sign the Report of Invention (see page 3)!!!

Notice: All mentioned inventors have to sign the Report of Invention (see page 3)!!! REPORT OF INVENTION Please send a copy to An die Abteilung Technologietransfer der Universität/Hochschule An die Technologie-Lizenz-Büro (TLB) der Baden-Württembergischen Hochschulen GmbH Ettlinger Straße

Mehr

2. Hintergrundverarbeitung in Android: Services und Notifications

2. Hintergrundverarbeitung in Android: Services und Notifications 2. Hintergrundverarbeitung in Android: Services und Notifications Übersicht 2. Hintergrundverarbeitung in Android: Services und Notifications Übersicht: In Mobis 1: Threads; hier genauerer Blick auf Services

Mehr

TVHD800x0. Port-Weiterleitung. Version 1.1

TVHD800x0. Port-Weiterleitung. Version 1.1 TVHD800x0 Port-Weiterleitung Version 1.1 Inhalt: 1. Übersicht der Ports 2. Ein- / Umstellung der Ports 3. Sonstige Hinweise Haftungsausschluss Diese Bedienungsanleitung wurde mit größter Sorgfalt erstellt.

Mehr

Einsatz einer Dokumentenverwaltungslösung zur Optimierung der unternehmensübergreifenden Kommunikation

Einsatz einer Dokumentenverwaltungslösung zur Optimierung der unternehmensübergreifenden Kommunikation Einsatz einer Dokumentenverwaltungslösung zur Optimierung der unternehmensübergreifenden Kommunikation Eine Betrachtung im Kontext der Ausgliederung von Chrysler Daniel Rheinbay Abstract Betriebliche Informationssysteme

Mehr

1. General information... 2 2. Login... 2 3. Home... 3 4. Current applications... 3

1. General information... 2 2. Login... 2 3. Home... 3 4. Current applications... 3 User Manual for Marketing Authorisation and Lifecycle Management of Medicines Inhalt: User Manual for Marketing Authorisation and Lifecycle Management of Medicines... 1 1. General information... 2 2. Login...

Mehr

Sepiola Mockups. Overview. Show notes. Primäre Navigation anklicken um zum gewünschten Mockups zu gehen. Backup usage. Overview.

Sepiola Mockups. Overview. Show notes. Primäre Navigation anklicken um zum gewünschten Mockups zu gehen. Backup usage. Overview. Show notes usage Incremental s Free 35% 30% 35% 711 MB 598 MB 739 MB Quota: 2 GB change quota under Settings schedule Last s Successfull Tuesday, 19.3.09 12:16 Successfull Wednesday, 19.3.09 12:25 Successfull

Mehr

EEX Kundeninformation 2009-06-04

EEX Kundeninformation 2009-06-04 EEX Kundeninformation 2009-06-04 Änderungen bei der sstellung für die monatlichen Börsentransaktionsentgelte Sehr geehrte Damen und Herren, seit Anfang des Jahres vereinheitlichen wir in mehreren Stufen

Mehr

Programmentwicklung ohne BlueJ

Programmentwicklung ohne BlueJ Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie

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

NEWSLETTER. FileDirector Version 2.5 Novelties. Filing system designer. Filing system in WinClient

NEWSLETTER. FileDirector Version 2.5 Novelties. Filing system designer. Filing system in WinClient Filing system designer FileDirector Version 2.5 Novelties FileDirector offers an easy way to design the filing system in WinClient. The filing system provides an Explorer-like structure in WinClient. The

Mehr

UM ALLE DATEN ZU KOPIEREN. ZUNÄCHST die Daten des alten Telefons auf einen Computer kopieren

UM ALLE DATEN ZU KOPIEREN. ZUNÄCHST die Daten des alten Telefons auf einen Computer kopieren IPHONE UM ALLE DATEN des alten Telefons auf einen Computer Software von welcomehome.to/nokia auf Ihrem PC oder Mac. verbinden Sie Ihr altes Telefon über 3. Wenn Sie Outlook nutzen, öffnen Sie itunes, um

Mehr

Abteilung Internationales CampusCenter

Abteilung Internationales CampusCenter Abteilung Internationales CampusCenter Instructions for the STiNE Online Enrollment Application for Exchange Students 1. Please go to www.uni-hamburg.de/online-bewerbung and click on Bewerberaccount anlegen

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

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

Sind Cloud Apps der nächste Hype?

Sind Cloud Apps der nächste Hype? Java Forum Stuttgart 2012 Sind Cloud Apps der nächste Hype? Tillmann Schall Stuttgart, 5. Juli 2012 : Agenda Was sind Cloud Apps? Einordnung / Vergleich mit bestehenden Cloud Konzepten Live Demo Aufbau

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

Java - Webapplikationen

Java - Webapplikationen Java - Webapplikationen Bestandteile (HTTP,, JSP) Aufbau (Model View Controller) Datenverwaltung (Java Beans, Sessions) Entwicklung (Projektstruktur, Sysdeoplugin für Eclipse) 17. Januar 2006 Jan Hatje

Mehr

Einführung in die Cross-Plattform Entwicklung Web Services mit dem Intel XDK

Einführung in die Cross-Plattform Entwicklung Web Services mit dem Intel XDK Einführung in die Cross-Plattform Entwicklung Web Services mit dem Intel XDK Einführung Dieses Hands-on-Lab (HOL) macht den Leser mit dem Intel XDK und dem Zugriff auf Web Services vertraut. Der Web Service

Mehr

Anleitung. Integration von Kentix Geräten in den OpManager

Anleitung. Integration von Kentix Geräten in den OpManager Anleitung Integration von Kentix Geräten in den OpManager Integration von Kentix Geräten in den OpManager Inhalt 1 Über diese Anleitung... 3 2 Initial Setup... 3 3 Importieren der Device Templates... 3

Mehr

Client/Server-Systeme

Client/Server-Systeme Frühjahrsemester 2011 CS104 Programmieren II / CS108 Programmier-Projekt Java-Projekt Kapitel 3: /Server-Architekturen H. Schuldt /Server-Systeme Ein zweischichtiges /Server-System ist die einfachste Variante

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

Content Strategy for Mobile

Content Strategy for Mobile Content Strategy for Mobile Maik Derek Schneitler Responsive Webdesigner Büro für kreative Zusammenarbeit B User = Wir Es gibt keine Content Strategy für Mobile. Wir brauchen: Eine Strategie für alles.

Mehr

10.6 Programmier-Exits für Workitems

10.6 Programmier-Exits für Workitems 10.6 Programmier-Exits für Workitems 279 10.6 Programmier-Exits für Workitems 10.6.1 Das Interface IF_SWF_IFS_WORKITEM_EXIT Am Schritt einer Workflow-Definition im Reiter»Programmier-Exits«können verschiedene

Mehr

a lot of, much und many

a lot of, much und many Aufgabe 1, und In bejahten Sätzen verwendest du für die deutschen Wörter viel und viele im Englischen Bsp.: I have got CDs. We have got milk. There are cars on the street. Bei verneinten Sätzen und Fragen

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

COMPUTER: Mission Berlin. November 9, 2006, ten twenty-five am. You have 90 minutes and 2 lives left, and someone seems to know you.

COMPUTER: Mission Berlin. November 9, 2006, ten twenty-five am. You have 90 minutes and 2 lives left, and someone seems to know you. Episode 06 Die Frau in Rot Anna stößt mit einer Frau zusammen, die behauptet, mit ihr im Jahr 1961 befreundet gewesen zu sein. Außerdem wird Anna von der Nachricht überrascht, dass ihr eine Frau in Rot

Mehr

Mobile Device Management (MDM) Part2

Mobile Device Management (MDM) Part2 Jürg Koller CONSULTANT trueit GMBH juerg.koller@trueit.ch @juergkoller blog.trueit.ch / trueit.ch Pascal Berger CONSULTANT trueit GMBH pascal.berger@trueit.ch @bergerspascal blog.trueit.ch / trueit.ch

Mehr

Long-term archiving of medical data new certified cloud-based solution offers high security and legally approved data management

Long-term archiving of medical data new certified cloud-based solution offers high security and legally approved data management Long-term archiving of medical data new certified cloud-based solution offers high security and legally approved data management The European Centre of Expertise for the Health Care Industry Langzeitarchivierung

Mehr