Swift – Die eine Programmiersprache für „alles“ ?! – Teil2

Die Evolution von Swift – the next level

Teil1

Es ist gut ein Jahr vergangen (Dezember 2015) seit Swift als Open-Source Programmiersprache das Licht der Welt(-Öffentlichkeit) erblickt hat. So finde ich, dass es mal wieder an der Zeit ist zu schauen, welche Evolution und Resultate diese recht junge Programmiersprache mittlerweile nach meiner ersten Bewertung und Prognose vom April 2016 in der Open-Source Entwickler Community gefunden hat. Um eine Sache vorweg zu nehmen: Mit Swift werden bereits produktive (Web-)Portal-Projekte umgesetzt (wie beispielsweise die Webseite des dänischen Triathlon-Events Ironman; Github-Source). So hat sich Swift tatsächlich in so kurzer Zeit von einer reinen Apple-Plattform Sprache (iOS, macOS, tvOS, watchOS) zu einem Linux-freundlichen Backend/Webframework-tauglichen Gesamtsystem entwickelt. Die aktuelle Version Swift3 genießt zudem große Kompatibilität im Segment der „kleinen ARM-Architektur Computer“ wie beispielsweise dem Raspberry Pi3 und dem dafür verfügbaren Ubuntu 16.04 als Betriebssystem; ergo die Software der Internet-Of-Things (IoT) kann ab jetzt tatsächlich ebenfalls mit dieser hochmodernen und performanten Programmiersprache entwickelt werden.

Weiterlesen

Swift – Die eine Programmiersprache für „alles“ ?! – Teil1

tl;dr

  • Swift eignet sich bereits jetzt zur Entwicklung einer produktiven verteilten mobilen Anwendung (Client-App + Backend-Webservice)
  • Proof-of-Concept Beispiel: verteilte App mit Shared Code
  • Deployment des Webservices via Docker-Container
  • Große Vorteile für Developer, DevOps, CTOs, CIOs und die zentralen Stakeholder/Kunden
  • Update: links und libraries-Empfehlungen

Apples Swift und Open Source

Im Juli 2014 hat Apple der Öffentlichkeit die neue Programmiersprache Swift vorgestellt. Zunächst wurde auf den eigenen Plattformen die Software-Entwicklung mit dieser Sprache realisiert: von der kleinen Smartwatch appleWatch (watchOS), über die Set-Top-Box appleTV (tvOS), auf ihren mobilen Geräten iPhone/iPodTouch/iPad (iOS) bis hin zu ihren Desktop-Geräten MacPro/iMac/MacBookPro/… (OSX).

Vor etwa einem halben Jahr (Dezember 2015) ging Apple dazu über, Swift als Open-Source Projekt der Öffentlichkeit bereitzustellen. Apple war mit diesem Schritt derart entschlossen und überzeugt, dass sie die Vorteile von ihrer aktuellen Programmiersprache Swift -z.B. die Flexibilität und die Skalierbarkeit (von Command-Line-Tools über Software für ‚kleine‘ embedded IoT-Geräte bis hin zu Server-Systemen und Betriebssystemen), die maschinennahe performate Ausführung  der damit erstellten Software (kompilierter/nativer Binär-Code !), sowie die modernen Features und Sprachkonstrukte- der gesamten Developer/IT-Community bereitgestellt haben wollten. Das ausgesprochene Ziel Apples: Durch die verändernden Software/IT-Anforderungen heutiger Systeme und Anwendungen, die in die Jahre gekommene native Programmiersprache C (bzw. auch C++) als de-facto-Standard mittelfristig abzulösen. Ein sehr ehrgeiziges Ziel -wie man ruhig finden darf- das nur durch Offenlegung und die Beteiligung der großen Entwickler-Community überhaupt erst machbar sein kann.

Weiterlesen

AirDrop – Inhalte zwischen Apps teilen

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

 

Beacons Testlauf auf dem CC Day 2015

Beacons
Im Sommer 2013 wurden sie offiziell vorgestellt und so langsam kommt die ganze Sache auch ins Rollen. Die Rede ist von der Beacon Technologie. Beacons (Signalfeuer) sind kleine Bluetooth-Sender, welche an einem Ort angebracht werden können und in regelmäßigen Zeitintervallen ein Erkennungssignal aussenden. Dieses Signal kann dann von einem Beacon-fähigen Gerät wie einem Smartphone oder Tablet empfangen und in ortsabhängige Informationen umgewandelt werden. Die Anzahl an Anwendungsgebieten ist dabei grenzenlos. Meistens werden Beacons mit typischen Einsatzgebieten wie …

