Mit Apple’s AirDrop lassen sich beliebige Inhalte zwischen Apps unkompliziert teilen. Man tippt auf den Action Button  und wählt aus einer Liste von Kontakten aus, die sich mit ihrem Gerät in der Nähe befinden. Der Kontakt akzeptiert die Übertragung und wählt eine App, mit der der geteilte Inhalt geöffnet werden soll.

Folgende Geräte sind die Mindestvoraussetung um AirDrop nutzen zu können:

  • iPhone 5 oder neuer
  • iPad (4. Generation) oder neuer
  • iPad mini
  • iPod touch (5. Generation oder neuer)

WLAN und Bluetooth müssen aktiviert sein.

(https://support.apple.com/de-de/HT204144)

 

Wie konfiguriert man die eigene App für AirDrop?

Beim Teilen von Inhalten über AirDrop werden Dateien verschickt.

Die App definiert Document Types und UTIs (Uniform Type Identifiers) für das Bereitstellen (Export) und für das Entgegennehmen (Import) von Inhalten. Das kann in Xcode für ein Build Target in der Info Sektion eingestellt werden:

Bildschirmfoto 2015-10-28 um 17.48.22

Bildschirmfoto 2015-10-28 um 17.46.52

Bildschirmfoto 2015-10-28 um 17.47.26

Bildschirmfoto 2015-10-28 um 17.47.41

Wenn die App spezielle Inhalte bereitstellt, deren Format nur die App selbst oder eine spezielle andere App kennt, dann sollte man einen eigenen eindeutigen Inhaltstyp definieren. Typischerweise wird für den Identifier das reverse DNS Format benutzt: „com.copmanyName.appName.documentType“. Für den public.mime-type empfiehlt sich „application/appName“ oder „application/dokumentName“. Die Dateiendung ist frei wählbar und kann auch aus deutlich mehr als 3 Zeichen bestehen.

In diesem Beispiel wird der Export und Import von Vokabel-Paketen für eine Vokabeltrainer-App definiert.

Für bereits existierende bzw. bekannte Arten von Inhalten wie zum Beispiel Bilder oder Videos sollte man auf die System-Declared Uniform Type Identifiers zurückgreifen: https://developer.apple.com/library/ios/documentation/Miscellaneous/Reference/UTIRef/Articles/System-DeclaredUniformTypeIdentifiers.html

(Es kommt oft vor dass Xcode immer wieder abstürtzt, wenn man in der Info Sektion einen bestimmten Eintrag bearbeitet. In diesem Fall kann man im Project Navigator die Info.plist per Rechtsklick als „Source Code“ öffnen und die Einträge in XML bearbeiten.)

 

Als nächstes muss man in der App einen Button festlegen (zum Beispiel den Action Button  ), der den UIActivityViewController öffnet, um die Inhalte bereitzustellen:

Bildschirmfoto 2015-10-29 um 17.54.38

Dieser Code benutzt das ab iOS 8 neu eingeführte UIPopoverPresentationController System, das auf iPhone und iPad einheitlich funktioniert.

Hier wird ein ein Objekt der Klasse Package aus dem Beispielprojekt geteilt. Es wird vorher als Datei abgespeichert und repräsentiert ein Vokabel-Paket.

Wenn der Benutzer auf den Button tappt, erscheint das Activity Popup:

IMG_0097

Für das Activity-Item, das an den UIActivityViewController übergeben wird, sollte man eine eigene Klasse (hier: VokPackageActivityItemProvider) anlegen:

Bildschirmfoto 2015-10-29 um 18.01.02

Sobald der Benutzer einen AirDrop Kontakt ausgewählt hat, wird in einem Background-Thread die item() Methode aufgerufen. In diesem Beispiel wird einfach nur die URL zu der bereits existierenden Datei zurückgegeben. Man kann auch die Datei innerhalb der item() Methode generieren und dann ein NSURL Objekt mit dem Pfad auf die Datei zurückgeben.

Nachdem die Datei versendet wurde, fragt das Gerät des ausgewählten Kontaktes in welcher App die Datei geöffnet werden soll:

IMG_0099

Um den bereitgestellten Inhalt mit einer App entgegenzunehmen, wird im application delegate der URL handler definiert:

Bildschirmfoto 2015-10-29 um 18.40.36

Zunächst wird geprüft, ob die Datei die passende Dateiendung hat (hier: .vok). Die Datei befindet sich erst mal im Inbox Ordner mit eingeschränkten Zugriffsrechten. Man sollte die Datei gleich in den passenden Systemordner verschieben (Documents, Library, …).

In diesem Beispiel wird die Datei in Documents verschoben und steht ab diesem Zeitpunkt der App als Vokabelpaket bereit:

IMG_0100

Vokabeltrainer-Beispielprojekt Download:

Vok.zip

 

Im September ’14 hat Apple seine neue Betriebssystemversion iOS 8 für iPad, iPhone und iPod touch veröffentlicht. Sind 5,8 GByte freier Speicherplatz auf dem Gerät unter iOS 7 vorhanden, so kann man das Update bequem Over-the-Air beziehen, ansonsten heißt es erstmal entweder Platz schaffen oder per iTunes updaten.

Hat man es nun geschafft iOS 8 zu installieren und wirft voller Vorfreude einen ersten Blick auf die Benutzeroberfläche, so stellt man fest, das alles fast so aussieht wie unter iOS 7. Erst auf den zweiten Blick erkennt man Detailverbesserungen im UI und der Benutzerführung. So wurden zum Beispiel die versteckten Einstellungen, um Diagnose und Nutzungsdaten an Apple zu schicken, in die Rubrik Datenschutz verschoben, wo es die meisten Nutzer wohl auch vermuten würden.

Kontakte in der Multitasking Ansicht anzeigen.

Wird die Home-Taste zweimal gedrückt, so zeigt sich die Multitasking-Ansicht. Dabei werden jetzt neben den geöffneten Apps auch die letzten Kontakte angezeigt.

Benachrichtigungen direkt beantworten.

Mit iOS 8 ist es nun möglich auf Benachrichtigungen direkt über Ihren Mitteilungsbanner oben bei der Statusleiste zu reagieren ohne die gerade geöffnete Anwendung zu verlassen.

Spotlight sucht kontextsensitiv.

Je nach Begriff sucht Spotlight nun nicht mehr nur auf meinem Gerät nach einer passenden Antwort, sondern zeigt auch Treffer direkt von Webseiten wie Wikipedia, oder Newsseiten an. Sucht man beispielsweise nach einem Restaurant so werden auch Vorschläge aus meiner näheren Umgebung angezeigt.

Hinweis: Wer an dieser Stelle nicht möchte, dass Spotlight meinen Standort für Suchvorschläge verwenden soll, da dies dafür an Apple gesendet wird, kann dies in der Einstellungs-App unter „Allgemein -> Spotlight Suche bzw. Datenschutz -> Ortungsdienste -> Systemdienste -> Spotlight Vorschläge“ deaktivieren.

Tastatur bietet mehr Möglichkeiten.

Was bei Android schon seit vielen Jahren State-of-the-Art ist, funktioniert nun auch unter iOS. So kann nun die Apple eigene iOS-Tastatur gegen eine Tastatur eines Drittanbieters ausgetauscht werden.

Hinweis: Tastaturen von Drittanbietern benötigen oftmals einen Vollzugriff, damit alle Funktionen genutzt werden können. Hierbei können aber alle über die Tastatur eingegebenen Daten an den Drittanbieter übermittelt werden. Dies ist allerdings aus  datenschutzrechtlichen Gründen und der Privatsphäre kritisch zu beurteilen. Um den Vollzugriff zu deaktivieren, gehen Sie wie folgt vor. Einstellungs-App öffnen -> Allgemein -> Tastaturen -> Tastatur des Drittanbieters aussuchen und antappen -> „Vollen Zugriff erlauben“ deaktivieren.

Mit „QuickType“ hat Apple eine Technologie eingeführt, welche mir automatisch Vorschläge für das nächste zu schreibende Wort anhand einer Analyse meines Schreibstils anzeigt.

Hinweis: Wer Quicktype nicht verwenden möchte, kann dies über die Einstellungs-App -> Allgemein -> Tastatur -> „Vorschläge: ein“ deaktivieren.

Kamera mit neuen Funktionen aufgewertet.

Neben Zeitlupenvideos können jetzt auch Zeitraffervideos erstellt werden. Weiterhin verfügt die Kamera über eine automatische Bildstabilisierungs-Funktion, eine verbesserte Gesichtserkennung und neben dem Fokus, kann auch die Belichtungszeit direkt direk im Bild eingestellt werden.

Hinweis: Bildstabilisierung ist ab iPhone 5S verfügbar und die verbesserte Gesichtserkennung für iPhone 6 Modelle.

Audio-Nachrichten versenden.

Die Nachrichten-App wurde ebenfalls überarbeitet. So ist es nun möglich anstatt nur Text auch aufgenommene Töne, bzw. Sprache direkt in einer iMessage zu versenden.

Health – das iPhone ist mein Fitnesscoach.

Die im iPhone verbauten Sensoren sammeln kontinuierlich Informationen über unser tägliches Bewegungsprofil. Diese Informationen – bspw. Schritte pro Tag, hoch und runter gelaufene Stockwerke – werden nun übersichtlich in der Health-App angezeigt. Weiterhin haben Entwickler die Möglichkeit eigene Anwendungen oder Accessories anzubieten, welche Health integrieren. Somit können der Health-App zusätzliche Daten bereitgestellt werden, um mir einen ganzheitlichen Blick auf meinen Gesundheitszustand zu ermöglichen. Anwendungen von Drittanbietern kann ebenfalls der Zugriff auf die Health-Daten ermöglich werden, um mir bspw. Tipps für eine bessere Ernährung zu geben.

Datenschutz:

Ein zentraler Zugang zu meinen gesammelten Gesundheitsdaten ist für mich als Nutzer zwar praktisch, da ich alle Daten auf einem Blick habe ohne vorher selbst erst verschiedene Apps/Portale pflegen zu müssen. Allerdings können diese Daten auch Begehrlichkeiten bei Dritten wecken, welche eventuell nicht in meinem Sinne sind. Um dies zu verhinden, hat Apple verschiedene Sicherheitsstufen eingebaut. So hat der Nutzer die Kontrolle darüber, welche Informationen in Health abgelegt und wie die Daten mit Apps von Drittanbietern geteilt werden. Weiterhin wird von Drittanbietern, welche auf Health-Daten zugreifen wollen, eine entsprechende Datenschutzstrategie verlangt. Ist das iPhone per Code oder Touch ID gesperrt, so werden die Daten zudem verschlüsselt auf dem Gerät gespeichert. Sollen die in der Health-App gespeicherten Daten in der iCloud gesichert werden, so erfolgt die Übertragung und Speicherung ebenfalls verschlüsselt.

Auch wenn Apple verschiedene Vorkehrungen getroffen hat, um Missbrauch vorzubeugen, so ist dies keine Garantie, wie die jüngsten Ereignisse mit geleakten Promi-Bildern aus Apples iCloud gezeigt haben. Die Frage, ob ich Health verwenden soll oder nicht, bleibt somit am Ende eine Vertrauensfrage gegenüber Apple und meiner eigenen Vernunft, wem ich Zugang zu meinen Daten erlaube.

Continuity – nahtlose Verwendung verschiedener Apple Geräte.

Mit iOS8 und Mac OSX 10.10 Yosemite ist es einfacher geworden, verschiedene Apple Geräte (iPhone, iPad, Mac) miteinander zu verbinden und nahtlos zu verwenden.

So ist es mittels Handoff zum Beispiel möglich, auf einem Mac über die Kartenanwendung eine Route zu planen und diese sofort auf einem iPhone zur Verfügung zu haben, oder Dokumente auf dem iPad zu beginnen und auf dem Mac zu Ende zu schreiben.

Erhält man einen Anruf auf seinem iPhone, so erlaubt es Phone Calling diesen auf einem iPad oder Mac über den entsprechenen Audioeingang-/ausgang entgegen zu nehmen oder Anrufe vom Mac bzw. iPad aus zu initiieren. Weiterhin ist es auch möglich Textnachrichten per SMS direkt an Personen ohne iPhone vom iPad oder Mac aus zu versenden oder zu beantworten.

Per Instant Hotspot erscheint ein verbundenes iPhone automatisch in der Liste verfügbarer WLAN-Netzwerke auf dem Mac oder iPad. Mit einem Klick kann das iPhone dann für eine Internetverbindung verwendet werden, ohne dass erst ein Hotspot eingerichtet werden muss.

Hinweis: Auf den Apple Geräten muss entweder  iOS 8 oder Mac OSX 10.10 Yosemite installiert sein, für Textnachrichten und Instant Hotspot wird mindestens iOS 8.1 benötigt. Weiterhin müssen alle Geräte mit dem gleichen iCloud-Konto angemeldet sein, sich im gleichen WLAN-Netzwerk befinden und Bluetooth aktiviert haben.

iCloud Drive

Mit iCloud Drive bietet Apple einen Service ähnlich zu Dropbox an, um eigene Dokumente, Bilder, Präsentationen, Videos, usw. in der iCloud zu speichern und vom iPad, iPhone, Mac oder gar Windows PC aus abzurufen und zu verwalten.

Nutzen Apps iCloud um Dateien zu speichern, so können diese nun vom Nutzer über iCloud Drive ebenfalls verwaltet werden. Dies war bis iOS 7 nicht möglich, da nur die App selbst Zugriff auf die Dateien hatte.

Familienfreigaben

Mit der neu eingeführten Familienfreigabe können bis zu 6 Familienmitglieder mit jeweils eigenem Account gekaufte Inhalte aus iTunes, iBook und dem App Store nutzen, vorausgesetzt die Anbieter haben dies für ihre Inhalte erlaubt. Einkäufe können gemeinsam über eine Kreditkarte bezahlt und Ausgaben von Kindern von den Eltern vorher genehmigt werden. Weiterhin können Familienmitglieder untereinander den Standort, Fotos und Kalender teilen.

Zusammenfassung

Auch wenn sich auf den ersten Blick iOS 8 optisch gegenüber seinem Vorgänger iOS 7 kaum verändert hat, so hat sich doch unter der Oberfläche einiges getan. Vor allem die Möglichkeit nahtlos zwischen einzelnen Apple Geräten zu wechseln, Anrufe direkt vom Mac oder iPad aus zu führen oder seinen Fitnesszustand jederzeit abfragen zu können, stellen interessante Technologien dar, an welche sich viele Nutzer bestimmt schnell gewöhnen werden. Leider kommt der Nutzer nur dann in den Genuß aller neuen Technologien, wenn er einen homogenen Gerätepool von Apple besitzt, den eine Schnittstelle für Apps auf Apple-fremden Plattformen wie Android fehlt.

Unter diesem Gesichtspunkt lässt sich auch die Familienfreigabe betrachten. So ist es zwar möglich die gleichen Inhalte/Apps mit seiner Familie zu teilen ohne erneut zur Kasse gebeten zu werden, sowie die Ausgaben seiner Kinder für Einkäufe im App Store zu steuern, allerdings setzt dies natürlich auch einen homogenen Gerätepool innerhalb der eigenen Familie vorraus. Somit wird nicht nur die Bindung des Nutzers an das Apple Universum erhöht sondern auch gleich seiner ganzen Familie mit.

Mit iOS 8 sollten Nutzer dem Thema Datenschutz und Privatsphäre eine stärkere Aufmerksamkeit schenken und vorher genau überlegen welchem Anbieter Sie bei Tastatur-Apps einen Vollzugriff erlauben oder welche App Zugriff auf die in der Health-App gesamelten Daten erhält. So verlangt Apple zwar von den Anbietern die Einhaltung bestimmter Richtlinien, doch was tatsächlich mit den einmal übermittelten Daten passiert, wird auch für Apple schwer überprüfbar sein.

Die drei access control levels private, internal und public, die Apple mit der Xcode 6 beta 4 in Swift hinzufügte, sind ohne Frage sehr nützlich. Sie ermöglichen es, Implementierungsdetails zu verbergen (Information Hiding), und damit einen der Kernaspekte objektorientierter Programmierung zu nutzen.

Damit beginnen wir nun enthusiastisch alle Methoden als private zu kennzeichnen, die nur innerhalb der Klasse aufgerufen werden sollen. Die Klasse bleibt nach außen übersichichtlich und die Methodenauswahlliste von Xcode bietet von außen nur diejenigen Methoden zum Aufrufen an, die nicht private sind. Wunderbar. Oder?

So einfach ist das leider nicht, denn da gibt es oft einen Haken:

Weiterlesen

Was ändert sich, wenn man Objective-C Code in Swift umschreibt?

In meinem letzten Artikel Von Objective-C zu Swift: Table Views, habe ich den umgeschriebenen Code eines Table View Menüsystems verglichen.

In diesem Artikel nehme ich das Einlesen von JSON Daten als Beispiel und verwende folgende Daten: Weiterlesen

Swift, die neue Programmiersprache von Apple ist da und steht mit Xcode 6 als Beta zum Ausprobieren bereit.
Wir haben einige typische Lösungen aus der Objective-C Welt in Swift umgeschrieben, um zu sehen was passiert.

In diesem Artikel zeige ich beispielhaft den umgeschriebenden Objective-C Code eines Menüsystems in Form einer TableView: Weiterlesen

Die Galaxy Gear von Samsung ist eine Smartwatch, die neben „Classic Bluetooth“ auch „Bluetooth Low Energy“ unterstützt. Leider funktioniert die Uhr ausschließlich mit einer Hand voll Samsung eigenen Geräten.

Eine Kopplung mit dem iPhone wäre also eine echte Bereicherung und in Verbindung mit ANCS ergeben sich schöne Nutzungsmöglichkeiten. Wir haben uns daher ein paar Uhren besorgt und gleich begonnen Android Test Applikationen zu schreiben.

Weiterlesen

Nachdem im ersten Beitrag die grundsätzliche Technik von iBeacons gezeigt wurde ist es Zeit für ein kleines Update. Die Welt dreht sich schnell bei diesem Thema und Apple ist permanent dabei die Funktionen zu verbessern und zu erweitern.
Dieser Artikel stellt die wesentlichen Neuerungen zusammen die seit iOS7 bis iOS7.1 gekommen sind. Weiterlesen

Vereinfachte Anbindung von Smartwatches und anderen Bluetooth Gadgets an iOS und Android.

Das Apple Betriebssystem iOS bringt in der aktuellen Version 7 den Apple Notification Center Service (ANCS) mit sich. Dieser Service ermöglicht Bluetooth LE Geräten den Zugriff auf Benachrichtigungen die vom System erzeugt wurden.
Weiterlesen

iBeacons sind gerade in aller Munde. Die ersten Ladengeschäfte von Apple wurden bereits ausgestattet http://www.ifun.de/apple-store-ibeacon-bluetooth-51548/ und auch in Deutschland beginnen die ersten großen Ketten, diese Technik einzusetzen.

Leider gibt es in den offiziellen Meldungen meist nur nette Bildchen von tollen Geschäften, die den geneigten Käufer auf potentielle Schnäppchen hinweisen sollen. Was wirklich hinter der Technik steckt und was damit alles möglich ist sagt dabei keiner.

Wir haben uns die Technik daher genauer angesehen und eigene Versuche mit selbst gebauter Hardware unternommen, um die Chancen und Möglichkeiten besser bewerten zu können.

Weiterlesen

Mit der Android Version 4.3 (Jelly Bean) wurde die Bluetooth API des Google Betriebssystem Android um Bluetooth 4.0 Low Energy erweitert. Leider ist Android-Gerät nicht gleich Android-Gerät, sodass bisher nur wenige Geräte wie das Nexus 4 und das neue Nexus 7 (2013) von der Erweiterung Gebrauch machen können.
Weiterlesen