zurück zum Artikel

Macoun 2019: Von SwiftUI bis NFC

Ortwin Gentz

(Bild: Macoun, Ralf Ebert)

Jeden Herbst trifft sich die deutschsprachige Mac- und iOS-Entwicklergemeinde in Frankfurt zur "Macoun", die diesmal mit einem leicht veränderten Konzept aufwartet. Mac & i war dabei.

Mit dem Brückentag am 4. Oktober bot es sich nahezu an, die sonst nur am Wochenende stattfindende Macoun-Konferenz [1] um einen Tag zu verlängern. Auf diese Weise konnten die Macher neben einem hochqualitativen Vortragsprogramm mit zwei parallelen Tracks auch neue Formate wie halb- und ganztägige Workshops anbieten.

Mit ihrem "Keine Krawatten"-Motto und der bewährten Location im Haus der Jugend blieben sich die Organisatoren Nina und Chris Hauser und Thomas Biedorf treu und konnten die Preise erschwinglich halten.

In vielen Gesprächen auf und am Rande der Konferenz tauschten sich die Teilnehmer über die neusten Entwicklungen in der Apple-Entwicklerszene aus. Nahezu einhellig beklagte man sich über die schlechte Software-Qualität von iOS 13 und dem Entwicklungstool Xcode. Viele Teilnehmer sind zunehmend frustriert, dass an Apple eingereichte Bug-Reports oftmals nie behandelt werden und vor allem keinerlei Rückmeldung erfolgt. Das kürzlich veröffentlichte iOS 13.1 Update enthalte sogar diverse neue Fehler, statt die Kinderkrankheiten aus 13.0 zu beheben, kritisierten Teilnehmer.

Der lockeren Atmosphäre tat dies aber keinen Abbruch – auf der Macoun-Party am Samstag Abend feierten einige Hartgesottene recht ausgiebig. Das fürsorgliche Organisations-Team empfing die Feierwütigen gleich am nächsten Morgen mit Kopfschmerztabletten.

Meeting im Lokalbahnhof (0 Bilder) [2]

[3]

Der erst siebzehnjährige Felix Schlegel wurde von Apple bereits zum zweiten Mal als "Scholarship Winner" zur WWDC nach Kalifornien eingeladen. Auf der Macoun stellte er die neuen Motion Capturing-Funktionen von iOS 13 vor. Das ARKit-Framework erstellt dabei ein SceneKit-Gerüst für den menschlichen Körper, das aus 91 Knotenpunkten für Gelenke und Wirbelsäule besteht. Je nach Bewegung weisen die Gelenk-Knoten passende Rotationswerte auf.

In einer Beispielanwendung zeigte Schlegel, wie sich die T-Haltung einer Cheerleaderin mit ausgebreiteten Armen durch ARKit erkennen lässt. Wenn Ellenbogen und Schultern bis auf 5 cm Toleranz auf der selben Höhe lagen, färbte die App die im Kamerabild erkannten Gelenk-Knoten grün statt rot ein. Die Technik, die bislang in teuren Motion-Capture-Suits für Filmproduktionen zum Einsatz kam, kann mit ARKit jetzt jedes iPhone oder iPad mit A12- oder A13-Prozessor (iPhone XS, XR) in erstaunlich guter Qualität einsetzen. Nur beim Body Tracking von hinten hapert es derzeit noch etwas.

Felix Schlegel testet seine Demo-App zum Erkennen einer richtig ausgeführten Cheerleader-Position mit ARKit’s neuer Body Tracking-Funktion.

(Bild: Macoun, Ralf Ebert)

Nikolaj Schumacher brachte die Zuhörer auf den neuesten Stand von Swift 5.0 und 5.1. Erstmals bietet Swift ABI-Stabilität. Damit lassen sich binär vorliegende Frameworks einbinden, selbst wenn sie mit einer anderen Swift-Version kompiliert wurden.

Als weiterer Vorteil wird die Swift-Runtime nun nicht mehr in jeder App separat eingebunden, wodurch die App-Store-Download-Größe sinkt. Ein Wermutstropfen ist allerdings, dass für neue Funktionen der Swift-Standardbibliothek ab sofort immer die jeweils neuste iOS-Version benötigt wird. Unter der Haube hat Swift einige neue Funktionen bekommen, die für das neu vorgestellte SwiftUI benötigt werden. Schumacher erklärte die neuen „Property Wrappers“, syntaktische Vereinfachungen wie das Weglassen von return-Statements in manchen Situationen und die neuen Funktionen zum Vergleichen von Arrays.

