zurück zum Artikel

Macoun 2015: Mac- und iOS-Entwickler zu Apple, Apps und Swift

Christian Schmitz

(Bild: Christian Schmitz)

Zum achten Mal trafen sich im Frankfurter Haus der Jugend Mac- und iOS-Entwickler zur zweitägigen Macoun-Konferenz. Diesmal lockte die Veranstaltung 470 Teilnehmer aus neun Ländern und legte damit zahlenmäßig deutlich zu.

Die deutschsprachige Macoun [1] entwickelt sich zu einer kleinen aber feinen Alternative zur teuren WWDC [2] und ist ein idealer Treffpunkt, um sich über die Erfolge und Tücken der Apple-Programmierung auszutauschen.

Die Vorträge deckten Themen zu Apple Watch, Swift, Apple TV, Verschlüsselung, Animation und vielem mehr ab. Der Programmiersprache Swift widmeten sich gleich mehrere Vorträge mit den Schwerpunkten funktionale Programmierung, Typendefinitionen und Reflexion. Außerdem gab es wieder den Werkstatt-Bereich, bei dem man im direkten Austausch mit Experten technische Fragen klären konnte, vergleichbar den Labs auf der WWDC.

Auch dieses Jahr war wieder der Altrechner-Park des Vereins Digital Retro Park dabei, ein Raum voll mit Apple-Computern der letzten 30 Jahre – einschließlich dem Fremdling NeXT Cube von Steve Jobs' zweiter Computer-Firma. Wer das Next-System genauer anschaut, erkennt, welchen Ursprung viele der heutigen OS-X-Systemanwendungen haben.

Im Retro-Park (organisiert vom Verein Digital Retro Park) konnte man die Hardware-Geschichte des Macintosh bewundern – inklusive des Next.

(Bild: Christian Schmitz)

Beim Vortrag "Entwickeln für die Uhr" zeigte Mac & i-Autor Ortwin Gentz die Vorzüge der Apple Watch und der Pebble Time. Die Uhren unterscheiden sich erheblich im Funktionsumfang und in der Softwareentwicklung. Die App "Wohin" von Gentz steht für beide Uhren bereit.

Die Pebble bietet zwar deutlich weniger CPU-Leistung, dafür aber viel mehr Batterielaufzeit. Als Entwickler genießt man viele Freiheiten und kann näher an die Hardware ran. Letztendlich sind es aber schon starke Unterschiede zur Apple Watch: Die Pebble programmiert man mit der Programmiersprache C (ohne ++) mittels Texteditor und Kommandozeile. Auf einen Debugger muss man verzichten. Apple offeriert dagegen mit Xcode eine mächtige integrierte Entwicklungsumgebung, die man in Objective-C/Swift programmiert und die mit grafischen Hilfen für Layouts und Storyboards sowie mit Debugger und Compiler ausgestattet ist.

Ortwin Gentz verdeutlichte darüber hinaus die Unterschiede von watchOS 2 gegenüber der ersten Version. Endlich ist ein direkter Zugriff auf die Hardware der Uhr möglich, etwa um Health-Daten abzurufen. Da das Programm direkt auf der Uhr läuft, sind einige der höheren APIs, beispielsweise CloudKit oder das veraltete NSURLConnection nicht verfügbar. Die CPU-Leistung ist dazu stark reduziert. Im Zweifel kommuniziert man doch besser mit dem iPhone und deligiert größere Arbeiten an dieses. Letztendlich können die beiden Uhr-Systeme nebeneinander existieren, so die Einschätzung von Gentz. Jede Uhr hat ihre Zielgruppe.

Macoun 2015 (0 Bilder) [3]

[4]

Philip Schneider erarbeitete in seinem Vortrag die Unterschiede zwischen Apples MapKit und dem OpenStreetMap Projekt. Nach einem kurzen Streifzug durch die Geschichte von Apples Framework ging es direkt in medias res in Xcode und ein Beispielprojekt. Zwischen den beiden Frameworks ist auch eine Zusammenarbeit möglich. So kann man mit wenigen Zeilen Code die Karte von Apple laden und die Konturen von OpenStreetMap für die Berge drüber legen.

Bei der Implementierung muss man sich natürlich über das Caching Gedanken machen, damit die App nicht jedes Stück Karte neu lädt, sondern zwischenspeichert. Für die Anwendung zeigte Philip Schneider, wie man gezielt Karten annotiert, etwa ein Rechteck, eine Pin mit Beschriftung oder einen Kreis darüber legt.

Der Service MapBox geht noch etwas weiter und zeigt etwas hübschere Karten basierend auf OpenStreetMap. Die Karten unterstützen Retina-Auflösung sowie Vektorgrafiken und sind daher deutlich schärfer.

Apples Mapkit und OpenStreetMap kann man auch kombinieren. Wie das geht zeigte Philip Schneider in seinem Vortrag.

(Bild: Christian Schmitz)

Seit Apple in OS X 10.7 Auto Layout einführte, haben Entwickler eine gewisse Hassliebe dazu entwickelt. Auch wenn es oft problemlos läuft, gibt es immer wieder mal Ungereimtheiten, zum Beispiel, wenn es Steuerelemente partout nicht wie gewünscht positioniert. Beim aktuellen OS X 10.11 und iOS 9 hat Apple einiges nachgebessert und interessante neue Funktionen eingebaut.

