zurück zum Artikel

Tipps, Tricks und Anekdoten für Apple-Entwickler: Das war die heise MacDev 2019

Stephan Ehrmann, Thomas Kaltschmidt
Das war die heise MacDev 2019

(Bild: dpunkt)

Auf der Entwickler-Konferenz ging es um Apple-Techniken wie SwiftUI, um Cross-Platform-Programmierung und um weichere Themen wie UI-Design.

Phillip Shoemaker war nicht nur der erste Direktor des App Store bei Apple, sondern baute das Review-Team auf und schrieb zusammen mit Steve Jobs die gefürchteten Regeln, welche Apps zugelassen werden – und welche warum nicht. Auf seiner Keynote der ersten heise MacDev [1] zeigte er sich unerwartet offen, erzählte Anekdoten und gab Tipps, wie Entwickler ihre Apps durch den Review-Prozess bekommen.

Jeder Prüfer habe im Schnitt nur 13 Minuten für die Beurteilung einer neuen App und gerade mal 3 bis 6 Minuten pro Update, erzählte Shoemaker. Sehr wichtig sei daher das Design der Bedienoberfläche und wie sich eine App für die Nutzer anfühle, denn damit verbrächten die Prüfer die meiste Zeit. Entwickler, die sich nicht an die Apple-Regeln hielten, müssten nicht nur mit der Ablehnung der App, sondern schlimmstenfalls mit einer Sperre von einem Jahr rechnen. So mancher sei jedoch kreativ, um Apple in die Irre zu führen. Der Ex-App-Store-Chef schilderte mehrere Beispiele. In einem Fall erkannte eine App anhand der IP-Adresse, dass diese von einem Mitarbeiter in Cupertino stammen musste und zeigte diesem etwas anderes an als den Anwendern. Das kam nur heraus, als ein Prüfer die App zu Hause verwendete. Sie wurde gesperrt.

Phillip Shoemaker plauderte aus dem Nähkästchen

Phillip Shoemaker plauderte aus dem Nähkästchen

(Bild: dpunkt)

Shoemakers Rat an die Entwickler: "Speak up", "teilen Sie Apple ihren Frust mit". Dabei könne eine Mail an einen Apple-Manager ebenso helfen wie das Weitergeben von Informationen an die Presse. Wenn eine App abgelehnt werde, solle man freundlich nachfragen und um eine Begründung bitten. Die Teilnehmer staunten vor allem über die vielen Details in Shoemakers Vortrag, die öffentlich nie zuvor zu hören waren, und fragten sich, wie es wohl die Apple-Anwälte finden, dass er so freizügig aus dem Nähkästchen plauderte.

Peter Steinberger von PSPDFKit gab seine Erfahrungen mit Apples Catalyst-Technik weiter. Erst durch zahlreiche manuelle Anpassungen werde aus einer iPad-App eine Mac-App, die sich auch wirklich wie eine solche anfühle. So passten etwa die auf dem iPad häufiger eingesetzten Popover-Elemente nicht gut zu macOS, weil das System sie abschneidet, wenn man die Größe eines Fensters ändert. Als Alternative empfiehlt er Sidebars. Die iPad-Version der Toolbar solle man besser in der macOS-Variante nachbauen. Allerdings hat Apple noch keine Suchfelder implementiert. Auch für die auf macOS typischen, dynamischen Cursor oder das Menü "Benutzte Dokumente" gilt es Abstecher in bestehende Frameworks zu nehmen. Ganz ohne AppKit geht es mit Catalyst also bislang nicht.

Peter Steinberger von PSPDFKit teilte seine Erfahrungen, eine iPad-App mit Catalyst für Mac aufzubereiten.

Peter Steinberger von PSPDFKit teilte seine Erfahrungen, eine iPad-App mit Catalyst für Mac aufzubereiten.

(Bild: dpunkt)

Auch im Vortrag von Perjan Duro, Macher der MoneyCoach-App, ging es um Catalyst. Um eine gute Mac-App zu erreichen, brauche es eine gute Mac-GUI, Unterstützung von Tastenkürzeln, ein umfangreiches Menü und eine Mac-typische Symbolleiste: Alles Dinge, die man durch das Portieren mit Catalyst nicht automatisch bekomme.

Heise MacDev 2019 (0 Bilder) [2]

[3]