Nikolaj Schumacher stellte die neuen Funktionen in Swift 5.0 und 5.1 vor.

(Bild: Ortwin Gentz)

Thematisch passend ging es mit Apples neuem SwiftUI Framework weiter. Benjamin Böcker programmierte live vor Publikum einen einfachen Color-Picker. Durch die Verwendung von "Bindings" wird eine direkte Verknüpfung von Slider-Position und Code-Variable erreicht, so dass eine "universal source of truth" entsteht.

Die Technologie gibt es auf dem Mac bereits seit über einem Jahrzehnt, jetzt findet sie in Gestalt von SwiftUI Einzug auf sämtliche Apple-Plattformen bis hin zur Apple Watch. Es ist faszinierend, mit wie wenig Code eine SwiftUI-Anwendung auskommt, in seinem Fazit hält Böcker die Technologie aber derzeit für noch nicht ganz ausgereift und empfiehlt, mit ihrem Einsatz noch bis iOS 14 zu warten.

Benjamin Böcker entwickelte eine SwiftUI-App live in Xcode.

(Bild: Macoun, Ralf Ebert)

Bei größeren Projekten können die automatischen Tests im Rahmen von Continuous Integration eine gehörige Zeit in Anspruch nehmen. Wenn beispielsweise bei der Erstellung von Pull-Requests zunächst eine Stunde gewartet werden muss bis tausende von Tests absolviert sind, stellt dies das Entwickler-Team vor echte Probleme.

Auswege aus der Misere zeigte Florian Lücke mit den neuen parallelen Tests in Xcode über „xctool“ von Facebook bis zum Einsatz von „Bamboo“, eines kommerziellen Produkts zur Parallelisierung von Tests auf mehreren Maschinen.

Tests müssen schneller laufen, findet Florian Lücke, und zeigt Vorschläge dazu.

(Bild: Ortwin Gentz)

In einem ganztägigen Workshop luden Tim Becker und Matthias Krauß die Teilnehmer zu einem Exkurs in die Embedded-Entwicklung ein. Für rund 20 Euro konnten die Teilnehmer mit einem eigenen Board auf ESP32-Basis selbst experimentieren. Das Modul verfügt über WLAN, Bluetooth und diverse Ein- und Ausgänge. Ein Poti, ein analoger Joystick und ein LED-Strip mit 15 frei programmierbaren Multicolor-LEDs vervollständigten das Setup.

Die Abwechslung von der High-Level-Entwicklung für iPhone und Mac war eine willkommene Abwechslung für viele Teilnehmer. Einer von ihnen programmierte am nächsten Tag begeistert weiter und entwickelte einen HSB-Colorpicker, der Farbe und Sättigung der LEDs über den Joystick und die Helligkeit über das Poti regelte.

Experimentieren am Embedded-Board im Workshop von Tim Becker und Matthias Krauß.

(Bild: Macoun, Ralf Ebert)

Neben der Hardcore-Programmierung in C kamen auch Business-Themen nicht zu kurz. Andreas Zeitler leitete einen Workshop, in dem die Teilnehmer anhand eines Formulars für einen App-Businessplan Schwachstellen erkennen und in der Gruppe diskutieren konnten.

Workshop zu Marketing- und Vertriebsthemen mit Andreas Zeitler.

(Bild: Macoun, Ralf Ebert)


Klaus Rodewig und Dr. Dominik Hauser plauderten aus dem Nähkästchen und erzählten von ihren Erfahrungen, eine App-Firma im Bereich Smart Home zu gründen. Am Anfang standen große Ambitionen, viel Energie und zahlreiche Ideen und doch scheiterte das Projekt nach fünf Jahren.

Im Blick zurück kristallisierten sich einige Fehler, die man vermeiden sollte. Eine wichtige Quintessenz sei, dass zu den Vorstellungen der Verkaufsebene, die dem Kunden auf Basis von Prototypen-Apps gerne mal alles verspricht, öfter auch mal ein freundliches "Nein" gehört. Agiles Arbeiten gehört dazu, aber ohne eine klare Struktur und Strategie hilft das auch nicht immer.

