zurück zum Artikel

Macoun 2012: Mac- und iOS-Entwickler-Treffen mit Live Coding

Artikel

Am letzten Oktoberwochenende traf sich die deutsche Apple-Entwicklergemeinde in einer Jugendherberge in Frankfurt zur inzwischen dort schon traditionell stattfindenden Macoun.

Bereits zum fünften Mal organisierten Chris Hauser, Thomas Biedorf und ihr Team die Konferenz, völlig unabhängig von Apple. Die beiden eröffneten die Macoun mit einem Rekord: 467 Besucher aus neun Ländern waren dabei, unter anderem aus Schweden, Irland und Italien – Frauen wurden allerdings so selten gesichtet wie unter Nerds üblich.

Die Veranstalter freuten sich über 467 Teilnehmer – ein Rekord.

Premiere feierte die Macoun-App, die das Vortragsprogramm samt Favoritenverwaltung auf iPhone und iPad brachte und die Teilnehmer über Push-Nachrichten zum Beispiel über den Status der Kaffeeproduktion auf dem Laufenden hielt. Mit einer Audio-Push-Nachricht testete Thomas, ob alle ihr Handy leise gestellt hatten. Hatten die meisten natürlich nicht, und so bekamen wir einen akustischen Eindruck, wie schnell sich ein paar hundert Push-Nachrichten in einem Raum verteilen lassen.

Uli Kusterer, Urgestein bei der Macoun und Programmierer bei Elgato, gab in seiner Keynote ein paar Tipps zur Interface-Gestaltung. Anhand von Negativbeispielen aus dem realen Leben rief er dazu auf, Bedienoberflächen nicht zu überladen und klare und eindeutige Nachrichten zu benutzen.

Live Coding

Auf der Macoun gab es insgesamt 22 Vorträge [1], drei davon jeweils parallel. Das waren zwar weniger als bei der WWDC, wo stets sechs bis sieben gleichzeitig stattfanden. Die Wahl fiel trotzdem schwer, konnte sich doch jeder Teilnehmer höchstens acht anhören.

Den Beginn machte Thomas Tempelmann, Programmierer seit C64-Tagen und in Entwicklerkreisen bekannt durch den CD-Brenner Toast oder "Find Any File". Er hat live in Xcode gezeigt, wie man mit Auto Layout iOS-Oberflächen baut, die sich automatisch anpassen, wenn das Fenster die Größe ändert, weil etwa das OS einen Balken einblendet oder ein neues iPhone größer ausfällt als sein Vorgänger. Auch den Wechsel vom Hoch- ins Querformat könne Auto Layout oft automatisieren. Besonders wertvoll ist Auto Layout beim Lokalisieren: Thomas zeigte, wie sich das Layout an geänderte Textlängen dynamisch anpasst, und verriet einige Tricks, um mit unterschiedlichen Sprachen in Xcode zu jonglieren. Wer selbst schon in einem Vortrag live gecodet hat, weiß, wie schwierig das ist und wie schnell die Zeit dabei verrinnt, und so konnte auch Thomas am Ende der Stunde einen guten Teil seiner Beispiele nur noch anreißen.

"Animation ist schwierig", vor allem in Produktivitätssoftware, mahnte Macoun-Veteran Frank Illenberger.

Auch die Vorträge von Frank Illenberger, ebenfalls ein Macoun-Veteran, sind immer sehr gefragt. Unter dem Motto "Animation ist schwierig" beschäftigte er sich mit dem Sinn und Zweck impliziter Animationen in Produktivitätssoftware. Anhand kleiner Videos unterschied er gute von weniger guten Beispielen. Die "goldene Regel" laute: Ein Übergang muss entweder ganz oder gar nicht animiert sein. Sobald Teile springen, bringe die Animation keinen Gewinn. Im zweiten Teil des Vortrags ging es um die praktische Umsetzung mit Apples Core Animation und wann diese an ihre Grenzen stößt. Er beschrieb die recht aufwendige Architektur rund um MVC und einen "Render Tree", die er mit seinem Team für Animationen "ohne Core" entwickelt hat – leider gibt es die nicht als Open Source Code.