Ein großes Thema auf der Heise MacDev war das neue Multi-Platform-Framework SwiftUI. Thomas Sillmann erklärte die grundlegende Funktionsweise des GUI-Toolkits. Er hatte zuvor bereits einen Artikel darüber in Mac & i [4] veröffentlicht. Peter Friese von Google erläuterte die Verbindung von SwiftUI mit Googles Firebase, der Entwicklungsplattform für Mobil- und Webanwendungen. Simon Hartmann, Mobil-Entwickler bei EnBW, und Andreas Lang von andrena objects bezeichneten die Verbindung von SwiftUI und dem damit eng verbundenen, ebenfalls neuen Combine-Framework als "Game Changer". Sie alle würzten ihre Vorträge mit anschaulichen Code-Beispielen.

Thomas Sillmann erklärte die Funktionsweise von SwiftUI.

Thomas Sillmann erklärte die Funktionsweise von SwiftUI.

(Bild: dpunkt)

Eine große Herausforderung bleiben Bugs in Software, etwa wenn eine App nach einem Crash einfach vom Bildschirm verschwindet. iOS-Entwickler Dominik Hauser erklärte die Vorzüge von Unit-Tests, etwa durch Refaktorierbarkeit, schnelles Feedback, als Gedankenstütze, doppelte Buchführung und Regressionsschutz. Algorithmen lassen sich sehr gut in Xcode testen, so Hauser. Tests der Oberfläche seien allerdings immer noch extrem langsam.

Frank Illenberger von Project Wizards machte seinem Unmut darüber Luft, dass Apple öfter mal Frameworks als “deprecated” erklärt, sie also demnächst nicht mehr unterstützen werde, und man als Entwickler dann eben sehen müsse, wo man bleibe. Er erklärte, er habe das Vertrauen in Apples Core-Data-API verloren und riet den Anwesenden, einen großen Bogen um UTI (Uniform Type Identifier) zu machen. Stattdessen sollten sie auf Dateiendungen setzen. So manche Apple-Funktion sei gar nicht, schlecht oder schlimmstenfalls fehlerhaft dokumentiert, schimpfte Illenberger. Oft müssten er und sein Team per Disassembler selbst herausfinden, was gerade im System passiere oder welcher Bug von Apple gerade für ein merkwürdiges Verhalten seiner App "Merlin" verantwortlich sei. Auf die Missstände angesprochen, schöben sich die Framework-Teams bei Apple gern gegenseitig die Schuld in die Schuhe. In dieselbe Kerbe schlug Kollege Kai Brüning, der von seinen Erfahrungen beim Portieren des Projektmanagers auf das iPad erzählte.

Stefan Herold zeigte, wie man die Funktion "Anmelden mit Apple" in Apps ergänzt.

Stefan Herold zeigte, wie man die Funktion "Anmelden mit Apple" in Apps ergänzt.

(Bild: dpunkt)

Stefan Herold von der Deutsche-Bahn-Tochter ioki zeigte, wie man mit wenigen Eingriffen eine App mit der "Anmelden mit Apple"-Mimik ergänzt. Mattes Wieben ging auf das asynchrone Programmieren mit RxSwift ein, und Jan Kaltoun des tschechischen Unternehmens STRV behandelte Concurrency in iOS. Mac & i-Autor Klaus Rodewig, Mitglied im Expertenkreis für Cyber-Sicherheit beim BSI, demonstrierte live auf der Bühne, wie man mit Apples CryptoKit Daten verschlüsselt und worin die Vorzüge gegenüber dem früher verwendeten CommonCryto liegen. Zu diesem Thema hat Rodewig übrigens die Developer’s Corner in der aktuellen Mac & i 6/2019 [5] beigesteuert. Um die Sicherheit ging es auch im Vortrag von Sven Faßbender, der über von Entwicklern häufig begangene Fehler in Bezug auf Informationssicherheit/-Vertraulichkeit hinwies.

Gero Gerber, ebenfalls Mac & i-Autor und obendrein erfahrener Spieleentwickler, ging auf native Companion-Apps für Unity-Apps auf watchOS ein. Henning Schwendtner aus dem Hause WPS Workplace Solutions thematisierte die saubere Architektur durch Domain-driven Design und Normen Wohner von ilume Informatik den Stand von Server-Side Swift. Nikolaj Schumacher von JetBrains brachte Licht in das Dunkel des komplexen Typensystems in Swift.

Marcel Weiher von metaobject über die Evolution von GUI-Frameworks.

Marcel Weiher von metaobject über die Evolution von GUI-Frameworks.

(Bild: dpunkt)