Die zahlreichen Funktionsmodule, die in der Smart-Home-App unterkommen sollten, waren anfangs nur für wenige App-Varianten gedacht. Im weiteren Verlauf ging es dann um White Labeling von bis zu 50 verschiedenen Apps. Durch den extrem hohen Zeitdruck war keine Zeit mehr, das technische Fundament komplett umzubauen. Eine ganz schlechte Idee sei es schließlich gewesen, dass die Kunden direkt mit den Programmierern Bugs und Verbesserungen besprechen sollten.

Als die Entscheidung getroffen wurde, einen Projektmanager einzustellen, wurde es besser, aber da war das Kind schon in den Brunnen gefallen. Der Vortrag sorgte für lebhafte Diskussionen in der Frage-und-Antwort-Runde.

Nicht immer klappt es, die eigene App-Firma zum Erfolg zu führen. Klaus Rodewig und Dr. Dominik Hauser analysierten die Problemzonen in Führung, Organisation, Kommunikation und Technik anhand eigener Erfahrungen.

(Bild: Macoun, Ralf Ebert)

App-Anbieter ohne VC-Kapital im Rücken können meist keine teuren Anzeigen-Kampagnen fahren, sondern müssen bei Marketing und Pressearbeit mit kleinen Budgets auskommen. Rebekka Honeit gab einen Einblick in einen dafür geeigneten Marketing-Mix, der die Priorität auf gut gemachte App-Store- und Web-Präsenz legt und die Zielgruppe per Newsletter, Blog und Social Media informiert. Bei der Pressearbeit seien vor allem Geduld und Beharrlichkeit gefragt.

App-Marketing muss keine Unsummen kosten, erläutert Rebekka Honeit.

(Bild: Macoun, Ralf Ebert)

Der Sicherheits-Forscher Alexander Heinrich von der TU Darmstadt ist einer der Entdecker von Sicherheitslücken im Apple Wireless Direct Link-Protokoll (AWDL) [4]. Auf der Macoun stellte er seine neusten Forschungen zum Handoff- und Continuity-Protokoll vor, das in Apple-Geräten zum Einsatz kommt, um die Zwischenablage oder das aktuell bearbeitete Dokument zwischen Mac, iPhone und Apple Watch auszutauschen, um WiFi-Passwörter zu teilen oder per AirDrop Dokumente zu verschicken. Heinrich hat das verschlüsselte Protokoll weitgehend reverse-engineered.

Danach senden im ersten Schritt die Geräte per BTLE ein "Advertisement" für jede Aktion wie das Kopieren von Text, das Entsperren von Geräten oder das verwenden einer Handoff-fähigen App. Für das eigentliche Verschicken der Daten wird im nächsten Schritt eine WLAN-Verbindung aufgebaut, wenn nötig per AWDL, welches keine Basisstation benötigt. Die Sicherheit des Protokolls hängt wesentlich davon ab, dass keines der beteiligten Geräte kompromittiert ist, denn die Crypto-Schlüssel werden in der iCloud Keychain abgelegt.

Heinrich hat eine Vielzahl von Angriffen auf das Protokoll getestet mit über 500 Millionen Testdaten. Bis dato konnte er keine Schwachstellen finden. Aufgrund der Komplexität des Protokolls mit einer Vielzahl von Serialisierungsverfahren bleibe ihm allerdings "ein ungutes Bauchgefühl".

Was steckt hinter Handoff und Continuity? Alexander Heinrich hat das Protokoll reverse-engineered.

(Bild: Macoun, Ralf Ebert)

Thematisch passend beschäftigte sich Björn Lindner im Anschluss mit den iOS-Neuerungen in Bezug auf die NFC-Schnittstelle. Ab der letztjährigen iPhone-Generation (XS/XR) wurde ein sparsamerer NFC-Chip verbaut, der das automatische Scannen von Tags im Hintergrund erlaubt. So können Aktionen über die Shortcuts-App sowie eigene Apps ausgelöst werden, wenn der Benutzer sein Gerät an ein NFC-Tag hält. Das funktioniert sogar auf dem Lockscreen.