Nach der Mittagspause kam nochmals Uli Kusterer zu Wort. Er gab einen Überblick, woher aktuelle Programmiersprachen und Entwicklungsumgebungen kommen und wohin die Reise in Zukunft gehen mag. Es ist immer wieder überraschend, wie alt die Wurzeln aktueller Sprachen sind. So könne man Objective-C als "C plus Smalltalk" beschreiben, und Smalltalk gibt es schon seit 1980. Ähnlich sei C++ ursprünglich als "C plus Simula" gedacht worden, wobei Simula bereits in den 1960ern entwickelt wurde. Auch eine integrierte Entwicklungsumgebung (IDE) hatte Smalltalk bereits, ja sogar die Refactoring-Unterstützung sei für Smalltalk erfunden worden. Es sei also Quatsch, wenn behauptet würde, dass automatisches Refactoring für eine dynamische Sprache wie Objective-C nicht so gut möglich sei. Für die Zukunft erwartet Uli entsprechende Verbesserungen in den IDEs und eine Konvergenz von textuellen mit grafischen Programmiersprachen. Ein Weg dahin könne der weitere Ausbau der Code-Vervollständigung mit Kartuschen sein: sobald diese Popups mit möglichen Parameterwerten präsentieren, sei man bereits unterwegs zu mehr grafischer Programmierung.

Handschrifterkennung leicht gemacht

Am Ende des ersten Tages gab es ein Highlight: Patrick Völcker stellte seinen überraschend einfachen Algorithmus zur "Zeichenerkennung in Echtzeit" vor. Motiviert zu dieser Entwicklung hat ihn das kniffelige Problem der Spielesteuerung mit iOS-Geräten: Joystick und Knöpfe fehlen, und Bewegungssteuerung ist nur so weit möglich, wie der Bildschirm noch im Sichtfeld bleibt. Patrick benutzt einfache Ein-Finger-Gesten auf dem Touchscreen zur Steuerung, allerdings muss zum Beispiel für ein Jump'n'Run-Spiel die Gestenerkennung schon beginnen, während der Finger noch auf dem Bildschirm ist. Patrick dampft alle Punkte einer Geste auf ein 3x3-Raster ein und bildet das Ergebnis auf eine Buchstabenkette ab. Danach braucht es nur noch einen Lernprozess, um die typischen Buchstabenketten für die gewünschten Gesten aufzusammeln und zu speichern. Er habe nur eine Viertelstunde gebraucht, um so das gesamte Alphabet und alle Ziffern zu trainieren – für die Erkennung reiche das 3x3-Raster völlig aus, solange man nur Großbuchstaben verwende.

Die Besucher reisten unter anderem auch aus Schweden, Irland und Italien an. Frauen waren allerdings die Ausnahme.

Am sonnigen Sonntagmorgen eröffnete Andreas Gerlach mit seinem Überblick über "NoSQL auf Apple-Systemen". Er begann mit einem Rückblick auf die Entwicklung der SQL-Datenbanken und beschrieb deren Schwachstellen für moderne Software. So sei die weitere Skalierung schwierig, sobald der größte verfügbare Server ausgereizt ist. Entsprechend sind Google (MapReduce), Amazon (DynamoDB) & Co. Pioniere der verteilten Datenhaltung jenseits von SQL. Die perfekte Lösung kann es laut dem CAP-Theorem nicht geben: Nur zwei der drei Ziele Konsistenz (Consistency), Verfügbarkeit (Availability) und Verteilung (Partitioning) lassen sich gleichzeitig voll erreichen. Da die meisten anwesenden Entwickler eher nicht mit Googles Datenvolumen zu kämpfen haben, standen für sie Nachteile der SQL-Datenbanken wie Impedance Mismatch oder strikte Schemata sicher mehr im Vordergrund. Ersteres meint die oft aufwendige Übersetzung zwischen relationalen Datenschemata und den Laufzeitstrukturen der Anwendung, letzteres die Notwendigkeit von Datenbankmigrationen bei jeder kleinen Änderung an der Datenstruktur. Die NoSQL-Bewegung geht diese Probleme mit Schlüssel-Wert-Speichern, dokumenten-, spalten- oder graphenorientierten Konzepten an. Mit Redis, MongoDB und Riak stellte Andreas zum Abschluss drei NoSQL-Datenbanken samt von ihm geschriebener Objective-C-Wrapper vor.

Syncen ohne iCloud