Weiterlesen

UI – Testen und Debuggen mit Xcode 6

Wenn man die Benutzeroberfläche einer iOS App mit dem Storyboard aufbaut, ist man spätestens mit iOS 8 bestens beraten, das Layout möglichst unabhängig von einer bestimmten Geräteauflösung zu halten. Bei neu erstellen Xcode 6 Projekten sind die ViewController im Soryboard sogar quadratisch, damit klar ist, dass es sich um kein bestimmtes Gerät handelt.

Die Preview-Ansicht

Um zu testen, ob sich das Layout auf unterschiedlichen Geräten und in unterschiedlichen Orientierungen korrekt verhält, gibt es eine Preview-Ansicht.
Man schaltet zunächst auf den Assistant editor um. Auf der linken Seite wählt man einen ViewController aus und auf dere rechten Seite wählt man in der oberen Leiste „Preview“ aus.
In der unteren linken Ecke kann man mit „+“ weitere Geräte hinzufügen, die man gleichzeitig nebeneinander sehen möchte. Die Geräte können danach noch gedreht werden, um auch die unterschiedlichen Orientierungen zu testen.

Preview-Ansicht

Die Preview-Ansicht beachtet natürlich auch die gesetzten Layout-Constraints.
Unten rechts kann man die Sprache umstellen und eine „Double-Length Pseudolanguage“ auswählen. Diese Pseudosprache verdoppelt die Länge aller Texte und ist sehr praktisch um zu testen wie sich Zeilenumbrüche oder sehr lange Texte auf das Layout auswirken.

Die App sollte man natürlich trotzdem mindestens ein Mal auf einem Gerät oder zumindest auf dem Simulator testen, um zu sehen wie sich das Interface mit echten Daten verhält. Man darf sich auch nicht komplett auf die Preview-Ansicht verlassen. Je nach Komplexität des ViewControllers und der Layout Constraints kann das Resultat in der App anders aussehen als in der Preview Ansicht.
Aber die Preview-Ansicht ist sehr praktisch um schnell zu prüfen ob das Resultat in groben Zügen den eigenen Vorstellungen enspricht.

Die 3D Debug-Ansicht

Wenn das Layout in der laufenden App nicht so aussieht wie erwartet, ist die 3D Debug-Ansicht ziemlich hilfreich. Um in diese Ansicht zu gelangen, klickt man während einer Debug-Session auf den „Debug View Hierarchy“-Button:

Debug View Hierarchy

Die App wird pausiert und es öffnet sich eine Ansicht, in der man die View-Hierarchie betrachten kann. Hier hat man zum Beispiel die Möglichkeit den Blickwinkel zu ändern und uninteressante Ebenen auszublenden. Wenn man auf eine View klickt, werden im Utilities-Bereich (rechts) einige Werte zu der View angezeigt. So kann man zum Beispiel in Erfahrung bringen, welche Schriftart oder Textfarbe gerade gesetzt ist:

debug2

Hilfreich ist hier vor allem, dass man sehen kann wie viele und welche Views übereinander liegen und dass man Views debuggen kann, die von anderen Views verdeckt werden.
Oft sieht man auch, dass einige Views (in diesem Fall die tableView) über den Bildschirmrand hinausgehen. Damit lassen sich einige rätselhafte Phänomene erklären.

Fazit

Die beiden Ansichten können beim Testen und Debuggen viel Zeit sparen. Denn man muss nicht viele Änderungen am Code durchführen, Log-Ausgaben machen, bauen und die App erneut ausführen.

iOS 8

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.

Swift – Information Hiding

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

Von Objective-C zu Swift: JSON

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

Von Objective-C zu Swift: Table Views

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

Warum ist das Thema „Mobile Computing“ eine Chefsache?

Wir befinden uns alle in einem grundlegenden technologischen Wandel. Der Personal Computer klassicher Prägung verliert seine dominierende Stellung, wenn es um die Nutzung digitaler Angebote, Medien und Dienste geht. Weiterlesen