Neu in iOS 13 ist die Möglichkeit, schreibend auf Tags zuzugreifen, um deren Inhalte zu verändern. Allerdings ist für die Nutzung der NFC-Schnittstelle zunächst ein Entitlement nötig, das zunächst bei Apple beantragt werden muss. Lindner zeigte mit einer Beispiel-App, wie der Zugriff auf handelsübliche NFC-Tags gelingt und welche Klippen vorher zu umschiffen sind.

Seit Jahrzehnten gibt es immer wieder verschiedenste Ansätze für plattformübergreifende Entwicklung um im Idealfall Code auf anderen Plattformen wiederzuverwenden. Swift auf Android ist so ein Beispiel, kommt aber bislang nicht so recht in die Gänge, weil sich weder Apple noch Google dafür starkmachen.

In der umgekehrten Richtung entwickelt sich mit Kotlin Native gerade eine interessante Alternative, die die Verwendung der offiziell für Android empfohlenen Programmiersprache für iOS und tvOS ermöglicht, watchOS-Unterstützung ist in Planung. IDE-Hersteller JetBrains investiert kräftig in das Projekt. Kotlin läuft unter Android meist auf der Java Runtime, mit Kotlin Native wird dagegen nativer Code erzeugt, der mit einigen Klimmzügen sogar direkt in Xcode kompiliert, eingebunden und debugt werden kann.

Fast hätte sich Alexander von Below in seinem Vortrag mit einem Kotlin-Beispielprojekt die Finger schmutzig gemacht – hätte er nicht vorher Handschuhe und Mundschutz angelegt, um die bösen Android-Viren abzuwehren. Zuvor sprengte eine Gruppe von Macoun-Aktivisten unter dem Schlachtruf "Native Development Forever – Tod dem Androiden" den Saal und bombardierte von Below mit Plastik-Pfeilen [5] aus Spielzeugpistolen, die den Teilnehmern zum Abreagieren in einem Spielzimmer [6] zur Verfügung standen.

Arbeitsschutz beim Umgang mit Android muss sein. Alexander von Below legt Handschuhe und Mundschutz an, bevor es an die Arbeit mit Kotlin geht.

(Bild: Ortwin Gentz)

Einen anderen Ansatz zur Einbindung von plattformübergreifendem Code schlug Marco Feltmann vor. Dabei wird gemeinsamer Code in der Programmiersprache Go geschrieben und über ein binäres Framework in die App eingebunden.

Go kann seit jeher Code für die verschiedensten Prozessorarchitekturen erzeugen. Nachteil ist allerdings die sperrige Parameterübergabe vom und zum Go-Framework. Unterstützt werden nur skalare Datentypen, Strings und Binärdaten, so dass komplexe Objekte zunächst serialisiert und deserialisiert werden müssen, beispielsweise über JSON. Auch ein Debugging des Go-Codes in Xcode ist nicht möglich.

Plattformübergreifender Code geht auch mit Go, zeigt Marco Feltmann.

(Bild: Macoun, Ralf Ebert)

Inspiriert von spannenden Vorträgen, guten Gesprächen und lustigen Episoden traten die Macoun-Teilnehmer am Sonntag-Abend die Heimreise an. Die nächste Macoun findet am 26. und 27.9.2020 wieder im zweitägigen Format statt. Und wer nicht so lange warten möchte: Die Apple-Entwicklerkonferenz Heise MacDev [7] findet vom 3. bis 5. Dezember in Karlsruhe statt. (thk [8])


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

Links in diesem Artikel:
[1] https://www.macoun.de/index.php
[2] https://www.heise.de/bilderstrecke/bilderstrecke_4548380.html?back=4547400;back=4547400
[3] https://www.heise.de/bilderstrecke/bilderstrecke_4548380.html?back=4547400;back=4547400
[4] https://www.heise.de/mac-and-i/meldung/Forscher-warnen-vor-weiteren-Luecken-in-Apples-AWDL-Protokoll-4485017.html
[5] https://twitter.com/mzi2008/status/1180777122186612736
[6] https://twitter.com/MacounFFM/status/1179771052584513539
[7] https://www.heise-macdev.de/
[8] mailto:thk@ct.de