Marcel Weiher von metaobject zeigte die Evolution der NeXT-inspirierten Apple-UI-Frameworks von AppKit über Cocoa und UIKit bis hin zu SwiftUI auf. Sebastian Messingfeld von inovex erklärte, wie man mit Tools seinen Build-Prozess optimieren kann. Sabine Geithner von Mercedes-Benz.io präsentierte aus ihren Erfahrungen mit der Bertha-App Wege, um in MapKit auch große Datenmengen ohne Performance-Einbußen zu handeln. Thorsten Stark von TBO skizzierte in seinem Vortrag Best Practices zu Continuity Integration/Continuity Delivery (CI/CD).

Viele eingeschworene App-Entwickler schwören auf Apples Xcode, aber Chefs und Auftraggeber verlangen nicht selten einen Code für mehrere Betriebssysteme, deshalb war die plattformübergreifende Programmierung auch auf der heise MacDev ein Thema.

Thomas Künneth, Leiter der mobilen Entwicklung bei Mathema, stellte in seinem Vortrag Cross-Platform-Tools vor. Während Apple mit SwiftUI und Catalyst nur die eigenen Plattformen abdeckt, kann man etwa mit Googles Flutter Apps für iOS, Android, macOS und Windows kompilieren. Als Programmiersprache nutzt man Dart, welche Anleihen von C und Swift enthält. Die Bedienoberfläche rendert Flutter komplett selbst und sehr performant, man kann aber auch native Komponenten einbinden. Als weitere Cross-Platform-Entwicklungsumgebungen stellte Künneth Xamarin und Xamarin Forms von Microsoft vor, das man in der Programmiersprache C# und dem .Net-Framework programmiert. Er kritisierte ein wenig die Geschwätzigkeit der Sprache in Xamarin-Forms, also das automatische Erzeugen von Boilerplate Code. Als Tools mit Web-Framework-Hintergrund solle man sich React Native, Cordova und Progressive Web Apps (PWA) genauer anschauen.

Christian Liebel erklärte die Vorteile von Progressive Web Apps.

Christian Liebel erklärte die Vorteile von Progressive Web Apps.

(Bild: Thomas Kaltschmidt)

Christian Liebel von Thinktecture konzentrierte sich in seinem Vortrag ganz auf Progressive Web Apps, erklärte die Hintergründe und gab viele Tipps. Marco Feltmann von Star Finanz brachte dem Publikum die Programmiersprache Go näher. Auch Stephan Schäfer von 4D und Matthias Eißing von Embarcadero, beides Sponsoren der heise MacDev, behandelten das Thema “ein Quellcode, mehrere Plattformen.”

In der Keynote des zweiten Tages kündigte Andy Abgottspon von hazu.io an, Entwickler müssten sich von bekannten Paradigmen verabschieden und sich für neue Techniken wie Webdienste anstelle von nativen Apps, AR und VR öffnen.

Andy Abgottspon skizzierte "neue Realitäten".

Andy Abgottspon skizzierte in seiner Keynote "neue Realitäten".

(Bild: Thomas Kaltschmidt)

Der erfahrene GUI-Designer Atila Taskiran, der schon viele Apps zu ihrem Vorteil umgestaltet hat, erzählte in seinem Vortrag anhand von gelungenen und abschreckenden Beispielen, welch hohen Einfluss die ästhetische Gestaltung auf die Glaubwürdigkeit von App-Inhalten hat. Er bat die anwesenden Entwickler nicht nur, auf die Bedienoberfläche viel Wert zu legen, sondern gab auch Tipps, wie man sie übersichtlicher und eingängiger gestaltet, etwa durch das Zusammenfassen und Ordnen von Elementen, durch das gezielte Verwenden von Weißraum und Farben.

dpunkt

Atilla Taskiran über gutes und schlechtes GUI-Design.

(Bild: dpunkt)

Max Seelemann, CEO von Ulysses, schilderte, wie viel Zeit vergeht, bis eine neue Release auf dem Markt erscheint und welche Schritte er dabei essenziell findet. Sein Team und er haben einen minutiösen Plan entwickelt, mit dem sie sicherstellen, nichts Wichtiges zu vergessen, schließlich gibt es neben dem Einreichen der App zum Review bei Apple noch allerhand mehr zu tun – bei Ulysses sind das ingesamt 180 Aufgaben, zum Beispiel Pressemitteilungen schreiben, Screenshots anfertigen, Bedienungsanleitung in Fremdsprache übersetzen, Kontrollschleifen, Qualitätstests, Schulung der Support-Mitarbeiter und so weiter. Seelemann schilderte, dass sein Unternehmen es mit diesen Schritten geschafft habe, im chinesischen App Store von Platz 40 auf Platz 2 zu klettern. Die anwesenden Entwickler schrieben fleißig mit.