Eine immer wichtigere und zugleich besonders haarige Aufgabe hatten sich Ingo Kasprzak und Peter Hauke gestellt: das Syncen von Core Data Clients. Sie zeigten im Detail, wie sie mit möglichst geringen Eingriffen in den vorhandenen Code NSManagedObjects zwischen iOS-Geräten synchronisieren. Da sie die Technik für Spiele brauchen, konnten sie die Transportaufgaben an das Game Kit von Apple delegieren – eine elegante Lösung. Ganz ohne Änderungen geht es allerdings nicht, so braucht jede Entität zusätzlich eine eindeutige ID sowie Erzeugungs- und Änderungsdaten. Als Demo zeigten sie ein Tic-Tac-Toe-Spiel: iPhone gegen Simulator.

Wie aufwendig das Drumherum bei größeren Projekten ist, zeigte der Vortrag von Felix Schulze zu Continuous Integration (CI) mit iOS. Bei ImmobilienScout24 läuft ein CI-Server mit einem Build-Cluster aus mehreren Mac minis. Dazu verwendet das Team Maven für die Build-Steuerung, GH-Unit und OCMock für Unit-Tests, KIF (Keep It Functional) für Integrationstests, einen internen App Store zum Verteilen von Beta-Versionen und die Hockey-App für Beta-Updates und Crash-Reports. Das Ganze wird durch selbstgeschriebene Xcode- und Maven-Plug-ins zusammengehalten. Ein erheblicher Aufwand, der zwar nichts zur Produktfunktionalität beiträgt, jedoch für die Produktqualität entscheidend sein kann.

Im Vortrag von Felix Schulze ging es um Continuous Integration bei komplexen Projekten.

Der Kreis schloss sich mit Martin Winters Vorstellung der Storyboards in iOS, die ebenso wie Auto Layout eine recht neue Apple-Technik sind. Storyboards fassen mehrere Views mit ihren Controllern zusammen und definieren die Übergänge zwischen ihnen (Segues in Englisch). Martin ließ uns einen Blick auf ein wirklich großes Storyboard werfen, das er für ein früheres Projekt gebaut hatte. Er empfahl aber, statt eines großen, monolithischen Storyboards besser mehrere, nach Funktionsgruppen getrennte zu verwenden. Das verringere auch potenzielle Merge-Probleme in Teams, da Apple leider wieder ein XML-Format mit Zufallsreihenfolgen verwendet hat, das sich praktisch nicht automatisch mergen lässt. Auch Martin ließ sich auf das Abenteuer Live Coding ein, kämpfte dabei mit einer ungewohnten Tastatur und zeigte trotzdem souverän, wie ein Storyboard in Xcode entsteht und die Segues definiert werden. Gerade für schnelle Prototypenentwicklung sind Storyboards eine große Hilfe.

Die Werkstatt

Am Sonntagnachmittag gab es eine weitere Premiere bei der Macoun: die Werkstatt, in der erfahrene Entwickler Rat und Tat anboten, was rege in Anspruch genommen wurde. Vielleicht finden die Macoun-Macher im nächsten Jahr noch jemanden, der die "Kunden" empfängt und mit den richtigen Experten zusammenbringt. Aber bitte bleibt bei "Werkstatt", der erfrischenden Übersetzung für das englische "Lab".

Natürlich war die gegenseitige Hilfe zwischen Entwicklern nicht auf die Werkstatt beschränkt: Die Pausen, der Kaffeeraum und die Party am Samstagabend boten reichlich Gelegenheit zum Fachsimpeln und Kontakte knüpfen. Oft genug sind diese Dinge das Wichtigste an einem Konferenzbesuch, und mehr geballtes Wissen über Mac und iOS wird man in Deutschland kaum finden. Wissen, das nicht nur von den Referenten bereitwillig weitergegeben wurde. Letztere werden für die Vorträge übrigens nicht bezahlt, nur so ist der günstige Konferenzpreis zu halten.

In drei Sälen gab es parallel Vorträge rund um die Mac- und iOS-Programmierung.

Die Macoun war auch dieses Jahr die Reise wert. Sie bot jedem etwas, Einsteigern ebenso wie Apple-Veteranen. Viel Platz zum Wachsen bietet die Jugendherberge allerdings nicht mehr. Wer 2013 dabei sein will, sollte sein Ticket rechtzeitig kaufen.



URL dieses Artikels:
http://www.heise.de/-1741302

Links in diesem Artikel:
[1] http://macoun.de/programm