Clemens Wagner ging in seinem Vortrag in die Tiefe von Auto Layout. So kann man Views aneinander ausrichten, anstatt diese fest zu verdrahten. Für die mittlerweile zahlreichen Screen-Ausmaße von iPhone und iPad kann man Größen und Abstände nicht mehr sinnvoll festzurren, sondern sollte dynamisch layouten. Anhand einer Beispiel-App baute Wagner die Regeln für ein Layout zusammen. Die Views bekamen Abstände und richteten sich aneinander aus, ohne dass sich der linke oder obere Abstand veränderte.

Neu in OS X 10.11 und iOS 9 sind Layout-Anker, die das flexiblere Ausrichten erleichtern. Anhang von weiteren Beispielen und den passenden Formeln zeigte Clemens Wagner, wie man Prioritäten und Ungleichungen verwendet, um Layouts richtig dynamisch zu machen – ähnlich flexibel wie bei Responsive Designs im Web, die sich automatisch an die Fenstergröße anpassen.

Auto-Layout innerhalb von Xcode kann eine große Hilfe sein, wenn man die Tücken kennt.

(Bild: Christian Schmitz)

Mac & i-Autor Alexander von Below warf in seinem Vortrag einen Blick auf das neue Apple TV. Das TV-OS-SDK bietet fast alles, was auch die anderen iOS-SDKs bieten. Leider fehlt ausgerechnet WebKit als Framework, das man braucht, um Webinhalte anzuzeigen oder um oAuth für die Autorisierung zu benutzen.

Beim Apple TV gibt es auch keine Notifications, weder lokale noch Push-Notifications. Lokale Daten kann man nur in den Preferences (NSUserDefaults) speichern. Ansonsten muss man alles nachladen über Cloud-APIs und On-Demand-Ressourcen.

Die neue Bedienung vom Apple TV unterscheidet sich deutlich von der bisherigen. So setzt der Benutzer den Focus auf dem Bildschirm und springt damit von Button zu Button. In einem praktischen Beispiel zeigte Below, wie man eine kleine Apple-TV-Anwendung schreibt. Den Focus kann ein Button automatisch bekommen, aber für einen eigenen View muss der Entwickler das von Hand machen.

Die Apple-TV-Fernbedienung ist zugleich auch ein Gamepad und verfügt über zwei Buttons, eine Touch-Fläche und einen Bewegungssensor. Die GameController-Klassen bieten die Möglichkeit, mit dem Apple TV kompatible Game-Controller einzubinden. Anhand eines Beispiels baute von Below ein kleines Spiel, das sich per Game Controller steuern lässt. Dieses Spiel konnte man zunächst per Swipe auf dem Gamepad steuern. Nach ein paar kleinen Änderungen war dann dann auch eine Steuerung durch Bewegen des Controllers möglich. Schwierig kann für Spieleentwickler allerdings sein, dass sie Programme schreiben müssen, die mit und ohne Game Controller spielbar sein müssen.

Stefan Wehr erläuterte in seinem Beitrag die Geschichte von funktionalen Sprachen am Beispiel von Haskell: Manche Konzepte in Swift überschneiden sich. Zu den Features einer funktionalen Programmiersprache gehören Blocks, statische Typisierung und unveränderbare Werte. Idealerweise sind die funktionalen Programme syntaktisch korrekt und schließen damit schon viele Fehler aus. Durch die starke Typisierung meldet der Compiler viele mögliche Fehler frühzeitig. Wenn man zusätzlich durch unveränderliche Typen das unabsichtliche Ändern von Objekten verhindert, lassen sich die Fehlerquellen stark reduzieren.

Anhand einiger Beispiele zeigte Wehr, wie man Enum-Typen definiert, also eine Art Klasse mit mehreren Varianten. Das spart einem das bei der objektorientierten Programmierung übliche Vererben von Klassen. Algebraische Datentypen sorgen mit den verschiedenen Fällen dafür, dass der Compiler gut prüfen kann, ob die Code-Fragemente auch alle Varianten abdecken.

Beim Abend-Event im Lokalbahnhof nach dem ersten Konferenztag konnte man beim Fachsimpeln oder dem neuesten Klatsch und Tratsch aus der Szene die Köpfe zusammenstecken. Hier bot sich auch eine gute Gelegenheit, die Entwickler hinter der ein oder anderen bekannten App kennenzulernen. Schade nur, dass die Location nicht genug Platz bot, um alle interessierten Teilnehmer unterzubringen. Vielleicht findet sich nächstes Jahr ein größerer Treffpunkt.

Die Macoun fühlte sich gut an, ein bisschen wie eine kleine WWDC. Die Stimmung war gut, die Referenten motiviert, die Organisation hervorragend. Ich freue mich schon auf die Macoun im nächsten Jahr. (thk [5])


URL dieses Artikels:
https://www.heise.de/-2857825

Links in diesem Artikel:
[1] https://macoun.de/
[2] https://developer.apple.com/wwdc/
[3] https://www.heise.de/bilderstrecke/bilderstrecke_2859898.html?back=2857825;back=2857825
[4] https://www.heise.de/bilderstrecke/bilderstrecke_2859898.html?back=2857825;back=2857825
[5] mailto:thk@ct.de