Auch Nelli Hergenröther editierte keine Code-Schnipsel auf der Bühne. Die Geschäftsführerin der Berliner Agentur Evenly, die unter anderem Apps für den Fernsehsender Arte entwickelt, berichtete von Schätzungen in der agilen Software-Entwicklung – ein Thema, das viele anwesende Entwickler sehr interessierte, den in der Regel muss jeder Schätzungen abgeben, ob gegenüber dem Kunden, dem Chef oder externen Stakeholdern, zum Zeit- oder zum Kostenaufwand und zum Fertigstellungstermin der App, und das möglichst verbindlich. Dabei liegen Entwicklern genau solche Fragestellungen weniger, sie wollen lieber Code schreiben. Hergenröther gab ihnen auf der heise MacDev Handreichungen, wie man halbwegs genau schätzt, um späteren Ärger zu vermeiden.

Peter Kolski, vor einem Jahr unter großem PR-Tamtam von Apple-Chef Tim Cook für seine gelungene Umsetzung der MauAR-App gelobt, hatte Rezepte für erfolgreiches Augmented Reality im Gepäck. Björn Linder von EnBW erklärte den Umgang mit der NFC-Technik im iPhone, mit den zugehörigen Apple-Zertifikaten und dem Einbinden von NFC-Chips in Kurzbefehlen. In einem zweiten Vortrag beleuchtete er außerdem das neue RealityKit-Framework für AR-Apps. Heise-Justiziar und Datenschutzexperte Joerg Heidrich erklärte, wie Entwickler vermeiden, die DSGVO zu verletzen – immerhin drohen hohe Bußgelder. Richard Kurz ließ für einen Vortrag lang Mac & i mit Make fusionieren und zeigte gelungene Mikrocontrollerprojekte mit dem Mac.

Insgesamt gab es 35 Vorträge, die in je drei Tracks gleichzeitig stattfanden; die Wahl fiel den rund 100 Teilnehmer nicht immer leicht. Beim abendlichen Get-Together gab es Häppchen, Bier und Themen-Tische etwa zu IT-Sicherheit und Swift.

Der Vortag war für zwei ganztägige Workshops reserviert. Ralf Ebert zeigte, dass man beim Portieren einer iPad- in eine macOS-App weit mehr zu beachten hat, als nur den Haken für “Mac” zu setzen. Dominik Hauser erklärte die testgetriebene Entwicklung in der Praxis, mit der sich viele Bugs durch automatisierte Tests einfangen lassen – vor allem die gefürchteten Regressions.

Es war die erste Heise MacDev, die vom 3. bis 5. Dezember stattfand. Organisiert wurde sie von Mac & i, heise Developer und dem dpunkt-Verlag. Das Feedback von Besuchern und Referenten war durchweg mehr als positiv. Viele freuten sich über ein solch “professionelles Veranstaltungsformat in Deutschland”.

Karlsruhe bleibt 2020 der Veranstaltungsort der Heise MacDev

Karlsruhe bleibt 2020 der Veranstaltungsort der Heise MacDev

(Bild: Thomas Kaltschmidt)

Deshalb wird die Entwicklerkonferenz 2020 in Karlsruhe erneut stattfinden — und zwar vom 1. bis 3. Dezember, wiederum im IHK Haus der Wirtschaft. Bitte notieren Sie sich den Termin. Call for Proposals, Ticket-Bestell-Link und so weiter veröffentlichen wir dann rechtzeitig vorher. Wer als Entwickler bereits jetzt einen Vortrag anbieten möchte, kann sich gern per Mail an intern@heise-macdev.de wenden. (thk [6])


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

Links in diesem Artikel:
[1] https://heise-macdev.de/programm.php?source=0
[2] https://www.heise.de/bilderstrecke/bilderstrecke_4610156.html?back=4609802;back=4609802
[3] https://www.heise.de/bilderstrecke/bilderstrecke_4610156.html?back=4609802;back=4609802
[4] https://www.heise.de/select/mac-and-i/2019/5/1570548376548502
[5] https://www.heise.de/mac-and-i/meldung/Mac-i-Heft-6-2019-jetzt-im-Handel-4602161.html
[6] mailto:thk@ct.de